;Imports of cg_weapons:
	extern _Z18XAnimSetGoalWeightP6DObj_sjfffjji
	extern _Z11DObjGetTreePK6DObj_s
	extern _Z12XAnimSetTimeP11XAnimTree_sjf
	extern _Z21Hunk_AllocXAnimClienti
	extern _Z16XAnimCreateAnimsPKciPFPviE
	extern _Z10XAnimBlendP7XAnim_sjPKcjjj
	extern _Z14BG_CreateXAnimP7XAnim_sjPKc
	extern _Z15XAnimCreateTreeP7XAnim_sPFPviE
	extern _Z9Com_Error11errorParm_tPKcz
	extern _Z13XAnimIsLoopedPK7XAnim_sj
	extern cmd_args
	extern atoi
	extern _Z10Com_PrintfiPKcz
	extern _Z10Com_MemsetPvii
	extern _Z18CG_LocationalTraceP7trace_tPKfS2_ii
	extern _Z20Trace_GetEntityHitIdPK7trace_t
	extern cg_entitiesArray
	extern cg_weaponsArray
	extern _Z15BG_GetWeaponDefj
	extern _Z22Com_SafeClientDObjFreeii
	extern scr_const
	extern overrideNVGModelWithKnife
	extern _Z20Com_ClientDObjCreateP11DObjModel_stP11XAnimTree_sii
	extern _Z19DObjSetHidePartBitsP6DObj_sPKj
	extern _Z20DObjUpdateClientInfoP6DObj_sfh
	extern _Z13XAnimGetAnimsPK11XAnimTree_s
	extern cgArray
	extern perk_weapReloadMultiplier
	extern perk_weapRateMultiplier
	extern _Z18XAnimGetLengthMsecPK7XAnim_sj
	extern _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	extern cg_gun_move_minspeed
	extern cg_gun_move_f
	extern cg_gun_move_r
	extern cg_gun_move_u
	extern cg_gun_move_rate
	extern cg_gun_ofs_f
	extern cg_gun_ofs_r
	extern cg_gun_ofs_u
	extern _Z16BG_GetNumWeaponsv
	extern _Z13BG_WeaponAmmoPK13playerState_si
	extern _Z14Com_PrintErroriPKcz
	extern _Z22CL_IsLocalClientActivei
	extern _Z17Com_GetClientDObjii
	extern _Z21CG_DObjGetWorldTagPosPK7cpose_tP6DObj_sjPf
	extern _Z18SL_ConvertToStringj
	extern _Z11Com_DPrintfiPKcz
	extern cg_tracerChance
	extern _Z7ms_randv
	extern _Z15Vec3NormalizeToPKfPf
	extern sv_clientSideBullets
	extern _Z26DynEntCl_DynEntImpactEventiiPKfS0_ih
	extern cgMedia
	extern _Z17CG_PlaySoundAliasiiPKfP16snd_alias_list_t
	extern cg_marks_ents_player_only
	extern _Z35FX_PlayOrientedEffectWithMarkEntityiPK11FxEffectDefiPKfPA3_S2_j
	extern cg_blood
	extern cg_tracerWidth
	extern cg_tracerScale
	extern cg_tracerScaleMinDist
	extern cg_tracerScaleDistRange
	extern cg_tracerScrewDist
	extern cg_tracerScrewRadius
	extern _Z11FX_Beam_AddP6FxBeam
	extern _Z13DObjClearSkelPK6DObj_s
	extern _Z12AxisToAnglesPA3_KfPf
	extern _Z19BG_WeaponFireRecoilPK13playerState_sPfS2_
	extern _Z19CG_PlayBoltedEffectiPK11FxEffectDefij
	extern _Z19BG_WeaponIsClipOnlyi
	extern _Z16BG_ClipForWeaponi
	extern _Z16BG_AmmoForWeaponi
	extern _Z19BG_TakePlayerWeaponP13playerState_sji
	extern _Z21BG_EvaluateTrajectoryPK12trajectory_tiPf
	extern _Z15CG_GetBoneIndexiijPh
	extern _Z21FX_GetBoneOrientationiiiP13orientation_t
	extern _Z21BG_GetSpreadForWeaponPK13playerState_sPK9WeaponDefPfS5_
	extern _Z12AngleVectorsPKfPfS1_S1_
	extern cg_firstPersonTracerChance
	extern tan
	extern heli_barrelRotation
	extern _Z23Veh_IncTurretBarrelRolliif
	extern _Z18SND_GetKnownLengthiPi
	extern _Z27CG_CompassAddWeaponPingInfoiPK9centity_sPKfi
	extern cosf
	extern sinf
	extern _Z17BG_GetWeaponIndexPK9WeaponDef
	extern _Z29BG_GetSurfacePenetrationDepthPK9WeaponDefi
	extern _Z15BG_AdvanceTraceP16BulletFireParamsP18BulletTraceResultsf
	extern Com_Memcpy
	extern bullet_penetrationMinFxDist
	extern _Z14BG_IsProneAnimPK12clientInfo_ti
	extern _Z8BG_IsAdsPK12clientInfo_ti
	extern _Z26DynEntCl_EntityImpactEventPK7trace_tiiPKfS3_h
	extern _Z18BG_IsCrouchingAnimPK12clientInfo_ti
	extern perk_bulletPenetrationMultiplier
	extern _Z19CG_AllocLocalEntityi
	extern cg_tracerSpeed
	extern cg_weaponCycleDelay
	extern _Z17CG_MenuShowNotifyii
	extern cg_drawGun
	extern _Z21CG_GetWeapReticleZoomPK4cg_sPf
	extern _Z31BG_CalculateWeaponPosition_SwayPK13playerState_sPfS2_S2_fi
	extern _Z23BG_IsAimDownSightWeaponj
	extern _Z23MatrixTransformVector43PKfPA3_S_Pf
	extern cg_gun_x
	extern cg_gun_y
	extern cg_gun_z
	extern _Z24BG_CalculateWeaponAnglesP13weaponState_tPf
	extern _Z12AnglesToAxisPKfPA3_f
	extern _Z14MatrixMultiplyPA3_KfS1_PA3_f
	extern _Z10AxisToQuatPA3_KfPf
	extern _Z16UnitQuatToAnglesPKfPf
	extern _Z17AngleNormalize360f
	extern _Z15GetLeanFractionf
	extern _Z18CL_GetConfigStringii
	extern strcpy
	extern _Z20SCR_UpdateLoadScreenv
	extern memset
	extern bg_itemlist
	extern _Z25XAnimClearTreeGoalWeightsP11XAnimTree_sjf
	extern _Z16DObjGetBoneIndexPK6DObj_sjPh
	extern _Z22SEH_StringEd_GetStringPKc
	extern loc_warnings
	extern loc_warningsAsErrors
	extern _Z16Com_PrintWarningiPKcz
	extern _Z24BG_GetWeaponIndexForNamePKcPFvjE
	extern _Z14UnitQuatToAxisPKfPA3_f
	extern player_breath_hold_time
	extern cgsArray
	extern _Z22SND_GetEntChannelCountv
	extern _Z21SND_SetChannelVolumesiPKfi
	extern _Z28SND_DeactivateChannelVolumesii
	extern _Z17AddLeanToPositionPfffff
	extern _Z16R_AddDObjToScenePK6DObj_sPK7cpose_tjjPff
	extern _Z28CG_LookingThroughNightVisioni
	extern cg_laserForceOn
	extern _Z12CG_Laser_AddP9centity_sP6DObj_sP7cpose_tPKf14LaserOwnerEnum
	extern player_breath_snd_lerp
	extern _Z9DiffTrackffff
	extern _Z23CG_PlayClientSoundAliasiP16snd_alias_list_t
	extern player_breath_snd_delay
	extern cg_brass
	extern _Z25BG_GetPlayerViewDirectionPK13playerState_sPfS2_S2_
	extern _Z7randomfv
	extern _Z23RotatePointAroundVectorPfPKfS1_f
	extern clientUIActives
	extern _Z9CL_SetADSih
	extern _Z22BG_GetPlayerViewOriginPK13playerState_sPfi
	extern _Z23DObjGetClientNotifyListPP13XAnimNotify_s
	extern _Z9I_stricmpPKcS0_
	extern _Z22SL_FindLowercaseStringPKc
	extern _Z29CG_PlayClientSoundAliasByNameiPKc
	extern _Z16XAnimHasFinishedPK11XAnimTree_sj

;Exports of cg_weapons:
	global _GLOBAL__I__Z13CG_JavelinADSi
	global g_animRateOffsets
	global _Z11PlayADSAnimfiP6DObj_si
	global _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef
	global _Z11ActionParmsPi
	global _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi
	global _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h
	global _Z15StartWeaponAnimiiP6DObj_sif
	global _ZZ45CalculateWeaponPosition_BasePosition_movementP4cg_sPfE10MYLERP_END
	global _ZZ45CalculateWeaponPosition_BasePosition_movementP4cg_sPfE12MYLERP_START
	global _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf
	global _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh
	global _Z16CycleWeapPrimaryiii
	global _Z15CalcMuzzlePointiiPfj
	global _Z23BulletTrajectoryEffectsiiPKfS0_ijhi
	global _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii
	global _Z13CG_DrawTracerPKfS0_PK8refdef_s
	global _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s
	global _Z13CG_JavelinADSi
	global _Z14CG_SpawnTraceriPKfS0_
	global _Z15CG_CalcEyePointiiPf
	global _Z15CG_NextWeapon_fv
	global _Z15CG_PrevWeapon_fv
	global _Z16CG_AddViewWeaponi
	global _Z16CG_RegisterItemsi
	global _Z17CG_ActionSlotUp_fv
	global _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii
	global _Z17CG_HoldBreathInitP4cg_s
	global _Z17CG_RegisterWeaponii
	global _Z17CG_SetupWeaponDefi
	global _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si
	global _Z18CG_MeleeBloodEventiPK9centity_si
	global _Z18CG_OutOfAmmoChangei
	global _Z19CG_ActionSlotDown_fv
	global _Z19CG_EjectWeaponBrassiPK13entityState_si
	global _Z19CG_GetViewDirectioniiPfS_S_
	global _Z19CG_RandomEffectAxisPKfPfS1_
	global _Z19CG_ScopeIsOverlayedi
	global _Z19CG_WeaponDObjHandlei
	global _Z20CG_SelectWeaponIndexij
	global _Z22CG_GetPlayerViewOriginiPK13playerState_sPf
	global _Z22CG_UpdateViewModelPosePK6DObj_si
	global _Z23CG_AltWeaponToggleIndexiPK4cg_s
	global _Z23CG_BulletHitClientEventiiPKfS0_iii
	global _Z23CG_UICheckWeapLockBlinkif
	global _Z23CG_UpdateHandViewmodelsiP6XModel
	global _Z23CG_UpdateViewWeaponAnimi
	global _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t
	global _Z24CG_PlayerTurretWeaponIdxi
	global _Z25CG_UpdateWeaponViewmodelsi
	global _Z26CG_PlayerUsingScopedTurreti
	global _Z27CG_UICheckWeapLockAttackTopi
	global _Z30CG_GetLocalClientGlobalsForEntii
	global _Z30CG_UICheckWeapLockAttackDirecti
	global removeMeWhenMPStopsCrashingInHere


SECTION .text


;global constructors keyed to CG_JavelinADS(int)
_GLOBAL__I__Z13CG_JavelinADSi:
	push ebp
	mov ebp, esp
	mov edx, 0xffff
	mov eax, 0x1
	pop ebp
	jmp _Z41__static_initialization_and_destruction_0ii


;PlayADSAnim(float, int, DObj_s*, int)
_Z11PlayADSAnimfiP6DObj_si:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	movss [ebp-0x1c], xmm0
	mov edi, edx
	cmp ecx, 0x1f
	jz _Z11PlayADSAnimfiP6DObj_si_10
	mov dword [esp+0x1c], 0x0
	mov dword [esp+0x18], 0x0
	mov dword [esp+0x14], 0x0
	xor ebx, ebx
	mov [esp+0x10], ebx
	mov esi, 0x3dcccccd
	mov [esp+0xc], esi
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x1f
	mov [esp], edx
	call _Z18XAnimSetGoalWeightP6DObj_sjfffjji
	mov dword [esp+0x1c], 0x0
	mov dword [esp+0x18], 0x1
	mov dword [esp+0x14], 0x0
	mov [esp+0x10], ebx
	mov [esp+0xc], esi
	mov dword [esp+0x8], 0x3f800000
	mov dword [esp+0x4], 0x20
	mov [esp], edi
	call _Z18XAnimSetGoalWeightP6DObj_sjfffjji
_Z11PlayADSAnimfiP6DObj_si_20:
	mov [esp], edi
	call _Z11DObjGetTreePK6DObj_s
	movss xmm0, dword [ebp-0x1c]
	movss [esp+0x8], xmm0
	mov dword [esp+0x4], 0x1f
	mov [esp], eax
	call _Z12XAnimSetTimeP11XAnimTree_sjf
	mov [esp], edi
	call _Z11DObjGetTreePK6DObj_s
	movss xmm0, dword [_float_1_00000000]
	subss xmm0, [ebp-0x1c]
	movss [esp+0x8], xmm0
	mov dword [esp+0x4], 0x20
	mov [esp], eax
	call _Z12XAnimSetTimeP11XAnimTree_sjf
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z11PlayADSAnimfiP6DObj_si_10:
	mov dword [esp+0x1c], 0x0
	mov dword [esp+0x18], 0x1
	mov dword [esp+0x14], 0x0
	xor ebx, ebx
	mov [esp+0x10], ebx
	mov esi, 0x3dcccccd
	mov [esp+0xc], esi
	mov dword [esp+0x8], 0x3f800000
	mov dword [esp+0x4], 0x1f
	mov [esp], edx
	call _Z18XAnimSetGoalWeightP6DObj_sjfffjji
	mov dword [esp+0x1c], 0x0
	mov dword [esp+0x18], 0x0
	mov dword [esp+0x14], 0x0
	mov [esp+0x10], ebx
	mov [esp+0xc], esi
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x20
	mov [esp], edi
	call _Z18XAnimSetGoalWeightP6DObj_sjfffjji
	jmp _Z11PlayADSAnimfiP6DObj_si_20


;CG_CreateWeaponViewModelXAnim(WeaponDef*)
_Z29CG_CreateWeaponViewModelXAnimP9WeaponDef:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov edi, eax
	mov eax, _Z21Hunk_AllocXAnimClienti
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x21
	mov dword [esp], _cstring_viewmodel
	call _Z16XAnimCreateAnimsPKciPFPviE
	mov [ebp-0x1c], eax
	mov dword [esp+0x14], 0x0
	mov dword [esp+0x10], 0x20
	mov dword [esp+0xc], 0x1
	mov dword [esp+0x8], _cstring_root
	mov dword [esp+0x4], 0x0
	mov [esp], eax
	call _Z10XAnimBlendP7XAnim_sjPKcjjj
	mov ebx, edi
	mov esi, 0x1
_Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_10:
	mov eax, [ebx+0x54]
	mov edx, 0x1
	cmp byte [eax], 0x0
	cmovnz edx, esi
	mov eax, [edi+edx*4+0x50]
	mov [esp+0x8], eax
	mov [esp+0x4], esi
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z14BG_CreateXAnimP7XAnim_sjPKc
	add esi, 0x1
	add ebx, 0x4
	cmp esi, 0x21
	jnz _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_10
	mov eax, _Z21Hunk_AllocXAnimClienti
	mov [esp+0x4], eax
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z15XAnimCreateTreeP7XAnim_sPFPviE
	mov ebx, eax
	mov eax, [edi+0x54]
	test eax, eax
	jz _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_20
	cmp byte [eax], 0x0
	jz _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_20
	mov eax, [edi+0xcc]
	cmp byte [eax], 0x0
	jnz _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_30
_Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_50:
	mov eax, [edi+0xd0]
	cmp byte [eax], 0x0
	jnz _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_40
_Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_60:
	mov eax, ebx
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_20:
	mov eax, [edi+0x4]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_cg_registerweapo
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	mov eax, [edi+0xcc]
	cmp byte [eax], 0x0
	jz _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_50
_Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_30:
	mov dword [esp+0x4], 0x1f
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z13XAnimIsLoopedPK7XAnim_sj
	test al, al
	jz _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_50
	mov eax, [edi+0xcc]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_cg_registerweapo1
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	jmp _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_50
_Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_40:
	mov dword [esp+0x4], 0x20
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z13XAnimIsLoopedPK7XAnim_sj
	test al, al
	jz _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef_60
	mov eax, [edi+0xd0]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_cg_registerweapo1
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	mov eax, ebx
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;ActionParms(int*)
_Z11ActionParmsPi:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, eax
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x1
	jle _Z11ActionParmsPi_10
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x4]
	mov [esp], eax
	call atoi
	lea edx, [eax-0x1]
	cmp edx, 0x3
	ja _Z11ActionParmsPi_20
	mov [ebx], edx
	mov eax, 0x1
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z11ActionParmsPi_20:
	mov dword [esp+0xc], 0x4
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_actionslot_numbe
	mov dword [esp], 0x0
	call _Z10Com_PrintfiPKcz
	xor eax, eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z11ActionParmsPi_10:
	mov dword [esp+0x4], _cstring_usage_actionslot
	mov dword [esp], 0x0
	call _Z10Com_PrintfiPKcz
	xor eax, eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret
	nop


;__static_initialization_and_destruction_0(int, int)
_Z41__static_initialization_and_destruction_0ii:
	push ebp
	mov ebp, esp
	cmp edx, 0xffff
	jz _Z41__static_initialization_and_destruction_0ii_10
_Z41__static_initialization_and_destruction_0ii_20:
	pop ebp
	ret
_Z41__static_initialization_and_destruction_0ii_10:
	sub eax, 0x1
	jnz _Z41__static_initialization_and_destruction_0ii_20
	mov eax, [g_fltMin__uint4]
	mov [g_fltMin], eax
	mov eax, [g_fltMin__uint4+0x4]
	mov [g_fltMin+0x4], eax
	mov eax, [g_fltMin__uint4+0x8]
	mov [g_fltMin+0x8], eax
	mov eax, [g_fltMin__uint4+0xc]
	mov [g_fltMin+0xc], eax
	mov eax, [g_negativeZero__uint4]
	mov [g_negativeZero], eax
	mov eax, [g_negativeZero__uint4+0x4]
	mov [g_negativeZero+0x4], eax
	mov eax, [g_negativeZero__uint4+0x8]
	mov [g_negativeZero+0x8], eax
	mov eax, [g_negativeZero__uint4+0xc]
	mov [g_negativeZero+0xc], eax
	mov eax, [g_inc__uint4]
	mov [g_inc], eax
	mov eax, [g_inc__uint4+0x4]
	mov [g_inc+0x4], eax
	mov eax, [g_inc__uint4+0x8]
	mov [g_inc+0x8], eax
	mov eax, [g_inc__uint4+0xc]
	mov [g_inc+0xc], eax
	mov eax, [g_swizzleXYZW__uint4]
	mov [g_swizzleXYZW], eax
	mov eax, [g_swizzleXYZW__uint4+0x4]
	mov [g_swizzleXYZW+0x4], eax
	mov eax, [g_swizzleXYZW__uint4+0x8]
	mov [g_swizzleXYZW+0x8], eax
	mov eax, [g_swizzleXYZW__uint4+0xc]
	mov [g_swizzleXYZW+0xc], eax
	mov eax, [g_swizzleYXZW__uint4]
	mov [g_swizzleYXZW], eax
	mov eax, [g_swizzleYXZW__uint4+0x4]
	mov [g_swizzleYXZW+0x4], eax
	mov eax, [g_swizzleYXZW__uint4+0x8]
	mov [g_swizzleYXZW+0x8], eax
	mov eax, [g_swizzleYXZW__uint4+0xc]
	mov [g_swizzleYXZW+0xc], eax
	mov eax, [g_swizzleXZYW__uint4]
	mov [g_swizzleXZYW], eax
	mov eax, [g_swizzleXZYW__uint4+0x4]
	mov [g_swizzleXZYW+0x4], eax
	mov eax, [g_swizzleXZYW__uint4+0x8]
	mov [g_swizzleXZYW+0x8], eax
	mov eax, [g_swizzleXZYW__uint4+0xc]
	mov [g_swizzleXZYW+0xc], eax
	mov eax, [g_swizzleYXWZ__uint4]
	mov [g_swizzleYXWZ], eax
	mov eax, [g_swizzleYXWZ__uint4+0x4]
	mov [g_swizzleYXWZ+0x4], eax
	mov eax, [g_swizzleYXWZ__uint4+0x8]
	mov [g_swizzleYXWZ+0x8], eax
	mov eax, [g_swizzleYXWZ__uint4+0xc]
	mov [g_swizzleYXWZ+0xc], eax
	mov eax, [g_swizzleXAZC__uint4]
	mov [g_swizzleXAZC], eax
	mov eax, [g_swizzleXAZC__uint4+0x4]
	mov [g_swizzleXAZC+0x4], eax
	mov eax, [g_swizzleXAZC__uint4+0x8]
	mov [g_swizzleXAZC+0x8], eax
	mov eax, [g_swizzleXAZC__uint4+0xc]
	mov [g_swizzleXAZC+0xc], eax
	mov eax, [g_swizzleYBWD__uint4]
	mov [g_swizzleYBWD], eax
	mov eax, [g_swizzleYBWD__uint4+0x4]
	mov [g_swizzleYBWD+0x4], eax
	mov eax, [g_swizzleYBWD__uint4+0x8]
	mov [g_swizzleYBWD+0x8], eax
	mov eax, [g_swizzleYBWD__uint4+0xc]
	mov [g_swizzleYBWD+0xc], eax
	mov eax, [g_swizzleXYAB__uint4]
	mov [g_swizzleXYAB], eax
	mov eax, [g_swizzleXYAB__uint4+0x4]
	mov [g_swizzleXYAB+0x4], eax
	mov eax, [g_swizzleXYAB__uint4+0x8]
	mov [g_swizzleXYAB+0x8], eax
	mov eax, [g_swizzleXYAB__uint4+0xc]
	mov [g_swizzleXYAB+0xc], eax
	mov eax, [g_swizzleZWCD__uint4]
	mov [g_swizzleZWCD], eax
	mov eax, [g_swizzleZWCD__uint4+0x4]
	mov [g_swizzleZWCD+0x4], eax
	mov eax, [g_swizzleZWCD__uint4+0x8]
	mov [g_swizzleZWCD+0x8], eax
	mov eax, [g_swizzleZWCD__uint4+0xc]
	mov [g_swizzleZWCD+0xc], eax
	mov eax, [g_swizzleXYZA__uint4]
	mov [g_swizzleXYZA], eax
	mov eax, [g_swizzleXYZA__uint4+0x4]
	mov [g_swizzleXYZA+0x4], eax
	mov eax, [g_swizzleXYZA__uint4+0x8]
	mov [g_swizzleXYZA+0x8], eax
	mov eax, [g_swizzleXYZA__uint4+0xc]
	mov [g_swizzleXYZA+0xc], eax
	mov eax, [g_swizzleYZXW__uint4]
	mov [g_swizzleYZXW], eax
	mov eax, [g_swizzleYZXW__uint4+0x4]
	mov [g_swizzleYZXW+0x4], eax
	mov eax, [g_swizzleYZXW__uint4+0x8]
	mov [g_swizzleYZXW+0x8], eax
	mov eax, [g_swizzleYZXW__uint4+0xc]
	mov [g_swizzleYZXW+0xc], eax
	mov eax, [g_swizzleZXYW__uint4]
	mov [g_swizzleZXYW], eax
	mov eax, [g_swizzleZXYW__uint4+0x4]
	mov [g_swizzleZXYW+0x4], eax
	mov eax, [g_swizzleZXYW__uint4+0x8]
	mov [g_swizzleZXYW+0x8], eax
	mov eax, [g_swizzleZXYW__uint4+0xc]
	mov [g_swizzleZXYW+0xc], eax
	mov eax, [g_swizzleWABW__uint4]
	mov [g_swizzleWABW], eax
	mov eax, [g_swizzleWABW__uint4+0x4]
	mov [g_swizzleWABW+0x4], eax
	mov eax, [g_swizzleWABW__uint4+0x8]
	mov [g_swizzleWABW+0x8], eax
	mov eax, [g_swizzleWABW__uint4+0xc]
	mov [g_swizzleWABW+0xc], eax
	mov eax, [g_swizzleZWAW__uint4]
	mov [g_swizzleZWAW], eax
	mov eax, [g_swizzleZWAW__uint4+0x4]
	mov [g_swizzleZWAW+0x4], eax
	mov eax, [g_swizzleZWAW__uint4+0x8]
	mov [g_swizzleZWAW+0x8], eax
	mov eax, [g_swizzleZWAW__uint4+0xc]
	mov [g_swizzleZWAW+0xc], eax
	mov eax, [g_swizzleYZWA__uint4]
	mov [g_swizzleYZWA], eax
	mov eax, [g_swizzleYZWA__uint4+0x4]
	mov [g_swizzleYZWA+0x4], eax
	mov eax, [g_swizzleYZWA__uint4+0x8]
	mov [g_swizzleYZWA+0x8], eax
	mov eax, [g_swizzleYZWA__uint4+0xc]
	mov [g_swizzleYZWA+0xc], eax
	mov eax, [g_swizzleXXXX__uint4]
	mov [g_swizzleXXXX], eax
	mov eax, [g_swizzleXXXX__uint4+0x4]
	mov [g_swizzleXXXX+0x4], eax
	mov eax, [g_swizzleXXXX__uint4+0x8]
	mov [g_swizzleXXXX+0x8], eax
	mov eax, [g_swizzleXXXX__uint4+0xc]
	mov [g_swizzleXXXX+0xc], eax
	mov eax, [g_swizzleYYYY__uint4]
	mov [g_swizzleYYYY], eax
	mov eax, [g_swizzleYYYY__uint4+0x4]
	mov [g_swizzleYYYY+0x4], eax
	mov eax, [g_swizzleYYYY__uint4+0x8]
	mov [g_swizzleYYYY+0x8], eax
	mov eax, [g_swizzleYYYY__uint4+0xc]
	mov [g_swizzleYYYY+0xc], eax
	mov eax, [g_swizzleZZZZ__uint4]
	mov [g_swizzleZZZZ], eax
	mov eax, [g_swizzleZZZZ__uint4+0x4]
	mov [g_swizzleZZZZ+0x4], eax
	mov eax, [g_swizzleZZZZ__uint4+0x8]
	mov [g_swizzleZZZZ+0x8], eax
	mov eax, [g_swizzleZZZZ__uint4+0xc]
	mov [g_swizzleZZZZ+0xc], eax
	mov eax, [g_swizzleWWWW__uint4]
	mov [g_swizzleWWWW], eax
	mov eax, [g_swizzleWWWW__uint4+0x4]
	mov [g_swizzleWWWW+0x4], eax
	mov eax, [g_swizzleWWWW__uint4+0x8]
	mov [g_swizzleWWWW+0x8], eax
	mov eax, [g_swizzleWWWW__uint4+0xc]
	mov [g_swizzleWWWW+0xc], eax
	mov eax, [g_selectX__uint4]
	mov [g_selectX], eax
	mov eax, [g_selectX__uint4+0x4]
	mov [g_selectX+0x4], eax
	mov eax, [g_selectX__uint4+0x8]
	mov [g_selectX+0x8], eax
	mov eax, [g_selectX__uint4+0xc]
	mov [g_selectX+0xc], eax
	mov eax, [g_selectY__uint4]
	mov [g_selectY], eax
	mov eax, [g_selectY__uint4+0x4]
	mov [g_selectY+0x4], eax
	mov eax, [g_selectY__uint4+0x8]
	mov [g_selectY+0x8], eax
	mov eax, [g_selectY__uint4+0xc]
	mov [g_selectY+0xc], eax
	mov eax, [g_selectZ__uint4]
	mov [g_selectZ], eax
	mov eax, [g_selectZ__uint4+0x4]
	mov [g_selectZ+0x4], eax
	mov eax, [g_selectZ__uint4+0x8]
	mov [g_selectZ+0x8], eax
	mov eax, [g_selectZ__uint4+0xc]
	mov [g_selectZ+0xc], eax
	mov eax, [g_selectW__uint4]
	mov [g_selectW], eax
	mov eax, [g_selectW__uint4+0x4]
	mov [g_selectW+0x4], eax
	mov eax, [g_selectW__uint4+0x8]
	mov [g_selectW+0x8], eax
	mov eax, [g_selectW__uint4+0xc]
	mov [g_selectW+0xc], eax
	mov eax, [g_keepYZW__uint4]
	mov [g_keepYZW], eax
	mov eax, [g_keepYZW__uint4+0x4]
	mov [g_keepYZW+0x4], eax
	mov eax, [g_keepYZW__uint4+0x8]
	mov [g_keepYZW+0x8], eax
	mov eax, [g_keepYZW__uint4+0xc]
	mov [g_keepYZW+0xc], eax
	mov eax, [g_keepXZW__uint4]
	mov [g_keepXZW], eax
	mov eax, [g_keepXZW__uint4+0x4]
	mov [g_keepXZW+0x4], eax
	mov eax, [g_keepXZW__uint4+0x8]
	mov [g_keepXZW+0x8], eax
	mov eax, [g_keepXZW__uint4+0xc]
	mov [g_keepXZW+0xc], eax
	mov eax, [g_keepXYW__uint4]
	mov [g_keepXYW], eax
	mov eax, [g_keepXYW__uint4+0x4]
	mov [g_keepXYW+0x4], eax
	mov eax, [g_keepXYW__uint4+0x8]
	mov [g_keepXYW+0x8], eax
	mov eax, [g_keepXYW__uint4+0xc]
	mov [g_keepXYW+0xc], eax
	mov eax, [g_keepXYZ__uint4]
	mov [g_keepXYZ], eax
	mov eax, [g_keepXYZ__uint4+0x4]
	mov [g_keepXYZ+0x4], eax
	mov eax, [g_keepXYZ__uint4+0x8]
	mov [g_keepXYZ+0x8], eax
	mov eax, [g_keepXYZ__uint4+0xc]
	mov [g_keepXYZ+0xc], eax
	mov eax, [g_keepXY__uint4]
	mov [g_keepXY], eax
	mov eax, [g_keepXY__uint4+0x4]
	mov [g_keepXY+0x4], eax
	mov eax, [g_keepXY__uint4+0x8]
	mov [g_keepXY+0x8], eax
	mov eax, [g_keepXY__uint4+0xc]
	mov [g_keepXY+0xc], eax
	mov eax, [g_keepZW__uint4]
	mov [g_keepZW], eax
	mov eax, [g_keepZW__uint4+0x4]
	mov [g_keepZW+0x4], eax
	mov eax, [g_keepZW__uint4+0x8]
	mov [g_keepZW+0x8], eax
	mov eax, [g_keepZW__uint4+0xc]
	mov [g_keepZW+0xc], eax
	mov eax, [g_keepX__uint4]
	mov [g_keepX], eax
	mov eax, [g_keepX__uint4+0x4]
	mov [g_keepX+0x4], eax
	mov eax, [g_keepX__uint4+0x8]
	mov [g_keepX+0x8], eax
	mov eax, [g_keepX__uint4+0xc]
	mov [g_keepX+0xc], eax
	mov eax, [g_keepZ__uint4]
	mov [g_keepZ], eax
	mov eax, [g_keepZ__uint4+0x4]
	mov [g_keepZ+0x4], eax
	mov eax, [g_keepZ__uint4+0x8]
	mov [g_keepZ+0x8], eax
	mov eax, [g_keepZ__uint4+0xc]
	mov [g_keepZ+0xc], eax
	pop ebp
	ret


;BulletTrace(int, BulletFireParams const*, WeaponDef const*, centity_s const*, BulletTraceResults*, int)
_Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov ebx, edx
	mov dword [esp+0x8], 0x44
	mov dword [esp+0x4], 0x0
	mov eax, [ebp+0xc]
	mov [esp], eax
	call _Z10Com_MemsetPvii
	lea edi, [ebx+0x28]
	lea esi, [ebx+0x1c]
	mov dword [esp+0x10], 0x2806831
	mov eax, [ebx+0x4]
	mov [esp+0xc], eax
	mov [esp+0x8], edi
	mov [esp+0x4], esi
	mov edx, [ebp+0xc]
	mov [esp], edx
	call _Z18CG_LocationalTraceP7trace_tPKfS2_ii
	mov ebx, [ebp+0xc]
	mov eax, [ebx+0x1c]
	test eax, eax
	jnz _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_10
	xor eax, eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_10:
	mov [esp], ebx
	call _Z20Trace_GetEntityHitIdPK7trace_t
	mov ecx, eax
	cmp ax, 0x3fe
	jz _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_20
	movzx eax, ax
	lea edx, [eax*4]
	shl eax, 0x5
	sub eax, edx
	mov edx, eax
	shl edx, 0x4
	lea edx, [eax+edx]
	add edx, cg_entitiesArray
_Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_70:
	mov eax, [ebp+0xc]
	add eax, 0x30
	mov ebx, [ebp+0xc]
	movss xmm2, dword [ebx]
	movss xmm1, dword [esi]
	movss xmm0, dword [edi]
	subss xmm0, xmm1
	mulss xmm0, xmm2
	addss xmm1, xmm0
	movss [ebx+0x30], xmm1
	movss xmm1, dword [esi+0x4]
	movss xmm0, dword [edi+0x4]
	subss xmm0, xmm1
	mulss xmm0, xmm2
	addss xmm1, xmm0
	movss [eax+0x4], xmm1
	movss xmm1, dword [esi+0x8]
	movss xmm0, dword [edi+0x8]
	subss xmm0, xmm1
	mulss xmm2, xmm0
	addss xmm1, xmm2
	movss [eax+0x8], xmm1
	test edx, edx
	jz _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_30
	mov eax, [edx+0xd0]
	sub eax, 0x1
	cmp eax, 0x1
	jbe _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_40
_Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_80:
	movzx eax, cx
	mov edx, [ebp+0x8]
	cmp eax, [edx+0xcc]
	mov ebx, [ebp+0xc]
	setz byte [ebx+0x3c]
_Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_30:
	mov edx, [ebp+0xc]
	mov eax, [edx+0x10]
	mov edx, eax
	and edx, 0x1f00000
	mov ecx, edx
	shr ecx, 0x14
	movzx edx, cl
	mov ebx, [ebp+0xc]
	mov [ebx+0x40], edx
	test ah, 0x1
	jz _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_50
	mov dword [ebx+0x40], 0x0
	mov eax, 0x1
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_50:
	test cl, cl
	jnz _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_60
	mov ebx, [ebp+0x10]
	test ebx, ebx
	jz _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_60
	mov edx, [ebp+0x10]
	mov eax, [ebp+0xc]
	mov [eax+0x40], edx
	mov eax, 0x1
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_60:
	mov eax, 0x1
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_20:
	xor edx, edx
	jmp _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_70
_Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_40:
	mov esi, [ebx+0x10]
	test esi, esi
	jnz _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_80
	mov dword [ebx+0x10], 0x700000
	jmp _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi_80
	nop


;ChangeViewmodelDobj(int, int, unsigned char, XModel*, XModel*, XModel*, XModel*, unsigned char)
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x6c
	mov [ebp-0x48], eax
	mov ebx, edx
	mov [ebp-0x4c], ecx
	movzx edi, byte [ebp-0x4c]
	movzx eax, byte [ebp+0x18]
	mov [ebp-0x4d], al
	test edx, edx
	jnz _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_10
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_20:
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_10:
	mov eax, edx
	shl eax, 0x6
	lea esi, [eax+edx*4]
	add esi, cg_weaponsArray
	mov [esp], edx
	call _Z15BG_GetWeaponDefj
	mov [ebp-0x44], eax
	and edi, 0xff
	mov eax, [eax+edi*4+0xc]
	test eax, eax
	jz _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_20
	mov edx, [ebp+0x8]
	mov [esi+0x4], edx
	mov eax, [ebp+0xc]
	mov [esi+0x8], eax
	mov edx, [ebp+0x10]
	mov [esi+0xc], edx
	mov eax, [ebp+0x14]
	mov [esi+0x10], eax
	movzx edx, byte [ebp-0x4c]
	mov [esi+0x14], dl
	add ebx, 0x400
	mov [ebp-0x3c], ebx
	mov eax, [esi]
	test eax, eax
	jz _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_30
	mov [esp], eax
	call _Z11DObjGetTreePK6DObj_s
	mov [ebp-0x40], eax
	mov eax, [ebp-0x48]
	mov [esp+0x4], eax
	mov edx, [ebp-0x3c]
	mov [esp], edx
	call _Z22Com_SafeClientDObjFreeii
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_100:
	mov word [ebp-0x34], 0x0
	mov byte [ebp-0x32], 0x0
	mov eax, [esi+0x4]
	mov [ebp-0x38], eax
	mov ebx, scr_const
	movzx eax, word [ebx+0xa6]
	mov [ebp-0x2c], ax
	mov byte [ebp-0x2a], 0x0
	mov edx, [ebp-0x44]
	mov eax, [edx+edi*4+0xc]
	mov [ebp-0x30], eax
	mov edx, [esi+0x8]
	test edx, edx
	jz _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_40
	mov eax, overrideNVGModelWithKnife
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_50
	movzx eax, word [ebx+0xb0]
	mov [ebp-0x24], ax
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_80:
	mov [ebp-0x28], edx
	mov byte [ebp-0x22], 0x0
	mov edx, 0x3
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_90:
	mov ecx, [esi+0xc]
	test ecx, ecx
	jz _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_60
	movzx eax, word [ebx+0x8e]
	mov [ebp+edx*8-0x34], ax
	mov byte [ebp+edx*8-0x32], 0x0
	mov [ebp+edx*8-0x38], ecx
	add edx, 0x1
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_60:
	mov ecx, [esi+0x10]
	test ecx, ecx
	jz _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_70
	movzx eax, word [ebx+0x9e]
	mov [ebp+edx*8-0x34], ax
	mov byte [ebp+edx*8-0x32], 0x0
	mov [ebp+edx*8-0x38], ecx
	add edx, 0x1
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_70:
	mov eax, [ebp-0x48]
	mov [esp+0x10], eax
	mov eax, [ebp-0x3c]
	mov [esp+0xc], eax
	mov eax, [ebp-0x40]
	mov [esp+0x8], eax
	movzx eax, dx
	mov [esp+0x4], eax
	lea eax, [ebp-0x38]
	mov [esp], eax
	call _Z20Com_ClientDObjCreateP11DObjModel_stP11XAnimTree_sii
	mov [esi], eax
	lea edx, [esi+0x18]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z19DObjSetHidePartBitsP6DObj_sPKj
	cmp byte [ebp-0x4d], 0x0
	jz _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_20
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x3d4ccccd
	mov eax, [esi]
	mov [esp], eax
	call _Z20DObjUpdateClientInfoP6DObj_sfh
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_50:
	movzx eax, word [ebx+0xae]
	mov [ebp-0x24], ax
	jmp _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_80
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_40:
	mov dl, 0x2
	jmp _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_90
_Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_30:
	mov eax, [ebp-0x44]
	call _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef
	mov [ebp-0x40], eax
	mov [esi+0x2c], eax
	jmp _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h_100


;StartWeaponAnim(int, int, DObj_s*, int, float)
_Z15StartWeaponAnimiiP6DObj_sif:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4c
	mov ebx, edx
	mov edi, ecx
	mov esi, [ebp+0x8]
	movss [ebp-0x20], xmm0
	mov eax, edx
	shl eax, 0x6
	lea edx, [eax+edx*4]
	mov eax, cg_weaponsArray
	mov eax, [eax+edx+0x2c]
	mov [esp], eax
	call _Z13XAnimGetAnimsPK11XAnimTree_s
	mov [ebp-0x1c], eax
	mov [esp], ebx
	call _Z15BG_GetWeaponDefj
	mov edx, eax
	mov eax, [esi*4+g_animRateOffsets]
	test eax, eax
	js _Z15StartWeaponAnimiiP6DObj_sif_10
	mov ebx, [edx+eax]
	pxor xmm1, xmm1
	test ebx, ebx
	jnz _Z15StartWeaponAnimiiP6DObj_sif_20
_Z15StartWeaponAnimiiP6DObj_sif_120:
	mov edx, cgArray
	mov eax, [edx+0x46228]
	cmp eax, 0x7
	jz _Z15StartWeaponAnimiiP6DObj_sif_30
	cmp eax, 0x9
	jz _Z15StartWeaponAnimiiP6DObj_sif_30
	cmp eax, 0xb
	jz _Z15StartWeaponAnimiiP6DObj_sif_30
	cmp eax, 0xa
	jz _Z15StartWeaponAnimiiP6DObj_sif_30
	cmp eax, 0x8
	jz _Z15StartWeaponAnimiiP6DObj_sif_30
_Z15StartWeaponAnimiiP6DObj_sif_80:
	cmp eax, 0x6
	jz _Z15StartWeaponAnimiiP6DObj_sif_40
_Z15StartWeaponAnimiiP6DObj_sif_100:
	mov ebx, 0x1
	jmp _Z15StartWeaponAnimiiP6DObj_sif_50
_Z15StartWeaponAnimiiP6DObj_sif_70:
	mov dword [esp+0x1c], 0x0
	mov dword [esp+0x18], 0x0
	mov dword [esp+0x14], 0x0
	mov dword [esp+0x10], 0x3f800000
	movss xmm0, dword [ebp-0x20]
	movss [esp+0xc], xmm0
	mov dword [esp+0x8], 0x0
	mov [esp+0x4], ebx
	mov [esp], edi
	movss [ebp-0x38], xmm1
	call _Z18XAnimSetGoalWeightP6DObj_sjfffjji
	movss xmm1, dword [ebp-0x38]
	add ebx, 0x1
	cmp ebx, 0x1f
	jz _Z15StartWeaponAnimiiP6DObj_sif_60
_Z15StartWeaponAnimiiP6DObj_sif_50:
	cmp esi, ebx
	jnz _Z15StartWeaponAnimiiP6DObj_sif_70
	mov dword [esp+0x1c], 0x1
	mov dword [esp+0x18], 0x1
	mov dword [esp+0x14], 0x0
	movss [esp+0x10], xmm1
	movss xmm0, dword [ebp-0x20]
	movss [esp+0xc], xmm0
	mov dword [esp+0x8], 0x3f800000
	mov [esp+0x4], ebx
	mov [esp], edi
	movss [ebp-0x38], xmm1
	call _Z18XAnimSetGoalWeightP6DObj_sjfffjji
	movss xmm1, dword [ebp-0x38]
	add ebx, 0x1
	cmp ebx, 0x1f
	jnz _Z15StartWeaponAnimiiP6DObj_sif_50
_Z15StartWeaponAnimiiP6DObj_sif_60:
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z15StartWeaponAnimiiP6DObj_sif_30:
	test byte [edx+0x46738], 0x4
	jz _Z15StartWeaponAnimiiP6DObj_sif_80
	mov eax, perk_weapReloadMultiplier
	mov eax, [eax]
	movss xmm0, dword [eax+0xc]
	ucomiss xmm0, [_float_0_00000000]
	jnz _Z15StartWeaponAnimiiP6DObj_sif_90
_Z15StartWeaponAnimiiP6DObj_sif_110:
	jp _Z15StartWeaponAnimiiP6DObj_sif_90
	movss xmm1, dword [_float_1000_00000000]
	jmp _Z15StartWeaponAnimiiP6DObj_sif_100
_Z15StartWeaponAnimiiP6DObj_sif_40:
	test byte [edx+0x46738], 0x8
	jz _Z15StartWeaponAnimiiP6DObj_sif_100
	mov eax, perk_weapRateMultiplier
	mov eax, [eax]
	movss xmm0, dword [eax+0xc]
	ucomiss xmm0, [_float_0_00000000]
	jz _Z15StartWeaponAnimiiP6DObj_sif_110
_Z15StartWeaponAnimiiP6DObj_sif_90:
	divss xmm1, xmm0
	jmp _Z15StartWeaponAnimiiP6DObj_sif_100
_Z15StartWeaponAnimiiP6DObj_sif_20:
	mov [esp+0x4], esi
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z18XAnimGetLengthMsecPK7XAnim_sj
	cvtsi2ss xmm1, eax
	cvtsi2ss xmm0, ebx
	divss xmm1, xmm0
	jmp _Z15StartWeaponAnimiiP6DObj_sif_120
_Z15StartWeaponAnimiiP6DObj_sif_10:
	movss xmm1, dword [_float_1_00000000]
	jmp _Z15StartWeaponAnimiiP6DObj_sif_120
	nop


;CalculateWeaponPosition_BasePosition_movement(cg_s*, float*)
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4c
	mov esi, [ebp+0x8]
	add esi, 0x4613c
	mov eax, [ebp+0x8]
	add eax, 0x4927c
	mov [ebp-0x30], eax
	mov [esp], esi
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov edi, eax
	mov edx, [ebp+0x8]
	mov ecx, [edx+0x49174]
	mov eax, ecx
	shr eax, 0x3
	mov edx, eax
	and dl, 0x1
	mov [ebp-0x35], dl
	jz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_10
	mov eax, cg_gun_move_minspeed
	mov eax, [eax]
	movss xmm2, dword [edi+0x2a4]
	addss xmm2, [eax+0xc]
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_220:
	mov eax, [ebp+0x8]
	movss xmm0, dword [eax+0x5040c]
	ucomiss xmm0, xmm2
	seta dl
	mov eax, [esi+0xec]
	mov [ebp-0x34], eax
	sub eax, 0x19
	cmp eax, 0x1
	setbe byte [ebp-0x2a]
	mov ebx, [esi+0x114]
	cmp ebx, 0xb
	setz byte [ebp-0x29]
	test dl, dl
	jz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_20
	cmp dword [ebp-0x34], 0x7
	jz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_20
	cmp byte [ebp-0x2a], 0x0
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_20
	movaps xmm3, xmm0
	subss xmm3, xmm2
	cvtsi2ss xmm0, dword [esi+0x60]
	subss xmm0, xmm2
	divss xmm3, xmm0
	movss xmm2, dword [_float_1_00000000]
	movaps xmm0, xmm3
	subss xmm0, xmm2
	pxor xmm1, xmm1
	cmpss xmm1, xmm0, 0x6
	movaps xmm0, xmm1
	movaps xmm1, xmm3
	andps xmm1, xmm0
	movaps xmm3, xmm0
	andnps xmm3, xmm2
	orps xmm3, xmm1
	cmp byte [ebp-0x35], 0x0
	jz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_30
	lea eax, [edi+0x27c]
	movaps xmm0, xmm3
	mulss xmm0, [edi+0x27c]
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_280:
	movss [ebp-0x24], xmm0
	movaps xmm0, xmm3
	mulss xmm0, [eax+0x4]
	movss [ebp-0x20], xmm0
	movaps xmm0, xmm3
	mulss xmm0, [eax+0x8]
	movss [ebp-0x1c], xmm0
	mov eax, cg_gun_move_f
	mov eax, [eax]
	movaps xmm0, xmm3
	mulss xmm0, [eax+0xc]
	addss xmm0, [ebp-0x24]
	movss [ebp-0x24], xmm0
	mov eax, cg_gun_move_r
	mov eax, [eax]
	movaps xmm0, xmm3
	mulss xmm0, [eax+0xc]
	addss xmm0, [ebp-0x20]
	movss [ebp-0x20], xmm0
	mov eax, cg_gun_move_u
	mov eax, [eax]
	mulss xmm3, [eax+0xc]
	addss xmm3, [ebp-0x1c]
	movss [ebp-0x1c], xmm3
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_140:
	cmp ebx, 0x28
	jz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_40
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_160:
	cmp byte [ebp-0x29], 0x0
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_40
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_150:
	mov edx, [ebp-0x30]
	mov ecx, 0x1
	movss xmm7, dword [_float_11_00000000]
	movss xmm6, dword [_float_0_00100000]
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_100:
	lea ebx, [edx+0x18]
	movss xmm3, dword [edx+0x18]
	movss xmm2, dword [ebp+ecx*4-0x28]
	ucomiss xmm3, xmm2
	jp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_50
	jz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_60
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_50:
	movss xmm0, dword [esi+0x118]
	ucomiss xmm0, xmm7
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_70
	jp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_70
	mov eax, [ebp+0x8]
	cvtsi2ss xmm4, dword [eax+0x46124]
	movaps xmm5, xmm6
	movaps xmm1, xmm4
	mulss xmm1, xmm6
	movaps xmm0, xmm2
	subss xmm0, xmm3
	mulss xmm1, xmm0
	mov eax, cg_gun_move_rate
	mov eax, [eax]
	mov [ebp-0x3c], eax
	movss xmm0, dword [edi+0x298]
	addss xmm0, [eax+0xc]
	mulss xmm1, xmm0
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_200:
	ucomiss xmm2, xmm3
	jbe _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_80
	movaps xmm0, xmm4
	mulss xmm0, xmm5
	mulss xmm0, [_float_0_10000000]
	maxss xmm0, xmm1
	addss xmm0, xmm3
	movss [ebx], xmm0
	ucomiss xmm0, xmm2
	ja _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_90
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_60:
	add ecx, 0x1
	add edx, 0x4
	cmp ecx, 0x4
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_100
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_190:
	movss xmm1, dword [esi+0xf4]
	pxor xmm0, xmm0
	ucomiss xmm1, xmm0
	jp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_110
	jz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_120
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_110:
	ucomiss xmm1, [_float_0_50000000]
	jae _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_130
	jp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_130
	mulss xmm1, [_float__2_00000000]
	addss xmm1, [_float_1_00000000]
	mov eax, [ebp-0x30]
	add eax, 0x18
	movaps xmm0, xmm1
	mov edx, [ebp-0x30]
	mulss xmm0, [edx+0x18]
	mov edx, [ebp+0xc]
	addss xmm0, [edx]
	movss [edx], xmm0
	movaps xmm0, xmm1
	mulss xmm0, [eax+0x4]
	addss xmm0, [edx+0x4]
	movss [edx+0x4], xmm0
	mulss xmm1, [eax+0x8]
	addss xmm1, [edx+0x8]
	movss [edx+0x8], xmm1
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_130:
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_20:
	mov dword [ebp-0x24], 0x0
	mov dword [ebp-0x20], 0x0
	mov dword [ebp-0x1c], 0x0
	test dl, dl
	jz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_140
	cmp byte [ebp-0x2a], 0x0
	jz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_140
	cmp byte [ebp-0x29], 0x0
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_150
	cmp ebx, 0x28
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_160
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_40:
	cmp byte [ebp-0x2a], 0x0
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_170
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_230:
	movss xmm2, dword [_float_1_00000000]
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_250:
	cmp ebx, 0x28
	jz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_180
	cmp ebx, 0xb
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_150
	lea eax, [edi+0x270]
	movaps xmm0, xmm2
	mulss xmm0, [edi+0x270]
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_260:
	addss xmm0, [ebp-0x24]
	movss [ebp-0x24], xmm0
	movaps xmm1, xmm2
	mulss xmm1, [eax+0x4]
	addss xmm1, [ebp-0x20]
	movss [ebp-0x20], xmm1
	mulss xmm2, [eax+0x8]
	addss xmm2, [ebp-0x1c]
	movss [ebp-0x1c], xmm2
	mov eax, cg_gun_ofs_f
	mov eax, [eax]
	addss xmm0, [eax+0xc]
	movss [ebp-0x24], xmm0
	mov eax, cg_gun_ofs_r
	mov eax, [eax]
	addss xmm1, [eax+0xc]
	movss [ebp-0x20], xmm1
	mov eax, cg_gun_ofs_u
	mov eax, [eax]
	addss xmm2, [eax+0xc]
	movss [ebp-0x1c], xmm2
	jmp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_150
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_80:
	movaps xmm0, xmm4
	mulss xmm0, xmm5
	mulss xmm0, [_float__0_10000000]
	minss xmm0, xmm1
	addss xmm0, xmm3
	maxss xmm2, xmm0
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_90:
	movss [ebx], xmm2
	add ecx, 0x1
	add edx, 0x4
	cmp ecx, 0x4
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_100
	jmp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_190
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_70:
	mov eax, [ebp+0x8]
	cvtsi2ss xmm4, dword [eax+0x46124]
	movaps xmm5, xmm6
	movaps xmm1, xmm4
	mulss xmm1, xmm6
	movaps xmm0, xmm2
	subss xmm0, xmm3
	mulss xmm1, xmm0
	mov eax, cg_gun_move_rate
	mov eax, [eax]
	mov [ebp-0x40], eax
	movss xmm0, dword [edi+0x294]
	addss xmm0, [eax+0xc]
	mulss xmm1, xmm0
	jmp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_200
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_10:
	test cl, 0x4
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_210
	mov eax, cg_gun_move_minspeed
	mov eax, [eax]
	movss xmm2, dword [edi+0x29c]
	addss xmm2, [eax+0xc]
	jmp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_220
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_120:
	mov eax, [ebp-0x30]
	add eax, 0x18
	mov edx, [ebp+0xc]
	movss xmm0, dword [edx]
	mov edx, [ebp-0x30]
	addss xmm0, [edx+0x18]
	mov edx, [ebp+0xc]
	movss [edx], xmm0
	movss xmm0, dword [edx+0x4]
	addss xmm0, [eax+0x4]
	movss [edx+0x4], xmm0
	movss xmm0, dword [edx+0x8]
	addss xmm0, [eax+0x8]
	movss [edx+0x8], xmm0
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_170:
	cvtsi2ss xmm1, dword [esi+0x3c]
	cvtsi2ss xmm0, dword [edi+0x3d4]
	divss xmm1, xmm0
	movss xmm0, dword [_ZZ45CalculateWeaponPosition_BasePosition_movementP4cg_sPfE10MYLERP_END]
	ucomiss xmm0, xmm1
	ja _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_230
	movss xmm2, dword [_ZZ45CalculateWeaponPosition_BasePosition_movementP4cg_sPfE12MYLERP_START]
	ucomiss xmm2, xmm1
	ja _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_240
	pxor xmm2, xmm2
	jmp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_250
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_210:
	mov eax, cg_gun_move_minspeed
	mov eax, [eax]
	movss xmm2, dword [edi+0x2a0]
	addss xmm2, [eax+0xc]
	jmp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_220
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_180:
	lea eax, [edi+0x24c]
	movaps xmm0, xmm2
	mulss xmm0, [edi+0x24c]
	jmp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_260
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_30:
	and cl, 0x4
	jnz _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_270
	lea eax, [edi+0x234]
	movaps xmm0, xmm3
	mulss xmm0, [edi+0x234]
	jmp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_280
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_240:
	subss xmm1, xmm0
	subss xmm2, xmm0
	divss xmm1, xmm2
	movss xmm2, dword [_float_1_00000000]
	subss xmm2, xmm1
	jmp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_250
_Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_270:
	lea eax, [edi+0x258]
	movaps xmm0, xmm3
	mulss xmm0, [edi+0x258]
	jmp _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf_280
	nop


;NextWeapInCycle(int, playerState_s const*, weapInventoryType_t, unsigned int, unsigned char, unsigned char, unsigned char)
_Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov [ebp-0x20], edx
	mov [ebp-0x24], ecx
	movzx ebx, byte [ebp+0xc]
	movzx eax, byte [ebp+0x10]
	mov [ebp-0x25], al
	movzx edx, byte [ebp+0x14]
	mov [ebp-0x26], dl
	call _Z16BG_GetNumWeaponsv
	cmp eax, 0x1
	jbe _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_10
	call _Z16BG_GetNumWeaponsv
	lea esi, [eax-0x1]
	cmp bl, 0x1
	sbb eax, eax
	or eax, 0x1
	mov [ebp-0x1c], eax
	mov ebx, 0x1
	mov edx, [ebp+0x8]
	test edx, edx
	cmovnz ebx, [ebp+0x8]
	mov [ebp+0x8], ebx
	mov edx, eax
	lea eax, [ebx+edx]
	lea eax, [esi+eax-0x1]
	xor edx, edx
	div esi
	lea ebx, [edx+0x1]
	cmp [ebp+0x8], ebx
	jz _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_10
_Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_30:
	mov [esp], ebx
	call _Z15BG_GetWeaponDefj
	mov edi, eax
	mov eax, [ebp-0x24]
	cmp [edi+0x13c], eax
	jz _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_20
_Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_40:
	mov edx, [ebp-0x1c]
_Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_70:
	lea eax, [ebx+edx]
	lea eax, [esi+eax-0x1]
	xor edx, edx
	div esi
	lea ebx, [edx+0x1]
	cmp [ebp+0x8], ebx
	jnz _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_30
_Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_10:
	xor ebx, ebx
_Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_60:
	mov eax, ebx
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_20:
	mov eax, ebx
	sar eax, 0x5
	mov ecx, ebx
	and ecx, 0x1f
	mov edx, 0x1
	shl edx, cl
	mov ecx, edx
	mov edx, [ebp-0x20]
	test [edx+eax*4+0x55c], ecx
	jz _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_40
	cmp byte [ebp-0x25], 0x0
	jnz _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_50
_Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_80:
	cmp byte [ebp-0x26], 0x0
	jz _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_60
	mov eax, [edi+0x540]
	test eax, eax
	jnz _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_60
	mov edx, [ebp-0x1c]
	jmp _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_70
_Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_50:
	mov [esp+0x4], ebx
	mov [esp], edx
	call _Z13BG_WeaponAmmoPK13playerState_si
	test eax, eax
	jnz _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_80
	mov edx, [ebp-0x1c]
	jmp _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh_70


;CycleWeapPrimary(int, int, int)
_Z16CycleWeapPrimaryiii:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov [ebp-0x20], eax
	mov edi, edx
	mov [ebp-0x24], ecx
	mov ebx, cgArray
	mov eax, [ebx+0x24]
	test eax, eax
	jz _Z16CycleWeapPrimaryiii_10
	test byte [eax+0x20], 0x4
	jz _Z16CycleWeapPrimaryiii_10
	cmp dword [ebx+0x46140], 0x6
	jle _Z16CycleWeapPrimaryiii_20
_Z16CycleWeapPrimaryiii_10:
	xor eax, eax
_Z16CycleWeapPrimaryiii_90:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z16CycleWeapPrimaryiii_20:
	mov eax, [ebx+0x5036c]
	mov [ebp-0x1c], eax
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov esi, eax
	call _Z16BG_GetNumWeaponsv
	cmp eax, 0x1
	jbe _Z16CycleWeapPrimaryiii_10
	mov eax, [esi+0x13c]
	cmp eax, 0x3
	jz _Z16CycleWeapPrimaryiii_30
	test eax, eax
	jz _Z16CycleWeapPrimaryiii_40
	mov esi, [ebx+0x50374]
	test esi, esi
	jz _Z16CycleWeapPrimaryiii_40
	mov edx, esi
	sar edx, 0x5
	mov ecx, esi
	and ecx, 0x1f
	mov eax, 0x1
	shl eax, cl
	test [ebx+edx*4+0x46698], eax
	jnz _Z16CycleWeapPrimaryiii_50
_Z16CycleWeapPrimaryiii_40:
	call _Z16BG_GetNumWeaponsv
	lea esi, [eax-0x1]
	cmp edi, 0x1
	sbb edi, edi
	or edi, 0x1
	mov ebx, 0x1
	mov eax, [ebp-0x1c]
	test eax, eax
	cmovnz ebx, [ebp-0x1c]
	mov [ebp-0x1c], ebx
_Z16CycleWeapPrimaryiii_70:
	lea eax, [ebx+edi]
	lea eax, [esi+eax-0x1]
	xor edx, edx
	div esi
	lea ebx, [edx+0x1]
	cmp [ebp-0x1c], ebx
	jz _Z16CycleWeapPrimaryiii_60
	mov edx, ebx
	sar edx, 0x5
	mov ecx, ebx
	and ecx, 0x1f
	mov eax, 0x1
	shl eax, cl
	mov ecx, cgArray
	test [ecx+edx*4+0x46698], eax
	jz _Z16CycleWeapPrimaryiii_70
	mov eax, [ebp-0x24]
	test eax, eax
	jz _Z16CycleWeapPrimaryiii_80
	mov [esp+0x4], ebx
	mov eax, ecx
	add eax, 0x4613c
	mov [esp], eax
	call _Z13BG_WeaponAmmoPK13playerState_si
	test eax, eax
	jz _Z16CycleWeapPrimaryiii_70
_Z16CycleWeapPrimaryiii_80:
	mov [esp], ebx
	call _Z15BG_GetWeaponDefj
	mov eax, [eax+0x13c]
	cmp eax, 0x3
	jz _Z16CycleWeapPrimaryiii_70
	cmp eax, 0x2
	jz _Z16CycleWeapPrimaryiii_70
	sub eax, 0x1
	jz _Z16CycleWeapPrimaryiii_70
	mov [esp+0x4], ebx
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _Z20CG_SelectWeaponIndexij
	mov eax, 0x1
	jmp _Z16CycleWeapPrimaryiii_90
_Z16CycleWeapPrimaryiii_30:
	mov edi, [esi+0x540]
	mov edx, edi
	sar edx, 0x5
	mov ecx, edi
	and ecx, 0x1f
	mov al, 0x1
	shl eax, cl
	test [ebx+edx*4+0x46698], eax
	jz _Z16CycleWeapPrimaryiii_100
	mov [esp+0x4], edi
	mov ecx, [ebp-0x20]
	mov [esp], ecx
	call _Z20CG_SelectWeaponIndexij
	mov eax, 0x1
	jmp _Z16CycleWeapPrimaryiii_90
_Z16CycleWeapPrimaryiii_60:
	mov eax, cgArray
	mov ecx, [eax+0x5036c]
	mov edx, ecx
	sar edx, 0x5
	and ecx, 0x1f
	mov eax, 0x1
	shl eax, cl
	mov ecx, cgArray
	test [ecx+edx*4+0x46698], eax
	jnz _Z16CycleWeapPrimaryiii_10
	mov dword [esp+0x4], 0x0
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _Z20CG_SelectWeaponIndexij
	xor eax, eax
	jmp _Z16CycleWeapPrimaryiii_90
_Z16CycleWeapPrimaryiii_50:
	mov [esp+0x4], esi
	mov ecx, [ebp-0x20]
	mov [esp], ecx
	call _Z20CG_SelectWeaponIndexij
	mov eax, 0x1
	jmp _Z16CycleWeapPrimaryiii_90
_Z16CycleWeapPrimaryiii_100:
	mov eax, [esi+0x53c]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_player_is_holdin
	mov dword [esp], 0xe
	call _Z14Com_PrintErroriPKcz
	mov dword [esp+0x4], 0x0
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _Z20CG_SelectWeaponIndexij
	jmp _Z16CycleWeapPrimaryiii_10
	nop


;CalcMuzzlePoint(int, int, float*, unsigned int)
_Z15CalcMuzzlePointiiPfj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov [ebp-0x1c], eax
	mov esi, edx
	mov edi, ecx
	mov dword [esp], 0x0
	call _Z22CL_IsLocalClientActivei
	test al, al
	jz _Z15CalcMuzzlePointiiPfj_10
	mov eax, cgArray
	mov edx, [eax+0x24]
	test byte [edx+0x20], 0x6
	jnz _Z15CalcMuzzlePointiiPfj_20
_Z15CalcMuzzlePointiiPfj_70:
	xor edx, edx
_Z15CalcMuzzlePointiiPfj_80:
	test edx, edx
	jnz _Z15CalcMuzzlePointiiPfj_30
_Z15CalcMuzzlePointiiPfj_10:
	lea edx, [esi*4]
	mov eax, esi
	shl eax, 0x5
	sub eax, edx
	mov edx, eax
	shl edx, 0x4
	lea ebx, [eax+edx]
	add ebx, cg_entitiesArray
	mov eax, [ebp-0x1c]
	mov [esp+0x4], eax
	mov eax, [ebx+0xcc]
	mov [esp], eax
	call _Z17Com_GetClientDObjii
	test eax, eax
	jz _Z15CalcMuzzlePointiiPfj_40
	mov [esp+0xc], edi
	mov edx, [ebp+0x8]
	mov [esp+0x8], edx
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z21CG_DObjGetWorldTagPosPK7cpose_tP6DObj_sjPf
	test eax, eax
	jnz _Z15CalcMuzzlePointiiPfj_50
	lea edx, [ebx+0xe4]
	mov eax, [ebx+0xe4]
	mov [edi], eax
	mov eax, [edx+0x4]
	mov [edi+0x4], eax
	mov eax, [edx+0x8]
	mov [edi+0x8], eax
	cmp esi, 0x3f
	jle _Z15CalcMuzzlePointiiPfj_60
_Z15CalcMuzzlePointiiPfj_50:
	mov eax, 0x1
_Z15CalcMuzzlePointiiPfj_40:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z15CalcMuzzlePointiiPfj_20:
	cmp esi, [edx+0xe8]
	jnz _Z15CalcMuzzlePointiiPfj_70
	mov edx, 0x1
	jmp _Z15CalcMuzzlePointiiPfj_80
_Z15CalcMuzzlePointiiPfj_60:
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z18SL_ConvertToStringj
	mov [esp+0xc], esi
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_no_s_in_calcmuzz
	mov dword [esp], 0x11
	call _Z11Com_DPrintfiPKcz
	mov eax, [ebx+0xd4]
	test al, 0x8
	jnz _Z15CalcMuzzlePointiiPfj_90
	test al, 0x4
	jz _Z15CalcMuzzlePointiiPfj_100
	movss xmm0, dword [_float_40_00000000]
	addss xmm0, [edi+0x8]
	movss [edi+0x8], xmm0
	mov eax, 0x1
	jmp _Z15CalcMuzzlePointiiPfj_40
_Z15CalcMuzzlePointiiPfj_90:
	movss xmm0, dword [_float_11_00000000]
	addss xmm0, [edi+0x8]
	movss [edi+0x8], xmm0
	mov eax, 0x1
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z15CalcMuzzlePointiiPfj_100:
	movss xmm0, dword [_float_60_00000000]
	addss xmm0, [edi+0x8]
	movss [edi+0x8], xmm0
	mov eax, 0x1
	jmp _Z15CalcMuzzlePointiiPfj_40
_Z15CalcMuzzlePointiiPfj_30:
	lea edx, [eax+0x492e0]
	mov eax, [eax+0x492e0]
	mov [edi], eax
	mov eax, [edx+0x4]
	mov [edi+0x4], eax
	mov eax, [edx+0x8]
	mov [edi+0x8], eax
	mov eax, 0x1
	jmp _Z15CalcMuzzlePointiiPfj_40
	nop


;BulletTrajectoryEffects(int, int, float const*, float const*, int, unsigned int, unsigned char, int)
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x7c
	mov esi, eax
	mov ebx, edx
	mov [ebp-0x5c], ecx
	mov edi, [ebp+0x8]
	movzx eax, byte [ebp+0x14]
	mov [ebp-0x5d], al
	mov eax, [ebp+0x10]
	mov [esp], eax
	lea ecx, [ebp-0x24]
	mov eax, esi
	call _Z15CalcMuzzlePointiiPfj
	test eax, eax
	jz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_10
	mov eax, cg_tracerChance
	mov eax, [eax]
	pxor xmm0, xmm0
	ucomiss xmm0, [eax+0xc]
	jae _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_20
	mov edx, cgArray
	mov eax, [edx+0x24]
	test byte [eax+0x20], 0x6
	jnz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_30
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi_90:
	xor eax, eax
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi_100:
	test eax, eax
	jnz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_20
	test dword [edx+0x461ec], 0x300
	jz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_40
	mov eax, [edx+0x466d4]
	test eax, eax
	jz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_40
	mov eax, [edx+0x466d8]
	lea edx, [eax*4]
	shl eax, 0x5
	sub eax, edx
	mov edx, eax
	shl edx, 0x4
	add eax, edx
	mov edx, cg_entitiesArray
	mov eax, [edx+eax+0x190]
	test eax, eax
	jnz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_50
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi_40:
	call _Z7ms_randv
	cvtsi2ss xmm1, eax
	mov eax, cg_tracerChance
	mov eax, [eax]
	movss xmm0, dword [_float_32768_00000000]
	mulss xmm0, [eax+0xc]
	ucomiss xmm1, xmm0
	jb _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_60
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi_20:
	movss xmm0, dword [edi]
	subss xmm0, [ebp-0x24]
	movss [ebp-0x30], xmm0
	movss xmm0, dword [edi+0x4]
	subss xmm0, [ebp-0x20]
	movss [ebp-0x2c], xmm0
	movss xmm0, dword [edi+0x8]
	subss xmm0, [ebp-0x1c]
	movss [ebp-0x28], xmm0
	lea eax, [ebp-0x3c]
	mov [esp+0x4], eax
	lea eax, [ebp-0x30]
	mov [esp], eax
	call _Z15Vec3NormalizeToPKfPf
	fstp st0
	movss xmm5, dword [ebp-0x3c]
	movss xmm3, dword [ebp-0x38]
	movss xmm4, dword [ebp-0x34]
	movaps xmm2, xmm5
	mulss xmm2, [ebp-0x30]
	movaps xmm0, xmm3
	mulss xmm0, [ebp-0x2c]
	addss xmm2, xmm0
	movaps xmm0, xmm4
	mulss xmm0, [ebp-0x28]
	addss xmm2, xmm0
	mov eax, cgArray
	movss xmm0, dword [eax+0x492e0]
	movss [ebp-0x58], xmm0
	movss xmm6, dword [ebp-0x24]
	movss xmm1, dword [eax+0x492e4]
	movss [ebp-0x54], xmm1
	movss xmm7, dword [ebp-0x20]
	movss xmm0, dword [eax+0x492e8]
	movss [ebp-0x50], xmm0
	movss xmm1, dword [ebp-0x1c]
	movss [ebp-0x4c], xmm1
	movss xmm1, dword [ebp-0x58]
	subss xmm1, xmm6
	mulss xmm1, xmm5
	movss xmm0, dword [ebp-0x54]
	subss xmm0, xmm7
	mulss xmm0, xmm3
	addss xmm1, xmm0
	movss xmm0, dword [ebp-0x50]
	subss xmm0, [ebp-0x4c]
	mulss xmm0, xmm4
	addss xmm1, xmm0
	movss xmm0, dword [_float_64_00000000]
	ucomiss xmm0, xmm1
	jbe _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_70
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi_80:
	test byte [ebp-0x5d], 0x4
	jnz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_10
	mov eax, sv_clientSideBullets
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jnz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_10
	mov dword [esp+0x14], 0x0
	mov eax, [ebp+0x18]
	mov [esp+0x10], eax
	mov [esp+0xc], edi
	mov eax, [ebp-0x5c]
	mov [esp+0x8], eax
	mov [esp+0x4], ebx
	mov [esp], esi
	call _Z26DynEntCl_DynEntImpactEventiiPKfS0_ih
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi_10:
	add esp, 0x7c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi_70:
	addss xmm0, xmm1
	ucomiss xmm0, xmm2
	ja _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_80
	movaps xmm0, xmm5
	mulss xmm0, xmm1
	addss xmm6, xmm0
	movss [ebp-0x64], xmm6
	movaps xmm0, xmm6
	movss [ebp-0x48], xmm6
	movaps xmm2, xmm3
	mulss xmm2, xmm1
	addss xmm2, xmm7
	movss [ebp-0x44], xmm2
	mulss xmm1, xmm4
	addss xmm1, [ebp-0x4c]
	movss [ebp-0x40], xmm1
	subss xmm0, [ebp-0x58]
	movss [ebp-0x30], xmm0
	subss xmm2, [ebp-0x54]
	movss [ebp-0x2c], xmm2
	subss xmm1, [ebp-0x50]
	movss [ebp-0x28], xmm1
	mulss xmm0, xmm0
	mulss xmm2, xmm2
	addss xmm0, xmm2
	mulss xmm1, xmm1
	addss xmm0, xmm1
	sqrtss xmm0, xmm0
	ucomiss xmm0, [_float_140_00000000]
	ja _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_80
	movss xmm0, dword [_float__16_00000000]
	mulss xmm5, xmm0
	addss xmm5, xmm6
	movss [ebp-0x48], xmm5
	mulss xmm3, xmm0
	addss xmm3, [ebp-0x44]
	movss [ebp-0x44], xmm3
	mulss xmm4, xmm0
	addss xmm4, [ebp-0x40]
	movss [ebp-0x40], xmm4
	mov eax, cgMedia
	mov eax, [eax+0x1034]
	mov [esp+0xc], eax
	lea eax, [ebp-0x48]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x3fe
	mov [esp], esi
	call _Z17CG_PlaySoundAliasiiPKfP16snd_alias_list_t
	jmp _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_80
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi_30:
	cmp ebx, [eax+0xe8]
	jnz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_90
	mov eax, 0x1
	jmp _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_100
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi_50:
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov eax, [eax+0x430]
	test eax, eax
	jz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_40
	mov eax, cgArray
	cmp ebx, [eax+0x466d8]
	jnz _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_40
	jmp _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_20
_Z23BulletTrajectoryEffectsiiPKfS0_ijhi_60:
	mov [esp+0x8], edi
	lea eax, [ebp-0x24]
	mov [esp+0x4], eax
	mov [esp], esi
	call _Z14CG_SpawnTraceriPKfS0_
	jmp _Z23BulletTrajectoryEffectsiiPKfS0_ijhi_20
	nop


;CG_BulletHitEvent_Internal(int, int, int, int, float const*, float const*, float const*, int, int, unsigned char, int, int)
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x7c
	mov edi, eax
	mov [ebp-0x54], edx
	mov [ebp-0x58], ecx
	mov esi, [ebp+0x14]
	movzx eax, byte [ebp+0x20]
	test byte [ebp+0x29], 0x8
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_10
	movzx eax, al
	mov [ebp-0x50], eax
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_110:
	xor ecx, ecx
	xor ebx, ebx
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_200:
	test ecx, ecx
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_20
	mov [esp+0xc], ecx
	mov edx, [ebp+0x10]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x3fe
	mov [esp], edi
	call _Z17CG_PlaySoundAliasiiPKfP16snd_alias_list_t
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_20:
	test ebx, ebx
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_30
	movss xmm1, dword [esi]
	pxor xmm0, xmm0
	ucomiss xmm1, xmm0
	jp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_40
	jnz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_40
	lea eax, [esi+0x4]
	ucomiss xmm0, [esi+0x4]
	jp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_50
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_60
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_50:
	lea edx, [esi+0x8]
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_80:
	movss [ebp-0x3c], xmm1
	lea esi, [ebp-0x3c]
	mov eax, [eax]
	mov [ebp-0x38], eax
	mov eax, [edx]
	mov [ebp-0x34], eax
	lea eax, [ebp-0x24]
	mov [esp+0x8], eax
	lea eax, [ebp-0x30]
	mov [esp+0x4], eax
	mov [esp], esi
	call _Z19CG_RandomEffectAxisPKfPfS1_
	mov eax, cg_marks_ents_player_only
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jnz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_70
	mov ecx, [ebp-0x58]
	mov edx, cgArray
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_100:
	mov [esp+0x14], ecx
	mov [esp+0x10], esi
	mov eax, [ebp+0x10]
	mov [esp+0xc], eax
	mov eax, [edx+0x46128]
	mov [esp+0x8], eax
	mov [esp+0x4], ebx
	mov [esp], edi
	call _Z35FX_PlayOrientedEffectWithMarkEntityiPK11FxEffectDefiPKfPA3_S2_j
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_30:
	mov eax, [ebp+0x24]
	mov [esp+0x10], eax
	mov edx, [ebp-0x50]
	mov [esp+0xc], edx
	mov eax, scr_const
	movzx eax, word [eax+0x90]
	mov [esp+0x8], eax
	mov ecx, [ebp+0x18]
	mov [esp+0x4], ecx
	mov ebx, [ebp+0x10]
	mov [esp], ebx
	mov ecx, [ebp+0xc]
	mov edx, [ebp-0x54]
	mov eax, edi
	call _Z23BulletTrajectoryEffectsiiPKfS0_ijhi
	add esp, 0x7c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_60:
	lea edx, [esi+0x8]
	ucomiss xmm0, [esi+0x8]
	jp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_80
	jnz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_80
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_30
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_70:
	mov edx, cgArray
	mov eax, [edx+0x24]
	test byte [eax+0x20], 0x6
	jnz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_90
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_120:
	xor eax, eax
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_130:
	mov ecx, 0x3ff
	test eax, eax
	cmovnz ecx, [ebp-0x58]
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_100
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_10:
	movzx eax, al
	mov [ebp-0x50], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov edx, eax
	mov eax, [ebp-0x50]
	shr eax, 0x2
	mov ecx, eax
	and cl, 0x1
	cmp dword [edx+0x138], 0x8
	ja _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_110
	mov eax, [edx+0x138]
	jmp dword [eax*4+_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_jumptab_0]
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_40:
	lea eax, [esi+0x4]
	lea edx, [esi+0x8]
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_80
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_90:
	mov ecx, [ebp-0x54]
	cmp ecx, [eax+0xe8]
	jnz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_120
	mov eax, 0x1
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_130
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_260:
	test cl, cl
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_140
	mov edx, [ebp+0x18]
	mov ebx, cgMedia
	mov ecx, [ebx+edx*4+0x520]
	mov eax, 0x1
	mov [ebp-0x4c], eax
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_270:
	test cl, cl
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_160
	mov eax, [ebp+0x18]
	mov edx, cgMedia
	mov ecx, [edx+eax*4+0x594]
	mov eax, 0x3
	mov [ebp-0x4c], eax
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_280:
	test cl, cl
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_170
	mov ebx, [ebp+0x18]
	mov eax, cgMedia
	mov ecx, [eax+ebx*4+0x608]
	mov eax, 0x7
	mov [ebp-0x4c], eax
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_300:
	mov eax, [edx+0x208]
	test eax, eax
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_180
	mov edx, [ebp+0x18]
	mov ecx, [eax+edx*4]
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_250:
	mov dword [ebp-0x4c], 0x8
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150:
	cmp dword [ebp+0x18], 0x7
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_190
	mov edx, cgMedia
	mov eax, [edx+0x2754]
	mov edx, [eax+0x4]
	mov eax, [ebp-0x4c]
	shl eax, 0x7
	mov ebx, [ebp-0x4c]
	lea eax, [eax+ebx*4]
	mov ebx, [ebp+0x18]
	lea eax, [eax+ebx*4]
	mov ebx, [eax+edx]
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_230:
	test ebx, ebx
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_200
	mov eax, cg_blood
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jnz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_200
	cmp dword [ebp+0x18], 0x7
	jnz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_200
	mov eax, cgMedia
	mov ebx, [eax+0x2758]
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_200
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_290:
	test cl, cl
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_210
	mov edx, [ebp+0x18]
	mov ebx, cgMedia
	mov ecx, [ebx+edx*4+0x67c]
	mov eax, 0x5
	mov [ebp-0x4c], eax
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_320:
	mov edx, [ebp+0x18]
	mov ebx, cgMedia
	mov ecx, [ebx+edx*4+0x2dc]
	mov dword [ebp-0x4c], 0xa
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_310:
	mov ebx, [ebp+0x18]
	mov eax, cgMedia
	mov ecx, [eax+ebx*4+0x268]
	mov dword [ebp-0x4c], 0x9
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_330:
	mov ecx, [edx+0x59c]
	mov dword [ebp-0x4c], 0xb
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_190:
	test byte [ebp-0x50], 0x2
	jz _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_220
	mov eax, [ebp-0x50]
	and eax, 0x1
	cmp eax, 0x1
	sbb ebx, ebx
	and ebx, 0xfffffffe
	add ebx, 0x3
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_240:
	mov eax, cgMedia
	mov eax, [eax+0x2754]
	mov [ebp-0x5c], eax
	mov eax, [ebp-0x4c]
	shl eax, 0x7
	mov edx, [ebp-0x4c]
	lea eax, [eax+edx*4]
	lea eax, [eax+ebx*4]
	mov ebx, [ebp-0x5c]
	add eax, [ebx+0x4]
	mov ebx, [eax+0x74]
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_230
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_220:
	mov ebx, [ebp-0x50]
	and ebx, 0x1
	neg ebx
	and ebx, 0x2
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_240
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_160:
	mov ebx, [ebp+0x18]
	mov eax, cgMedia
	mov ecx, [eax+ebx*4+0x3c4]
	mov eax, 0x2
	mov [ebp-0x4c], eax
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_170:
	mov edx, [ebp+0x18]
	mov ebx, cgMedia
	mov ecx, [ebx+edx*4+0x438]
	mov eax, 0x6
	mov [ebp-0x4c], eax
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_210:
	mov eax, [ebp+0x18]
	mov edx, cgMedia
	mov ecx, [edx+eax*4+0x4ac]
	mov eax, 0x4
	mov [ebp-0x4c], eax
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_140:
	mov eax, [ebp+0x18]
	mov edx, cgMedia
	mov ecx, [edx+eax*4+0x350]
	xor eax, eax
	mov [ebp-0x4c], eax
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_150
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_180:
	xor ecx, ecx
	jmp _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_250
	nop
	
	
_Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_jumptab_0:
	dd _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_110
	dd _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_260
	dd _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_270
	dd _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_280
	dd _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_290
	dd _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_300
	dd _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_310
	dd _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_320
	dd _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii_330


;CG_DrawTracer(float const*, float const*, refdef_s const*)
_Z13CG_DrawTracerPKfS0_PK8refdef_s:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x64
	mov ecx, [ebp+0x8]
	mov ebx, [ebp+0xc]
	mov eax, cg_tracerWidth
	mov eax, [eax]
	movss xmm0, dword [eax+0xc]
	movss [ebp-0x50], xmm0
	mov edx, [ebp+0x10]
	add edx, 0x18
	mov eax, cg_tracerScale
	mov eax, [eax]
	movss xmm6, dword [eax+0xc]
	mov eax, cg_tracerScaleMinDist
	mov eax, [eax]
	movss xmm7, dword [eax+0xc]
	mov eax, cg_tracerScaleDistRange
	mov eax, [eax]
	movss xmm2, dword [eax+0xc]
	movss [ebp-0x4c], xmm2
	ucomiss xmm6, [_float_1_00000000]
	jnz _Z13CG_DrawTracerPKfS0_PK8refdef_s_10
	jp _Z13CG_DrawTracerPKfS0_PK8refdef_s_10
	movaps xmm3, xmm0
	movaps xmm4, xmm0
_Z13CG_DrawTracerPKfS0_PK8refdef_s_100:
	mov eax, [ecx]
	mov [ebp-0x3c], eax
	mov eax, [ecx+0x4]
	mov [ebp-0x38], eax
	mov eax, [ecx+0x8]
	mov [ebp-0x34], eax
	movss xmm0, dword [ebx]
	movss [ebp-0x30], xmm0
	movss xmm1, dword [ebx+0x4]
	movss [ebp-0x2c], xmm1
	movss xmm2, dword [ebx+0x8]
	movss [ebp-0x28], xmm2
	mov dword [ebp-0x24], 0xffffffff
	mov dword [ebp-0x20], 0xffffffff
	movss [ebp-0x1c], xmm4
	movss [ebp-0x18], xmm3
	mov eax, cgMedia
	mov eax, [eax+0x14]
	mov [ebp-0x14], eax
	subss xmm0, [ecx]
	subss xmm1, [ecx+0x4]
	subss xmm2, [ecx+0x8]
	mulss xmm0, xmm0
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	sqrtss xmm0, xmm0
	mulss xmm0, [_float_8_00000000]
	mov eax, cg_tracerScrewDist
	mov eax, [eax]
	divss xmm0, dword [eax+0xc]
	cvttss2si eax, xmm0
	mov [ebp-0x10], eax
	mov eax, cg_tracerScrewRadius
	mov eax, [eax]
	mov eax, [eax+0xc]
	mov [ebp-0xc], eax
	lea eax, [ebp-0x3c]
	mov [esp], eax
	call _Z11FX_Beam_AddP6FxBeam
	add esp, 0x64
	pop ebx
	pop ebp
	ret
_Z13CG_DrawTracerPKfS0_PK8refdef_s_10:
	movss xmm3, dword [edx]
	movaps xmm0, xmm3
	subss xmm0, [ecx]
	movss xmm4, dword [edx+0x4]
	movaps xmm1, xmm4
	subss xmm1, [ecx+0x4]
	movss xmm5, dword [edx+0x8]
	movaps xmm2, xmm5
	subss xmm2, [ecx+0x8]
	mulss xmm0, xmm0
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	sqrtss xmm0, xmm0
	subss xmm3, [ebx]
	subss xmm4, [ebx+0x4]
	subss xmm5, [ebx+0x8]
	mulss xmm3, xmm3
	mulss xmm4, xmm4
	addss xmm3, xmm4
	mulss xmm5, xmm5
	addss xmm3, xmm5
	sqrtss xmm3, xmm3
	pxor xmm1, xmm1
	ucomiss xmm7, xmm1
	jp _Z13CG_DrawTracerPKfS0_PK8refdef_s_20
	jz _Z13CG_DrawTracerPKfS0_PK8refdef_s_30
_Z13CG_DrawTracerPKfS0_PK8refdef_s_20:
	subss xmm0, xmm7
	subss xmm3, xmm7
_Z13CG_DrawTracerPKfS0_PK8refdef_s_30:
	ucomiss xmm0, xmm1
	jbe _Z13CG_DrawTracerPKfS0_PK8refdef_s_40
	movss xmm2, dword [ebp-0x4c]
	ucomiss xmm2, xmm1
	jbe _Z13CG_DrawTracerPKfS0_PK8refdef_s_50
	divss xmm0, xmm2
	mulss xmm0, xmm6
	movss xmm2, dword [_float_1_00000000]
	ucomiss xmm2, xmm0
	ja _Z13CG_DrawTracerPKfS0_PK8refdef_s_60
	ucomiss xmm0, xmm6
	ja _Z13CG_DrawTracerPKfS0_PK8refdef_s_50
_Z13CG_DrawTracerPKfS0_PK8refdef_s_110:
	movss xmm4, dword [ebp-0x50]
	mulss xmm4, xmm0
_Z13CG_DrawTracerPKfS0_PK8refdef_s_120:
	ucomiss xmm3, xmm1
	jbe _Z13CG_DrawTracerPKfS0_PK8refdef_s_70
	movss xmm0, dword [ebp-0x4c]
	ucomiss xmm0, xmm1
	jbe _Z13CG_DrawTracerPKfS0_PK8refdef_s_80
	divss xmm3, xmm0
	mulss xmm3, xmm6
	movss xmm2, dword [_float_1_00000000]
	ucomiss xmm2, xmm3
	ja _Z13CG_DrawTracerPKfS0_PK8refdef_s_90
	minss xmm6, xmm3
_Z13CG_DrawTracerPKfS0_PK8refdef_s_80:
	movss xmm3, dword [ebp-0x50]
	mulss xmm3, xmm6
	jmp _Z13CG_DrawTracerPKfS0_PK8refdef_s_100
_Z13CG_DrawTracerPKfS0_PK8refdef_s_50:
	movaps xmm0, xmm6
	jmp _Z13CG_DrawTracerPKfS0_PK8refdef_s_110
_Z13CG_DrawTracerPKfS0_PK8refdef_s_40:
	movss xmm4, dword [ebp-0x50]
	jmp _Z13CG_DrawTracerPKfS0_PK8refdef_s_120
_Z13CG_DrawTracerPKfS0_PK8refdef_s_90:
	movaps xmm6, xmm2
	jmp _Z13CG_DrawTracerPKfS0_PK8refdef_s_80
_Z13CG_DrawTracerPKfS0_PK8refdef_s_60:
	movaps xmm0, xmm2
	jmp _Z13CG_DrawTracerPKfS0_PK8refdef_s_110
_Z13CG_DrawTracerPKfS0_PK8refdef_s_70:
	movss xmm3, dword [ebp-0x50]
	jmp _Z13CG_DrawTracerPKfS0_PK8refdef_s_100


;CG_FireWeapon(int, centity_s*, int, unsigned short, unsigned int, playerState_s const*)
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2dc
	movzx eax, word [ebp+0x14]
	mov [ebp-0x294], ax
	mov edx, [ebp+0xc]
	add edx, 0xcc
	mov [ebp-0x28c], edx
	mov ecx, [ebp+0x18]
	test ecx, ecx
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_10
	mov ecx, [edx+0xc4]
	mov [ebp+0x18], ecx
	test ecx, ecx
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_20
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_10:
	call _Z16BG_GetNumWeaponsv
	cmp eax, [ebp+0x18]
	jbe _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_30
	mov eax, [ebp+0x18]
	shl eax, 0x6
	mov edx, [ebp+0x18]
	lea eax, [eax+edx*4]
	mov ecx, cg_weaponsArray
	add eax, ecx
	mov [ebp-0x290], eax
	mov [esp], edx
	call _Z15BG_GetWeaponDefj
	mov [ebp-0x288], eax
	mov eax, [ebp+0xc]
	mov byte [eax+0x1c1], 0x1
	mov ebx, [eax+0xcc]
	mov esi, cgArray
	mov edx, [esi+0x24]
	mov ecx, [edx+0x20]
	test cl, 0x6
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_40
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_280:
	xor eax, eax
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_290:
	mov [ebp-0x291], al
	movzx eax, al
	mov [ebp-0x284], eax
	mov eax, sv_clientSideBullets
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	movzx edi, word [ebp-0x294]
	and cl, 0x6
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_60
	cmp ebx, [edx+0xe8]
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_70
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_60:
	xor eax, eax
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_510:
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_80
	mov ecx, [ebp+0xc]
	mov eax, [ecx+0xd0]
	cmp eax, 0x1
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_90
	cmp eax, 0xb
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_100
	cmp eax, 0xe
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_110
	cmp eax, 0xc
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_110
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_unknown_etype_i_
	mov dword [esp], 0xe
	call _Z14Com_PrintErroriPKcz
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50:
	cmp byte [ebp-0x291], 0x0
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_120
	mov ecx, [ebp-0x28c]
	cmp dword [ecx+0x4], 0xb
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_130
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_310:
	cmp dword [ecx+0x4], 0xc
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_140
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_480:
	mov ecx, [ebp-0x288]
	mov edx, [ecx+0x170]
	mov eax, [ebp-0x284]
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_150
	cmp dword [ebp+0x10], 0x1b
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_160
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_240:
	test edx, edx
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_170
	mov ebx, edx
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_490:
	mov esi, [ebp-0x284]
	test esi, esi
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_180
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_260:
	mov eax, [ebp-0x290]
	mov edx, [eax]
	test edx, edx
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_190
	lea esi, [ebp-0x34]
	mov [esp+0xc], esi
	movzx eax, word [ebp-0x294]
	mov [esp+0x8], eax
	mov [esp+0x4], edx
	mov eax, cgArray
	add eax, 0xfd234
	mov [esp], eax
	call _Z21CG_DObjGetWorldTagPosPK7cpose_tP6DObj_sjPf
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_200
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_360:
	mov [esp+0xc], ebx
	mov [esp+0x8], esi
	mov edx, [ebp-0x28c]
	mov eax, [edx]
	mov [esp+0x4], eax
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z17CG_PlaySoundAliasiiPKfP16snd_alias_list_t
	mov edx, eax
	mov eax, [ebp+0xc]
	cmp dword [eax+0xd0], 0x1
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_170
	mov ecx, [ebp-0x288]
	mov ebx, [ecx+0x550]
	test ebx, ebx
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_210
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_170:
	mov ecx, [ebp+0x18]
	mov [esp], ecx
	call _Z15BG_GetWeaponDefj
	mov ecx, [eax+0x4e8]
	test ecx, ecx
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_220
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_380:
	mov edx, [ebp-0x284]
	test edx, edx
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_230
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_20:
	add esp, 0x2dc
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_30:
	mov dword [esp+0x4], _cstring_cg_fireweapon_we
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	add esp, 0x2dc
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_150:
	mov eax, [ecx+0x174]
	test eax, eax
	cmovnz edx, eax
	cmp dword [ebp+0x10], 0x1b
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_240
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_160:
	mov edi, [ebp-0x284]
	test edi, edi
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_250
	mov eax, [ebp-0x288]
	mov ebx, [eax+0x18c]
	test ebx, ebx
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_260
	mov ecx, eax
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_270
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_40:
	cmp ebx, [edx+0xe8]
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_280
	mov eax, 0x1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_290
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_120:
	mov edx, [ebp-0x290]
	mov eax, [edx]
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_300
	mov [esp], eax
	call _Z13DObjClearSkelPK6DObj_s
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_300:
	mov ebx, cgArray
	lea eax, [ebx+0xfd25c]
	mov [esp+0x4], eax
	lea eax, [ebx+0x50460]
	mov [esp], eax
	call _Z12AxisToAnglesPA3_KfPf
	mov eax, [ebx+0x50484]
	mov [ebx+0xfd250], eax
	mov eax, [ebx+0x50488]
	mov [ebx+0xfd254], eax
	mov eax, [ebx+0x5048c]
	mov [ebx+0xfd258], eax
	lea eax, [ebx+0x50410]
	mov [esp+0x8], eax
	lea eax, [ebx+0x50454]
	mov [esp+0x4], eax
	add ebx, 0x4613c
	mov [esp], ebx
	call _Z19BG_WeaponFireRecoilPK13playerState_sPfS2_
	mov ecx, [ebp-0x28c]
	cmp dword [ecx+0x4], 0xb
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_310
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_130:
	mov eax, [ebp+0x1c]
	test dword [eax+0xb0], 0x300
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_320
	mov eax, [eax+0x59c]
	cmp eax, [ecx]
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_330
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_320:
	xor edi, edi
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_520:
	movzx esi, word [ebp-0x294]
	mov ecx, [ebp-0x28c]
	mov ebx, [ecx]
	mov eax, [ebp+0x18]
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	test edi, edi
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_340
	mov eax, [eax+0x14c]
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_500:
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_350
	mov [esp+0xc], esi
	mov [esp+0x8], ebx
	mov [esp+0x4], eax
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z19CG_PlayBoltedEffectiPK11FxEffectDefij
	mov ecx, [ebp-0x28c]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_310
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_230:
	mov ebx, cgArray
	mov eax, [ebx+0x46224]
	mov [esp], eax
	call _Z19BG_WeaponIsClipOnlyi
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_20
	mov eax, [ebx+0x46224]
	mov [esp], eax
	call _Z16BG_ClipForWeaponi
	mov eax, [ebx+eax*4+0x46498]
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_20
	mov eax, [ebx+0x46224]
	mov [esp], eax
	call _Z16BG_AmmoForWeaponi
	mov eax, [ebx+eax*4+0x46298]
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_20
	mov eax, [ebx+0x46224]
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov eax, [eax+0x5a8]
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_20
	mov dword [esp+0x8], 0x0
	mov eax, [ebx+0x46224]
	mov [esp+0x4], eax
	lea eax, [ebx+0x4613c]
	mov [esp], eax
	call _Z19BG_TakePlayerWeaponP13playerState_sji
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z18CG_OutOfAmmoChangei
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_20
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_180:
	mov edx, [ebp+0x8]
	mov [esp+0x4], edx
	mov ecx, [ebp-0x28c]
	mov eax, [ecx]
	mov [esp], eax
	call _Z17Com_GetClientDObjii
	mov edx, eax
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_190
	lea esi, [ebp-0x34]
	mov [esp+0xc], esi
	movzx eax, word [ebp-0x294]
	mov [esp+0x8], eax
	mov [esp+0x4], edx
	mov eax, [ebp+0xc]
	mov [esp], eax
	call _Z21CG_DObjGetWorldTagPosPK7cpose_tP6DObj_sjPf
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_360
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_200
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_190:
	lea esi, [ebp-0x34]
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_200:
	mov [esp+0x8], esi
	mov eax, cgArray
	mov eax, [eax+0x46128]
	mov [esp+0x4], eax
	mov eax, [ebp-0x28c]
	add eax, 0xc
	mov [esp], eax
	call _Z21BG_EvaluateTrajectoryPK12trajectory_tiPf
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_360
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_110:
	mov edx, [ebp-0x288]
	mov eax, [edx+0x71c]
	mov [ebp-0x28], eax
	mov eax, [edx+0x71c]
	mov [ebp-0x24], eax
	mov byte [ebp-0x19], 0x0
	lea eax, [ebp-0x19]
	mov [esp+0xc], eax
	movzx eax, di
	mov [esp+0x8], eax
	mov [esp+0x4], ebx
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z15CG_GetBoneIndexiijPh
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	lea eax, [ebp-0x88]
	mov [esp+0xc], eax
	movzx eax, byte [ebp-0x19]
	mov [esp+0x8], eax
	mov [esp+0x4], ebx
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z21FX_GetBoneOrientationiiiP13orientation_t
	test al, al
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	mov ebx, [ebp-0x88]
	mov [ebp-0x40], ebx
	mov ecx, [ebp-0x84]
	mov [ebp-0x3c], ecx
	mov edx, [ebp-0x80]
	mov [ebp-0x38], edx
	mov [ebp-0x4c], ebx
	mov [ebp-0x48], ecx
	mov [ebp-0x44], edx
	pxor xmm0, xmm0
	movss [ebp-0x280], xmm0
	mov byte [ebp-0x26d], 0x0
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_400:
	mov eax, [ebp-0x288]
	movss xmm0, dword [eax+0x71c]
	movss xmm1, dword [ebp-0x24]
	subss xmm1, xmm0
	mulss xmm1, [ebp-0x280]
	addss xmm1, xmm0
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_370
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_220:
	mov eax, [ebp+0x10]
	mov [esp+0x8], eax
	mov edx, [ebp-0x28c]
	mov [esp+0x4], edx
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z19CG_EjectWeaponBrassiPK13entityState_si
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_380
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_80:
	mov edx, [ebp+0x1c]
	mov [esp], edx
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	lea esi, [eax+0x400]
	mov ebx, cgArray
	movss xmm0, dword [ebx+0xfd764]
	divss xmm0, dword [_float_255_00000000]
	movss [ebp-0x280], xmm0
	movss xmm0, dword [_float_1_00000000]
	mov eax, [ebp+0x1c]
	ucomiss xmm0, [eax+0xf4]
	setz al
	setnp dl
	and al, dl
	movzx eax, al
	mov [ebp-0x27c], eax
	lea eax, [ebp-0x24]
	mov [esp+0xc], eax
	lea eax, [ebp-0x28]
	mov [esp+0x8], eax
	mov edx, [ebp-0x288]
	mov [esp+0x4], edx
	mov ecx, [ebp+0x1c]
	mov [esp], ecx
	call _Z21BG_GetSpreadForWeaponPK13playerState_sPK9WeaponDefPfS5_
	lea eax, [ebp-0x40]
	mov [esp+0x8], eax
	mov eax, [ebp+0x1c]
	mov [esp+0x4], eax
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z22CG_GetPlayerViewOriginiPK13playerState_sPf
	mov eax, [ebx+0x50434]
	mov [ebp-0x58], eax
	mov eax, [ebx+0x50438]
	mov [ebp-0x54], eax
	mov dword [ebp-0x50], 0x0
	mov byte [ebp-0x19], 0x0
	lea eax, [ebp-0x19]
	mov [esp+0xc], eax
	movzx eax, di
	mov [esp+0x8], eax
	mov [esp+0x4], esi
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z15CG_GetBoneIndexiijPh
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	mov eax, [ebx+0x46138]
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_390
	lea eax, [ebp-0xb8]
	mov [esp+0xc], eax
	movzx eax, byte [ebp-0x19]
	mov [esp+0x8], eax
	mov [esp+0x4], esi
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z21FX_GetBoneOrientationiiiP13orientation_t
	test al, al
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	mov eax, [ebp-0xb8]
	mov [ebp-0x4c], eax
	mov eax, [ebp-0xb4]
	mov [ebp-0x48], eax
	mov eax, [ebp-0xb0]
	mov [ebp-0x44], eax
	lea eax, [ebp-0x64]
	mov [esp+0xc], eax
	lea eax, [ebp-0x70]
	mov [esp+0x8], eax
	lea eax, [ebp-0x7c]
	mov [esp+0x4], eax
	lea eax, [ebp-0x58]
	mov [esp], eax
	call _Z12AngleVectorsPKfPfS1_S1_
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_940:
	call _Z7ms_randv
	cvtsi2ss xmm1, eax
	mov eax, cg_firstPersonTracerChance
	mov eax, [eax]
	movss xmm0, dword [_float_32768_00000000]
	mulss xmm0, [eax+0xc]
	ucomiss xmm0, xmm1
	seta byte [ebp-0x26d]
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_870:
	mov eax, [ebp-0x27c]
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_400
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_920:
	movss xmm0, dword [ebp-0x28]
	movss xmm1, dword [ebp-0x24]
	subss xmm1, xmm0
	mulss xmm1, [ebp-0x280]
	addss xmm1, xmm0
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_370:
	cld
	mov ecx, 0x10
	xor eax, eax
	lea edi, [ebp-0x138]
	rep stosd
	mov dword [ebp-0x138], 0x3fe
	mov edx, [ebp+0xc]
	mov eax, [edx+0xcc]
	mov [ebp-0x134], eax
	mov dword [ebp-0x130], 0x3f800000
	mov ecx, [ebp-0x288]
	mov eax, [ecx+0x4e0]
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_410
	mov eax, 0x1
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_930:
	mov [ebp-0x12c], eax
	mov edx, [ebp-0x288]
	cmp dword [edx+0x130], 0x3
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_420
	mov dword [ebp-0x278], 0x1
	movss xmm0, dword [_float_8192_00000000]
	movss [ebp-0x260], xmm0
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1020:
	mov ebx, [ebp-0x40]
	mov [ebp-0x128], ebx
	mov ecx, [ebp-0x3c]
	mov [ebp-0x124], ecx
	mov edx, [ebp-0x38]
	mov [ebp-0x120], edx
	mov eax, [ebp-0x278]
	test eax, eax
	jle _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	cvtss2sd xmm1, xmm1
	movsd xmm0, qword [_double_0_01745329]
	mulsd xmm0, xmm1
	movsd [ebp-0x220], xmm0
	mov dword [ebp-0x274], 0x0
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_630:
	mov eax, [ebp-0x7c]
	mov [ebp-0x104], eax
	mov eax, [ebp-0x78]
	mov [ebp-0x100], eax
	mov eax, [ebp-0x74]
	mov [ebp-0xfc], eax
	mov [ebp-0x11c], ebx
	mov [ebp-0x118], ecx
	mov [ebp-0x114], edx
	mov ebx, [ebp-0x274]
	mov eax, [ebp+0x1c]
	add ebx, [eax]
	movsd [esp], xmm0
	call tan
	fstp qword [ebp-0x2a0]
	cvtsd2ss xmm1, [ebp-0x2a0]
	movss xmm0, dword [ebp-0x260]
	mulss xmm0, xmm1
	movss [ebp-0x268], xmm0
	neg ebx
	mov edi, 0x27
	lea esi, [ebp-0x160]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_430
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_460:
	cmp edi, 0x1f
	jg _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_440
	mov [esi], ebx
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_440:
	sub edi, 0x1
	sub esi, 0x4
	cmp edi, 0xffffffff
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_450
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_430:
	mov eax, 0x834e0b5f
	imul ebx
	mov ecx, edx
	add ecx, ebx
	sar ecx, 0x10
	mov eax, ebx
	sar eax, 0x1f
	sub ecx, eax
	lea eax, [ecx*4]
	mov edx, ecx
	shl edx, 0x9
	sub edx, eax
	sub edx, ecx
	lea eax, [edx*8]
	sub eax, edx
	lea eax, [ecx+eax*4]
	lea eax, [eax+eax*8]
	mov edx, ebx
	sub edx, eax
	lea ebx, [edx+edx*4]
	mov eax, ebx
	shl eax, 0x4
	sub eax, ebx
	shl eax, 0x5
	add eax, edx
	lea ebx, [eax*8]
	sub ebx, eax
	lea eax, [ecx+ecx*2]
	mov edx, eax
	shl edx, 0x4
	sub edx, eax
	mov eax, edx
	shl eax, 0x6
	sub eax, edx
	add eax, ecx
	sub ebx, eax
	jns _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_460
	lea ebx, [ebx+0x7fffffff]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_460
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_140:
	movzx esi, word [ebp-0x294]
	mov ebx, [ecx]
	mov eax, [ebp+0x18]
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov eax, [eax+0x150]
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_470
	mov [esp+0xc], esi
	mov [esp+0x8], ebx
	mov [esp+0x4], eax
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z19CG_PlayBoltedEffectiPK11FxEffectDefij
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_470:
	mov ecx, [ebp+0x10]
	mov [esp+0x8], ecx
	mov eax, [ebp-0x28c]
	mov [esp+0x4], eax
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z19CG_EjectWeaponBrassiPK13entityState_si
	mov eax, heli_barrelRotation
	mov eax, [eax]
	mov eax, [eax+0xc]
	mov [esp+0x8], eax
	mov ecx, [ebp-0x28c]
	mov eax, [ecx]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z23Veh_IncTurretBarrelRolliif
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_480
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_250:
	mov ecx, [ebp-0x288]
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_270:
	mov ebx, [ecx+0x188]
	test ebx, ebx
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_490
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_240
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_340:
	mov eax, [eax+0x150]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_500
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_210:
	cmp dword [ecx+0x12c], 0x1
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_170
	lea eax, [ebp-0x20]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z18SND_GetKnownLengthiPi
	mov eax, [ebp-0x20]
	mov [esp+0xc], eax
	mov [esp+0x8], esi
	mov eax, [ebp+0xc]
	mov [esp+0x4], eax
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z27CG_CompassAddWeaponPingInfoiPK9centity_sPKfi
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_170
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_70:
	mov eax, 0x1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_510
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_330:
	mov dword [ebp-0x284], 0x1
	mov edi, 0x1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_520
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_450:
	mov eax, 0x834e0b5f
	imul ebx
	lea esi, [edx+ebx]
	sar esi, 0x10
	mov eax, ebx
	sar eax, 0x1f
	sub esi, eax
	lea eax, [esi*4]
	mov edx, esi
	shl edx, 0x9
	sub edx, eax
	sub edx, esi
	lea eax, [edx*8]
	sub eax, edx
	lea eax, [esi+eax*4]
	lea eax, [eax+eax*8]
	mov edx, ebx
	sub edx, eax
	lea ecx, [edx+edx*4]
	mov eax, ecx
	shl eax, 0x4
	sub eax, ecx
	shl eax, 0x5
	add eax, edx
	lea ecx, [eax*8]
	sub ecx, eax
	lea eax, [esi+esi*2]
	mov edx, eax
	shl edx, 0x4
	sub edx, eax
	mov eax, edx
	shl eax, 0x6
	sub eax, edx
	add eax, esi
	sub ecx, eax
	js _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_530
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_890:
	mov eax, [ebp-0x1fc]
	lea edx, [eax+0x3ffffff]
	cmp eax, 0xffffffff
	cmovle eax, edx
	sar eax, 0x1a
	cvtsi2sd xmm1, dword [ebp+eax*4-0x1fc]
	movsd xmm2, qword [_double_0_00000000]
	mulsd xmm1, xmm2
	movsd xmm3, qword [_double_0_99999988]
	movapd xmm0, xmm3
	subsd xmm0, xmm1
	pxor xmm4, xmm4
	ucomisd xmm0, xmm4
	jb _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_540
	cvtsd2ss xmm0, xmm1
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_880:
	movaps xmm5, xmm0
	mulss xmm5, [_float_360_00000000]
	mov ebx, ecx
	neg ebx
	mov edi, 0x27
	lea esi, [ebp-0x160]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_550
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_580:
	cmp edi, 0x1f
	jg _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_560
	mov [esi], ebx
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_560:
	sub edi, 0x1
	sub esi, 0x4
	cmp edi, 0xffffffff
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_570
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_550:
	mov eax, 0x834e0b5f
	imul ebx
	mov ecx, edx
	add ecx, ebx
	sar ecx, 0x10
	mov eax, ebx
	sar eax, 0x1f
	sub ecx, eax
	lea eax, [ecx*4]
	mov edx, ecx
	shl edx, 0x9
	sub edx, eax
	sub edx, ecx
	lea eax, [edx*8]
	sub eax, edx
	lea eax, [ecx+eax*4]
	lea eax, [eax+eax*8]
	mov edx, ebx
	sub edx, eax
	lea ebx, [edx+edx*4]
	mov eax, ebx
	shl eax, 0x4
	sub eax, ebx
	shl eax, 0x5
	add eax, edx
	lea ebx, [eax*8]
	sub ebx, eax
	lea eax, [ecx+ecx*2]
	mov edx, eax
	shl edx, 0x4
	sub edx, eax
	mov eax, edx
	shl eax, 0x6
	sub eax, edx
	add eax, ecx
	sub ebx, eax
	jns _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_580
	lea ebx, [ebx+0x7fffffff]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_580
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_570:
	mov eax, [ebp-0x1fc]
	lea edx, [eax+0x3ffffff]
	cmp eax, 0xffffffff
	cmovle eax, edx
	sar eax, 0x1a
	cvtsi2sd xmm1, dword [ebp+eax*4-0x1fc]
	mulsd xmm1, xmm2
	movapd xmm0, xmm3
	subsd xmm0, xmm1
	ucomisd xmm0, xmm4
	jb _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_590
	cvtsd2ss xmm1, xmm1
	movss [ebp-0x214], xmm1
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_910:
	cvtss2sd xmm0, xmm5
	mulsd xmm0, [_double_0_01745329]
	cvtsd2ss xmm0, xmm0
	movss [ebp-0x264], xmm0
	movss [esp], xmm0
	call cosf
	fstp dword [ebp-0x26c]
	movss xmm1, dword [ebp-0x26c]
	mulss xmm1, [ebp-0x214]
	movss [ebp-0x26c], xmm1
	movss xmm0, dword [ebp-0x264]
	movss [esp], xmm0
	call sinf
	fstp dword [ebp-0x2ac]
	movss xmm2, dword [ebp-0x2ac]
	mulss xmm2, [ebp-0x214]
	movss xmm1, dword [ebp-0x268]
	mulss xmm1, [ebp-0x26c]
	mulss xmm2, [ebp-0x268]
	movss xmm0, dword [ebp-0x260]
	mulss xmm0, [ebp-0x7c]
	addss xmm0, [ebp-0x11c]
	movss [ebp-0x110], xmm0
	movss xmm0, dword [ebp-0x260]
	mulss xmm0, [ebp-0x78]
	addss xmm0, [ebp-0x118]
	movss [ebp-0x10c], xmm0
	movss xmm0, dword [ebp-0x260]
	mulss xmm0, [ebp-0x74]
	addss xmm0, [ebp-0x114]
	movss [ebp-0x108], xmm0
	movaps xmm0, xmm1
	mulss xmm0, [ebp-0x70]
	addss xmm0, [ebp-0x110]
	movss [ebp-0x110], xmm0
	movaps xmm0, xmm1
	mulss xmm0, [ebp-0x6c]
	addss xmm0, [ebp-0x10c]
	movss [ebp-0x10c], xmm0
	mulss xmm1, [ebp-0x68]
	addss xmm1, [ebp-0x108]
	movss [ebp-0x108], xmm1
	movaps xmm0, xmm2
	mulss xmm0, [ebp-0x64]
	addss xmm0, [ebp-0x110]
	movss [ebp-0x110], xmm0
	movaps xmm1, xmm2
	mulss xmm1, [ebp-0x60]
	addss xmm1, [ebp-0x10c]
	movss [ebp-0x10c], xmm1
	mulss xmm2, [ebp-0x5c]
	addss xmm2, [ebp-0x108]
	movss [ebp-0x108], xmm2
	movaps xmm3, xmm0
	subss xmm3, [ebp-0x11c]
	movss [ebp-0x104], xmm3
	subss xmm1, [ebp-0x118]
	movss [ebp-0x100], xmm1
	subss xmm2, [ebp-0x114]
	movss [ebp-0xfc], xmm2
	movaps xmm0, xmm3
	mulss xmm0, xmm3
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	sqrtss xmm1, xmm0
	movaps xmm0, xmm1
	xorps xmm0, [_data16_80000000]
	ucomiss xmm0, [_float_0_00000000]
	jb _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_600
	movss xmm1, dword [_float_1_00000000]
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_900:
	mulss xmm3, xmm1
	movss [ebp-0x104], xmm3
	movaps xmm0, xmm1
	mulss xmm0, [ebp-0x100]
	movss [ebp-0x100], xmm0
	mulss xmm1, [ebp-0xfc]
	movss [ebp-0xfc], xmm1
	mov dword [ebp-0x130], 0x3f800000
	movzx ebx, byte [ebp-0x26d]
	mov eax, [ebp-0x288]
	mov [esp], eax
	call _Z17BG_GetWeaponIndexPK9WeaponDef
	mov [ebp-0x230], eax
	mov edx, [ebp-0x288]
	mov edi, [edx+0x12c]
	test edi, edi
	mov eax, 0x0
	cmovnz ebx, eax
	mov dword [esp+0x8], 0x0
	lea ecx, [ebp-0x17c]
	mov [esp+0x4], ecx
	mov eax, [ebp+0xc]
	mov [esp], eax
	mov ecx, edx
	lea edx, [ebp-0x138]
	mov eax, [ebp+0x8]
	call _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi
	test al, al
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_610
	test bl, bl
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_620
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660:
	add dword [ebp-0x274], 0x1
	mov ecx, [ebp-0x274]
	cmp [ebp-0x278], ecx
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	mov ebx, [ebp-0x40]
	mov ecx, [ebp-0x3c]
	mov edx, [ebp-0x38]
	movsd xmm0, qword [ebp-0x220]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_630
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_350:
	mov ecx, [ebp-0x28c]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_310
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_610:
	lea ecx, [ebp-0x17c]
	mov [esp], ecx
	call _Z20Trace_GetEntityHitIdPK7trace_t
	mov esi, eax
	test bl, bl
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_640
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1090:
	test edi, edi
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_650
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1070:
	mov edx, [ebp-0x288]
	mov eax, [edx+0x134]
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
	cmp byte [ebp-0x153], 0x0
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
	mov dword [ebp-0x210], 0x5
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_820:
	mov eax, [ebp-0x13c]
	mov [esp+0x4], eax
	mov ecx, [ebp-0x288]
	mov [esp], ecx
	call _Z29BG_GetSurfacePenetrationDepthPK9WeaponDefi
	fstp dword [ebp-0x254]
	mov eax, [ebp+0xc]
	cmp dword [eax+0xd0], 0x1
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_670
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1140:
	movss xmm1, dword [ebp-0x254]
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1150:
	ucomiss xmm1, [_float_0_00000000]
	jp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_680
	jbe _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_680:
	movss xmm0, dword [ebp-0x14c]
	movss [ebp-0x224], xmm0
	movss xmm1, dword [ebp-0x148]
	movss [ebp-0x228], xmm1
	movss xmm0, dword [ebp-0x144]
	movss [ebp-0x22c], xmm0
	mov dword [esp+0x8], 0x3e0a3d71
	lea eax, [ebp-0x17c]
	mov [esp+0x4], eax
	lea edx, [ebp-0x138]
	mov [esp], edx
	call _Z15BG_AdvanceTraceP16BulletFireParamsP18BulletTraceResultsf
	test al, al
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
	mov eax, [ebp-0x13c]
	mov [esp+0x8], eax
	lea ecx, [ebp-0x17c]
	mov [esp+0x4], ecx
	mov eax, [ebp+0xc]
	mov [esp], eax
	mov ecx, [ebp-0x288]
	lea edx, [ebp-0x138]
	mov eax, [ebp+0x8]
	call _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi
	mov [ebp-0x209], al
	mov dword [esp+0x8], 0x40
	lea edx, [ebp-0x138]
	mov [esp+0x4], edx
	lea ecx, [ebp-0xf8]
	mov [esp], ecx
	call Com_Memcpy
	movss xmm0, dword [ebp-0x104]
	xorps xmm0, [_data16_80000000]
	movss [ebp-0xc4], xmm0
	movss xmm1, dword [ebp-0x100]
	xorps xmm1, [_data16_80000000]
	movss [ebp-0xc0], xmm1
	movss xmm2, dword [ebp-0xfc]
	xorps xmm2, [_data16_80000000]
	movss [ebp-0xbc], xmm2
	mov eax, [ebp-0x110]
	mov [ebp-0xdc], eax
	mov eax, [ebp-0x10c]
	mov [ebp-0xd8], eax
	mov eax, [ebp-0x108]
	mov [ebp-0xd4], eax
	mulss xmm0, [_float_0_01000000]
	addss xmm0, [ebp-0x224]
	movss [ebp-0xd0], xmm0
	mulss xmm1, [_float_0_01000000]
	addss xmm1, [ebp-0x228]
	movss [ebp-0xcc], xmm1
	mulss xmm2, [_float_0_01000000]
	addss xmm2, [ebp-0x22c]
	movss [ebp-0xc8], xmm2
	mov dword [esp+0x8], 0x44
	lea eax, [ebp-0x17c]
	mov [esp+0x4], eax
	lea edx, [ebp-0x1fc]
	mov [esp], edx
	call Com_Memcpy
	movss xmm0, dword [ebp-0x1f8]
	xorps xmm0, [_data16_80000000]
	movss [ebp-0x1f8], xmm0
	movss xmm0, dword [ebp-0x1f4]
	xorps xmm0, [_data16_80000000]
	movss [ebp-0x1f4], xmm0
	movss xmm0, dword [ebp-0x1f0]
	xorps xmm0, [_data16_80000000]
	movss [ebp-0x1f0], xmm0
	cmp byte [ebp-0x209], 0x0
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_690
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1130:
	mov eax, [ebp-0x1bc]
	mov [esp+0x8], eax
	lea edx, [ebp-0x1fc]
	mov [esp+0x4], edx
	mov ecx, [ebp+0xc]
	mov [esp], ecx
	mov ecx, [ebp-0x288]
	lea edx, [ebp-0xf8]
	mov eax, [ebp+0x8]
	call _Z11BulletTraceiPK16BulletFireParamsPK9WeaponDefPK9centity_sP18BulletTraceResultsi
	mov ebx, eax
	test al, al
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_700
	cmp byte [ebp-0x1d4], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_700
	mov byte [ebp-0x259], 0x1
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_960:
	lea edx, [ebp-0x1fc]
	mov [esp], edx
	call _Z20Trace_GetEntityHitIdPK7trace_t
	mov esi, eax
	cmp byte [ebp-0x259], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_710
	movss xmm0, dword [ebp-0xd0]
	subss xmm0, [ebp-0xdc]
	movss xmm1, dword [ebp-0xcc]
	subss xmm1, [ebp-0xd8]
	movss xmm2, dword [ebp-0xc8]
	subss xmm2, [ebp-0xd4]
	mulss xmm0, xmm0
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	sqrtss xmm0, xmm0
	movss [ebp-0x258], xmm0
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1120:
	movss xmm0, dword [_float_1_00000000]
	maxss xmm0, [ebp-0x258]
	movss [ebp-0x258], xmm0
	pxor xmm2, xmm2
	test bl, bl
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_720
	mov eax, [ebp+0xc]
	cmp dword [eax+0xd0], 0x1
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_730
	mov eax, [eax+0x158]
	lea edx, [eax+eax*8]
	mov ecx, edx
	shl ecx, 0x4
	add edx, ecx
	lea edx, [eax+edx*2]
	shl edx, 0x2
	add edx, cgArray
	test byte [edx+0xe9f60], 0x20
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_740
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_730:
	mov eax, [ebp-0x1bc]
	mov [esp+0x4], eax
	mov eax, [ebp-0x288]
	mov [esp], eax
	call _Z29BG_GetSurfacePenetrationDepthPK9WeaponDefi
	fstp dword [ebp-0x2ac]
	movss xmm1, dword [ebp-0x2ac]
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1230:
	movaps xmm0, xmm1
	subss xmm0, [ebp-0x254]
	pxor xmm2, xmm2
	ucomiss xmm0, xmm2
	jb _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_750
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_720:
	movss xmm0, dword [ebp-0x258]
	divss xmm0, dword [ebp-0x254]
	movss [ebp-0x258], xmm0
	movss xmm0, dword [ebp-0x130]
	subss xmm0, [ebp-0x258]
	movss [ebp-0x130], xmm0
	ucomiss xmm2, xmm0
	jae _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
	cmp byte [ebp-0x259], 0x0
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_760
	test edi, edi
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_760
	movss xmm0, dword [ebp-0x1cc]
	subss xmm0, [ebp-0x14c]
	movss xmm1, dword [ebp-0x1c8]
	subss xmm1, [ebp-0x148]
	movss xmm2, dword [ebp-0x1c4]
	subss xmm2, [ebp-0x144]
	mov eax, bullet_penetrationMinFxDist
	mov eax, [eax]
	movss xmm3, dword [eax+0xc]
	mulss xmm0, xmm0
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	mulss xmm3, xmm3
	ucomiss xmm0, xmm3
	jbe _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_760
	cmp byte [ebp-0x209], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_770
	mov eax, [ebp-0x16c]
	test al, 0x4
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_770
	movzx esi, si
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1200:
	mov edx, [ebp-0x168]
	mov [ebp-0x240], edx
	mov ecx, [ebp-0x288]
	mov ecx, [ecx+0x34c]
	mov [ebp-0x23c], ecx
	mov ecx, eax
	and ecx, 0x1f00000
	shr ecx, 0x14
	mov eax, [ebp+0xc]
	mov ebx, [eax+0xcc]
	mov eax, sv_clientSideBullets
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_780
	lea eax, [esi*4]
	mov edx, esi
	shl edx, 0x5
	sub edx, eax
	mov eax, edx
	shl eax, 0x4
	add edx, eax
	mov eax, edx
	add eax, cg_entitiesArray
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_790
	cmp dword [eax+0xd0], 0x1
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_800
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_790:
	xor eax, eax
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_830:
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_810
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_780:
	mov eax, [ebp-0x240]
	mov [esp+0x2c], eax
	mov edx, [ebp-0x23c]
	mov [esp+0x28], edx
	mov dword [esp+0x24], 0x0
	mov dword [esp+0x20], 0x29
	mov [esp+0x1c], ecx
	lea eax, [ebp-0x178]
	mov [esp+0x18], eax
	lea ecx, [ebp-0x14c]
	mov [esp+0x14], ecx
	lea eax, [ebp-0x11c]
	mov [esp+0x10], eax
	mov edx, [ebp-0x230]
	mov [esp+0xc], edx
	mov [esp+0x8], esi
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1010:
	mov [esp+0x4], ebx
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii
	mov eax, [ebp+0xc]
	mov ebx, [eax+0xcc]
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_810:
	mov dword [esp+0x14], 0x0
	mov edx, [ebp-0x288]
	mov eax, [edx+0x34c]
	mov [esp+0x10], eax
	lea ecx, [ebp-0x14c]
	mov [esp+0xc], ecx
	lea eax, [ebp-0x11c]
	mov [esp+0x8], eax
	mov [esp+0x4], ebx
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z26DynEntCl_DynEntImpactEventiiPKfS0_ih
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_970:
	sub dword [ebp-0x210], 0x1
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_820
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_800:
	mov eax, 0x1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_830
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_90:
	lea eax, [ebx+ebx*8]
	mov edx, eax
	shl edx, 0x4
	add eax, edx
	lea eax, [ebx+eax*2]
	lea ebx, [esi+eax*4+0xe9f34]
	mov eax, [ecx+0x198]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z14BG_IsProneAnimPK12clientInfo_ti
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_840
	mov edx, [ebp-0x288]
	mov eax, [edx+0x458]
	mov [ebp-0x28], eax
	mov eax, [edx+0x464]
	mov [ebp-0x24], eax
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1110:
	mov eax, [ebp+0xc]
	mov edx, [eax+0xcc]
	lea eax, [edx+edx*8]
	mov ecx, eax
	shl ecx, 0x4
	add eax, ecx
	lea eax, [edx+eax*2]
	mov ebx, cgArray
	lea esi, [ebx+eax*4+0xe9f34]
	mov edx, [ebp+0xc]
	mov eax, [edx+0x198]
	mov [esp+0x4], eax
	mov [esp], esi
	call _Z8BG_IsAdsPK12clientInfo_ti
	test eax, eax
	setnz al
	mov ecx, eax
	and ecx, 0x1
	mov [ebp-0x27c], ecx
	mov edx, [ebp+0xc]
	add edx, 0x74
	mov eax, [ebp+0xc]
	add eax, 0xe4
	mov ecx, [ebp+0xc]
	movss xmm2, dword [ecx+0xe4]
	subss xmm2, [ecx+0x74]
	movss xmm3, dword [eax+0x4]
	subss xmm3, [edx+0x4]
	movss xmm4, dword [eax+0x8]
	subss xmm4, [edx+0x8]
	mov eax, [ebx+0x24]
	mov edx, [eax+0x8]
	mov eax, [ebx+0x20]
	mov eax, [eax+0x8]
	cmp edx, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_850
	sub edx, eax
	cvtsi2ss xmm1, edx
	movss xmm0, dword [_float_1000_00000000]
	divss xmm0, xmm1
	mulss xmm2, xmm0
	mulss xmm3, xmm0
	mulss xmm4, xmm0
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_850:
	mulss xmm2, xmm2
	mulss xmm3, xmm3
	addss xmm2, xmm3
	mulss xmm4, xmm4
	addss xmm2, xmm4
	sqrtss xmm1, xmm2
	movss xmm2, dword [_float_255_00000000]
	movaps xmm0, xmm1
	subss xmm0, xmm2
	ucomiss xmm0, [_float_0_00000000]
	jb _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_860
	movss xmm0, dword [_float_1_00000000]
	movss [ebp-0x280], xmm0
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1160:
	mov eax, [ebp+0xc]
	mov ebx, [eax+0xcc]
	mov byte [ebp-0x19], 0x0
	lea eax, [ebp-0x19]
	mov [esp+0xc], eax
	movzx eax, di
	mov [esp+0x8], eax
	mov [esp+0x4], ebx
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z15CG_GetBoneIndexiijPh
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	lea eax, [ebp-0x88]
	mov [esp+0xc], eax
	movzx eax, byte [ebp-0x19]
	mov [esp+0x8], eax
	mov [esp+0x4], ebx
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z21FX_GetBoneOrientationiiiP13orientation_t
	test al, al
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	mov ebx, [ebp-0x88]
	mov [ebp-0x40], ebx
	mov ecx, [ebp-0x84]
	mov [ebp-0x3c], ecx
	mov edx, [ebp-0x80]
	mov [ebp-0x38], edx
	mov [ebp-0x4c], ebx
	mov [ebp-0x48], ecx
	mov [ebp-0x44], edx
	lea eax, [ebp-0x64]
	mov [esp+0xc], eax
	lea eax, [ebp-0x70]
	mov [esp+0x8], eax
	lea eax, [ebp-0x7c]
	mov [esp+0x4], eax
	lea eax, [esi+0x3e4]
	mov [esp], eax
	call _Z12AngleVectorsPKfPfS1_S1_
	mov byte [ebp-0x26d], 0x0
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_870
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_620:
	lea eax, [ebp-0x110]
	mov [esp+0x8], eax
	lea eax, [ebp-0x4c]
	mov [esp+0x4], eax
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z14CG_SpawnTraceriPKfS0_
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_540:
	movss xmm0, dword [_float_0_99999988]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_880
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_530:
	lea ecx, [ecx+0x7fffffff]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_890
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_600:
	movss xmm0, dword [_float_1_00000000]
	divss xmm0, xmm1
	movaps xmm1, xmm0
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_900
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_590:
	movss xmm0, dword [_float_0_99999988]
	movss [ebp-0x214], xmm0
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_910
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_100:
	mov edx, [ebp-0x288]
	mov eax, [edx+0x7b0]
	mov [ebp-0x28], eax
	mov eax, [edx+0x7b0]
	mov [ebp-0x24], eax
	mov byte [ebp-0x19], 0x0
	lea eax, [ebp-0x19]
	mov [esp+0xc], eax
	movzx eax, di
	mov [esp+0x8], eax
	mov [esp+0x4], ebx
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z15CG_GetBoneIndexiijPh
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	lea eax, [ebp-0x88]
	mov [esp+0xc], eax
	movzx eax, byte [ebp-0x19]
	mov [esp+0x8], eax
	mov [esp+0x4], ebx
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z21FX_GetBoneOrientationiiiP13orientation_t
	test al, al
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_50
	mov ebx, [ebp-0x88]
	mov [ebp-0x40], ebx
	mov ecx, [ebp-0x84]
	mov [ebp-0x3c], ecx
	mov edx, [ebp-0x80]
	mov [ebp-0x38], edx
	mov [ebp-0x4c], ebx
	mov [ebp-0x48], ecx
	mov [ebp-0x44], edx
	mov dword [ebp-0x280], 0x3f800000
	mov byte [ebp-0x26d], 0x0
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_920
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_410:
	mov eax, 0x2
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_930
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_390:
	mov edx, [ebp+0xc]
	mov eax, [edx+0xcc]
	lea ecx, [eax+eax*8]
	mov edx, ecx
	shl edx, 0x4
	add ecx, edx
	lea ecx, [eax+ecx*2]
	mov eax, [ebp-0x40]
	mov [ebp-0x4c], eax
	mov eax, [ebp-0x3c]
	mov [ebp-0x48], eax
	mov eax, [ebp-0x38]
	mov [ebp-0x44], eax
	lea eax, [ebp-0x64]
	mov [esp+0xc], eax
	lea eax, [ebp-0x70]
	mov [esp+0x8], eax
	lea eax, [ebp-0x7c]
	mov [esp+0x4], eax
	lea ecx, [ebx+ecx*4+0xea318]
	mov [esp], ecx
	call _Z12AngleVectorsPKfPfS1_S1_
	movss xmm1, dword [_float_30_00000000]
	movss xmm0, dword [ebp-0x7c]
	mulss xmm0, xmm1
	addss xmm0, [ebp-0x4c]
	movss [ebp-0x4c], xmm0
	movss xmm0, dword [ebp-0x78]
	mulss xmm0, xmm1
	addss xmm0, [ebp-0x48]
	movss [ebp-0x48], xmm0
	mulss xmm1, [ebp-0x74]
	addss xmm1, [ebp-0x44]
	movss [ebp-0x44], xmm1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_940
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_700:
	cmp byte [ebp-0x153], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_950
	cmp byte [ebp-0x1d3], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_950
	mov byte [ebp-0x259], 0x1
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1030:
	test bl, bl
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_960
	cmp byte [ebp-0x259], 0x0
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_960
	cmp byte [ebp-0x209], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
	cmp byte [ebp-0x154], 0x0
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_970
	movss xmm0, dword [ebp-0x224]
	subss xmm0, [ebp-0x14c]
	movss [ebp-0x224], xmm0
	movss xmm1, dword [ebp-0x228]
	subss xmm1, [ebp-0x148]
	movss [ebp-0x228], xmm1
	movss xmm0, dword [ebp-0x22c]
	subss xmm0, [ebp-0x144]
	movss [ebp-0x22c], xmm0
	mov eax, bullet_penetrationMinFxDist
	mov eax, [eax]
	movss xmm0, dword [eax+0xc]
	movss xmm1, dword [ebp-0x224]
	mulss xmm1, xmm1
	movss [ebp-0x224], xmm1
	movss xmm1, dword [ebp-0x228]
	mulss xmm1, xmm1
	movss [ebp-0x228], xmm1
	movss xmm1, dword [ebp-0x224]
	addss xmm1, [ebp-0x228]
	movss [ebp-0x224], xmm1
	movss xmm1, dword [ebp-0x22c]
	mulss xmm1, xmm1
	movss [ebp-0x22c], xmm1
	movss xmm1, dword [ebp-0x224]
	addss xmm1, [ebp-0x22c]
	mulss xmm0, xmm0
	ucomiss xmm1, xmm0
	jbe _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_970
	lea eax, [ebp-0x17c]
	mov [esp], eax
	call _Z20Trace_GetEntityHitIdPK7trace_t
	test edi, edi
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_970
	mov edx, [ebp-0x168]
	mov [ebp-0x238], edx
	mov ecx, [ebp-0x288]
	mov ecx, [ecx+0x34c]
	mov [ebp-0x234], ecx
	mov esi, [ebp-0x16c]
	and esi, 0x1f00000
	shr esi, 0x14
	movzx ecx, ax
	mov eax, [ebp+0xc]
	mov ebx, [eax+0xcc]
	mov eax, sv_clientSideBullets
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_980
	lea eax, [ecx*4]
	mov edx, ecx
	shl edx, 0x5
	sub edx, eax
	mov eax, edx
	shl eax, 0x4
	add edx, eax
	mov eax, edx
	add eax, cg_entitiesArray
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_990
	cmp dword [eax+0xd0], 0x1
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1000
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_990:
	xor eax, eax
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1240:
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_810
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_980:
	mov edx, [ebp-0x238]
	mov [esp+0x2c], edx
	mov eax, [ebp-0x234]
	mov [esp+0x28], eax
	mov dword [esp+0x24], 0x0
	mov dword [esp+0x20], 0x29
	mov [esp+0x1c], esi
	lea eax, [ebp-0x178]
	mov [esp+0x18], eax
	lea edx, [ebp-0x14c]
	mov [esp+0x14], edx
	lea eax, [ebp-0x11c]
	mov [esp+0x10], eax
	mov edx, [ebp-0x230]
	mov [esp+0xc], edx
	mov [esp+0x8], ecx
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1010
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_420:
	mov eax, [edx+0x33c]
	mov [ebp-0x278], eax
	mov edx, [ebp-0x288]
	movss xmm0, dword [edx+0x80c]
	movss [ebp-0x260], xmm0
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1020
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_950:
	mov byte [ebp-0x259], 0x0
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1030
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_760:
	cmp byte [ebp-0x209], 0x0
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_970
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_650:
	mov dword [esp+0x14], 0x0
	lea ecx, [ebp-0x14c]
	mov [esp+0x10], ecx
	lea eax, [ebp-0x11c]
	mov [esp+0xc], eax
	mov edx, [ebp+0xc]
	mov eax, [edx+0xcc]
	mov [esp+0x8], eax
	mov ecx, [ebp+0x8]
	mov [esp+0x4], ecx
	lea eax, [ebp-0x17c]
	mov [esp], eax
	call _Z26DynEntCl_EntityImpactEventPK7trace_tiiPKfS3_h
	mov dword [esp+0x14], 0x0
	mov edx, [ebp-0x288]
	mov eax, [edx+0x34c]
	mov [esp+0x10], eax
	lea ecx, [ebp-0x14c]
	mov [esp+0xc], ecx
	lea eax, [ebp-0x11c]
	mov [esp+0x8], eax
	mov edx, [ebp+0xc]
	mov eax, [edx+0xcc]
	mov [esp+0x4], eax
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z26DynEntCl_DynEntImpactEventiiPKfS0_ih
	mov eax, [ebp-0x168]
	mov [ebp-0x250], eax
	mov edx, [ebp-0x288]
	mov edx, [edx+0x34c]
	mov [ebp-0x24c], edx
	mov ecx, [ebp-0x16c]
	and ecx, 0x1f00000
	shr ecx, 0x14
	movzx ebx, si
	mov eax, [ebp+0xc]
	mov esi, [eax+0xcc]
	mov eax, sv_clientSideBullets
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1040
	lea eax, [ebx*4]
	mov edx, ebx
	shl edx, 0x5
	sub edx, eax
	mov eax, edx
	shl eax, 0x4
	add edx, eax
	mov eax, edx
	add eax, cg_entitiesArray
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1050
	cmp dword [eax+0xd0], 0x1
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1060
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1050:
	xor eax, eax
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1080:
	test eax, eax
	jnz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1070
	mov edx, [ebp-0x24c]
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1040:
	mov eax, [ebp-0x250]
	mov [esp+0x2c], eax
	mov [esp+0x28], edx
	mov dword [esp+0x24], 0x0
	mov dword [esp+0x20], 0x29
	mov [esp+0x1c], ecx
	lea eax, [ebp-0x178]
	mov [esp+0x18], eax
	lea ecx, [ebp-0x14c]
	mov [esp+0x14], ecx
	lea eax, [ebp-0x11c]
	mov [esp+0x10], eax
	mov edx, [ebp-0x230]
	mov [esp+0xc], edx
	mov [esp+0x8], ebx
	mov [esp+0x4], esi
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1070
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1060:
	mov eax, 0x1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1080
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_640:
	lea eax, [ebp-0x14c]
	mov [esp+0x8], eax
	lea eax, [ebp-0x4c]
	mov [esp+0x4], eax
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z14CG_SpawnTraceriPKfS0_
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1090
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_840:
	mov ecx, [ebp+0xc]
	mov eax, [ecx+0x198]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z18BG_IsCrouchingAnimPK12clientInfo_ti
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1100
	mov edx, [ebp-0x288]
	mov eax, [edx+0x454]
	mov [ebp-0x28], eax
	mov eax, [edx+0x460]
	mov [ebp-0x24], eax
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1110
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_710:
	movss xmm0, dword [ebp-0x224]
	subss xmm0, [ebp-0x1cc]
	movss [ebp-0x224], xmm0
	movss xmm1, dword [ebp-0x228]
	subss xmm1, [ebp-0x1c8]
	movss [ebp-0x228], xmm1
	movss xmm0, dword [ebp-0x22c]
	subss xmm0, [ebp-0x1c4]
	movss [ebp-0x22c], xmm0
	movss xmm1, dword [ebp-0x224]
	mulss xmm1, xmm1
	movss xmm0, dword [ebp-0x228]
	mulss xmm0, xmm0
	addss xmm1, xmm0
	movss [ebp-0x224], xmm1
	movss xmm1, dword [ebp-0x22c]
	mulss xmm1, xmm1
	movss xmm0, dword [ebp-0x224]
	addss xmm0, xmm1
	sqrtss xmm1, xmm0
	movss [ebp-0x258], xmm1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1120
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_690:
	mov dword [esp+0x8], 0x3c23d70a
	lea ecx, [ebp-0x1fc]
	mov [esp+0x4], ecx
	lea eax, [ebp-0xf8]
	mov [esp], eax
	call _Z15BG_AdvanceTraceP16BulletFireParamsP18BulletTraceResultsf
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1130
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_670:
	mov eax, [eax+0x158]
	lea edx, [eax+eax*8]
	mov ecx, edx
	shl ecx, 0x4
	add edx, ecx
	lea edx, [eax+edx*2]
	shl edx, 0x2
	add edx, cgArray
	test byte [edx+0xe9f60], 0x20
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1140
	mov eax, perk_bulletPenetrationMultiplier
	mov eax, [eax]
	movss xmm0, dword [ebp-0x254]
	mulss xmm0, [eax+0xc]
	movss [ebp-0x254], xmm0
	movaps xmm1, xmm0
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1150
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_860:
	divss xmm1, xmm2
	movss [ebp-0x280], xmm1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1160
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1100:
	mov ecx, [ebp-0x288]
	mov eax, [ecx+0x450]
	mov [ebp-0x28], eax
	mov eax, [ecx+0x45c]
	mov [ebp-0x24], eax
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1110
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_770:
	mov eax, [ebp-0x1e8]
	mov [ebp-0x248], eax
	mov edx, [ebp-0x288]
	mov edx, [edx+0x34c]
	mov [ebp-0x244], edx
	mov ecx, [ebp-0x1ec]
	and ecx, 0x1f00000
	shr ecx, 0x14
	movzx esi, si
	mov eax, [ebp+0xc]
	mov ebx, [eax+0xcc]
	mov eax, sv_clientSideBullets
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1170
	lea eax, [esi*4]
	mov edx, esi
	shl edx, 0x5
	sub edx, eax
	mov eax, edx
	shl eax, 0x4
	add edx, eax
	mov eax, edx
	add eax, cg_entitiesArray
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1180
	cmp dword [eax+0xd0], 0x1
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1190
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1180:
	xor eax, eax
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1210:
	test eax, eax
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1170
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1220:
	cmp byte [ebp-0x209], 0x0
	jz _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
	mov eax, [ebp-0x16c]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1200
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1190:
	mov eax, 0x1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1210
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_750:
	ucomiss xmm2, xmm1
	jae _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_660
	movss [ebp-0x254], xmm1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_720
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1170:
	mov edx, [ebp-0x248]
	mov [esp+0x2c], edx
	mov eax, [ebp-0x244]
	mov [esp+0x28], eax
	mov dword [esp+0x24], 0x4
	mov dword [esp+0x20], 0x29
	mov [esp+0x1c], ecx
	lea eax, [ebp-0x104]
	mov [esp+0x18], eax
	lea eax, [ebp-0x1cc]
	mov [esp+0x14], eax
	lea eax, [ebp-0xdc]
	mov [esp+0x10], eax
	mov edx, [ebp-0x230]
	mov [esp+0xc], edx
	mov [esp+0x8], esi
	mov [esp+0x4], ebx
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1220
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_740:
	mov eax, [ebp-0x1bc]
	mov [esp+0x4], eax
	mov ecx, [ebp-0x288]
	mov [esp], ecx
	call _Z29BG_GetSurfacePenetrationDepthPK9WeaponDefi
	fstp dword [ebp-0x2ac]
	movss xmm1, dword [ebp-0x2ac]
	mov eax, perk_bulletPenetrationMultiplier
	mov eax, [eax]
	mulss xmm1, [eax+0xc]
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1230
_Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1000:
	mov eax, 0x1
	jmp _Z13CG_FireWeaponiP9centity_sitjPK13playerState_s_1240
	add [eax], al


;CG_JavelinADS(int)
_Z13CG_JavelinADSi:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, cgArray
	lea eax, [ebx+0x4613c]
	mov [esp], eax
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	test eax, eax
	jle _Z13CG_JavelinADSi_10
	movss xmm0, dword [_float_1_00000000]
	ucomiss xmm0, [ebx+0x46230]
	jz _Z13CG_JavelinADSi_20
_Z13CG_JavelinADSi_10:
	xor eax, eax
_Z13CG_JavelinADSi_30:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z13CG_JavelinADSi_20:
	jp _Z13CG_JavelinADSi_10
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	cmp dword [eax+0x43c], 0x1
	jnz _Z13CG_JavelinADSi_10
	mov eax, 0x1
	jmp _Z13CG_JavelinADSi_30


;CG_SpawnTracer(int, float const*, float const*)
_Z14CG_SpawnTraceriPKfS0_:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4c
	mov eax, [ebp+0xc]
	mov edx, [ebp+0x10]
	movss xmm0, dword [eax]
	movss [ebp-0x28], xmm0
	movss xmm1, dword [eax+0x4]
	movss [ebp-0x2c], xmm1
	movss xmm0, dword [eax+0x8]
	movss [ebp-0x30], xmm0
	movss xmm5, dword [edx]
	subss xmm5, [ebp-0x28]
	movss xmm4, dword [edx+0x4]
	subss xmm4, xmm1
	movss xmm3, dword [edx+0x8]
	subss xmm3, xmm0
	movaps xmm0, xmm5
	mulss xmm0, xmm5
	movaps xmm1, xmm4
	mulss xmm1, xmm4
	addss xmm0, xmm1
	movaps xmm1, xmm3
	mulss xmm1, xmm3
	addss xmm0, xmm1
	sqrtss xmm2, xmm0
	movaps xmm0, xmm2
	xorps xmm0, [_data16_80000000]
	ucomiss xmm0, [_float_0_00000000]
	jb _Z14CG_SpawnTraceriPKfS0__10
	movss xmm1, dword [_float_1_00000000]
_Z14CG_SpawnTraceriPKfS0__40:
	mulss xmm5, xmm1
	movss [ebp-0x1c], xmm5
	mulss xmm4, xmm1
	movss [ebp-0x20], xmm4
	mulss xmm3, xmm1
	movss [ebp-0x24], xmm3
	mov eax, [ebp+0x8]
	mov [esp], eax
	movss [ebp-0x48], xmm2
	call _Z19CG_AllocLocalEntityi
	mov ebx, eax
	mov dword [eax+0x8], 0x0
	movss xmm2, dword [ebp-0x48]
	movss [eax+0x44], xmm2
	mov esi, cgArray
	mov edi, [esi+0x46128]
	mov eax, [esi+0x46124]
	test eax, eax
	jnz _Z14CG_SpawnTraceriPKfS0__20
	xor eax, eax
_Z14CG_SpawnTraceriPKfS0__30:
	mov edx, edi
	sub edx, eax
	mulss xmm2, [_float_1000_00000000]
	mov ecx, cg_tracerSpeed
	mov eax, [ecx]
	divss xmm2, dword [eax+0xc]
	cvttss2si eax, xmm2
	lea eax, [edx+eax]
	mov [ebx+0xc], eax
	mov dword [ebx+0x10], 0x2
	mov [ebx+0x14], edx
	lea eax, [ebx+0x1c]
	movss xmm1, dword [ebp-0x28]
	movss [ebx+0x1c], xmm1
	movss xmm0, dword [ebp-0x2c]
	movss [eax+0x4], xmm0
	movss xmm1, dword [ebp-0x30]
	movss [eax+0x8], xmm1
	lea edx, [ebx+0x28]
	mov eax, [ecx]
	movss xmm0, dword [eax+0xc]
	movss xmm1, dword [ebp-0x1c]
	mulss xmm1, xmm0
	movss [ebx+0x28], xmm1
	movss xmm1, dword [ebp-0x20]
	mulss xmm1, xmm0
	movss [edx+0x4], xmm1
	mulss xmm0, [ebp-0x24]
	movss [edx+0x8], xmm0
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z14CG_SpawnTraceriPKfS0__20:
	movss [ebp-0x48], xmm2
	call _Z7ms_randv
	cdq
	idiv dword [esi+0x46124]
	mov eax, edx
	shr eax, 0x1f
	add eax, edx
	sar eax, 1
	movss xmm2, dword [ebp-0x48]
	jmp _Z14CG_SpawnTraceriPKfS0__30
_Z14CG_SpawnTraceriPKfS0__10:
	movss xmm1, dword [_float_1_00000000]
	divss xmm1, xmm2
	jmp _Z14CG_SpawnTraceriPKfS0__40


;CG_CalcEyePoint(int, int, float*)
_Z15CG_CalcEyePointiiPf:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov esi, [ebp+0xc]
	mov ebx, [ebp+0x10]
	mov dword [esp], 0x0
	call _Z22CL_IsLocalClientActivei
	test al, al
	jz _Z15CG_CalcEyePointiiPf_10
	mov eax, cgArray
	mov edx, [eax+0x24]
	test byte [edx+0x20], 0x6
	jnz _Z15CG_CalcEyePointiiPf_20
_Z15CG_CalcEyePointiiPf_70:
	xor edx, edx
_Z15CG_CalcEyePointiiPf_80:
	test edx, edx
	jnz _Z15CG_CalcEyePointiiPf_30
_Z15CG_CalcEyePointiiPf_10:
	lea edx, [esi*4]
	mov eax, esi
	shl eax, 0x5
	sub eax, edx
	mov edx, eax
	shl edx, 0x4
	lea ecx, [eax+edx]
	add ecx, cg_entitiesArray
	lea edx, [ecx+0xe4]
	mov eax, [ecx+0xe4]
	mov [ebx], eax
	mov eax, [edx+0x4]
	mov [ebx+0x4], eax
	movss xmm0, dword [edx+0x8]
	movss [ebx+0x8], xmm0
	cmp esi, 0x3f
	jg _Z15CG_CalcEyePointiiPf_40
	mov eax, [ecx+0xd4]
	test al, 0x8
	jnz _Z15CG_CalcEyePointiiPf_50
	test al, 0x4
	jnz _Z15CG_CalcEyePointiiPf_60
	addss xmm0, [_float_60_00000000]
	movss [ebx+0x8], xmm0
_Z15CG_CalcEyePointiiPf_40:
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z15CG_CalcEyePointiiPf_50:
	addss xmm0, [_float_11_00000000]
	movss [ebx+0x8], xmm0
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z15CG_CalcEyePointiiPf_20:
	cmp esi, [edx+0xe8]
	jnz _Z15CG_CalcEyePointiiPf_70
	mov edx, 0x1
	jmp _Z15CG_CalcEyePointiiPf_80
_Z15CG_CalcEyePointiiPf_60:
	addss xmm0, [_float_40_00000000]
	movss [ebx+0x8], xmm0
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z15CG_CalcEyePointiiPf_30:
	lea edx, [eax+0x492e0]
	mov eax, [eax+0x492e0]
	mov [ebx], eax
	mov eax, [edx+0x4]
	mov [ebx+0x4], eax
	mov eax, [edx+0x8]
	mov [ebx+0x8], eax
	jmp _Z15CG_CalcEyePointiiPf_40
	nop


;CG_NextWeapon_f()
_Z15CG_NextWeapon_fv:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov ecx, cgArray
	mov ebx, [ecx+0x24]
	test ebx, ebx
	jz _Z15CG_NextWeapon_fv_10
	test dword [ecx+0x46148], 0xc00
	jnz _Z15CG_NextWeapon_fv_10
	cmp byte [ecx+0x4614c], 0x0
	js _Z15CG_NextWeapon_fv_10
	mov esi, [ecx+0x46128]
	mov eax, esi
	sub eax, [ecx+0x50370]
	mov edx, cg_weaponCycleDelay
	mov edx, [edx]
	cmp eax, [edx+0xc]
	jge _Z15CG_NextWeapon_fv_20
_Z15CG_NextWeapon_fv_10:
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z15CG_NextWeapon_fv_20:
	test byte [ebx+0x20], 0x4
	jz _Z15CG_NextWeapon_fv_10
	mov [ecx+0x50370], esi
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0x0
	call _Z17CG_MenuShowNotifyii
	xor ecx, ecx
	mov edx, 0x1
	xor eax, eax
	call _Z16CycleWeapPrimaryiii
	jmp _Z15CG_NextWeapon_fv_10


;CG_PrevWeapon_f()
_Z15CG_PrevWeapon_fv:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	mov ecx, cgArray
	mov ebx, [ecx+0x24]
	test ebx, ebx
	jz _Z15CG_PrevWeapon_fv_10
	test dword [ecx+0x46148], 0xc00
	jnz _Z15CG_PrevWeapon_fv_10
	cmp byte [ecx+0x4614c], 0x0
	js _Z15CG_PrevWeapon_fv_10
	mov esi, [ecx+0x46128]
	mov eax, esi
	sub eax, [ecx+0x50370]
	mov edx, cg_weaponCycleDelay
	mov edx, [edx]
	cmp eax, [edx+0xc]
	jge _Z15CG_PrevWeapon_fv_20
_Z15CG_PrevWeapon_fv_10:
	pop ebx
	pop esi
	pop ebp
	ret
_Z15CG_PrevWeapon_fv_20:
	test byte [ebx+0x20], 0x4
	jz _Z15CG_PrevWeapon_fv_10
	mov [ecx+0x50370], esi
	xor ecx, ecx
	xor edx, edx
	xor eax, eax
	call _Z16CycleWeapPrimaryiii
	pop ebx
	pop esi
	pop ebp
	ret
	nop


;CG_AddViewWeapon(int)
_Z16CG_AddViewWeaponi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x17c
	mov edi, cgArray
	xor eax, eax
	mov [edi+0x49328], eax
	mov [edi+0x4932c], eax
	mov eax, [edi+0x46140]
	sub eax, 0x4
	cmp eax, 0x1
	jbe _Z16CG_AddViewWeaponi_10
	mov ebx, [edi+0x46138]
	test ebx, ebx
	jnz _Z16CG_AddViewWeaponi_10
	mov ecx, [edi+0xc]
	test ecx, ecx
	jz _Z16CG_AddViewWeaponi_20
_Z16CG_AddViewWeaponi_40:
	mov dword [ebp-0x140], 0x0
_Z16CG_AddViewWeaponi_50:
	test dword [edi+0x461ec], 0x300
	jz _Z16CG_AddViewWeaponi_30
_Z16CG_AddViewWeaponi_10:
	add esp, 0x17c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z16CG_AddViewWeaponi_20:
	mov eax, cg_drawGun
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z16CG_AddViewWeaponi_40
	lea eax, [ebp-0x1c]
	mov [esp+0x4], eax
	mov [esp], edi
	call _Z21CG_GetWeapReticleZoomPK4cg_sPf
	test al, al
	jnz _Z16CG_AddViewWeaponi_40
	mov dword [ebp-0x140], 0x1
	jmp _Z16CG_AddViewWeaponi_50
_Z16CG_AddViewWeaponi_30:
	lea ebx, [edi+0x4613c]
	mov [esp], ebx
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	mov [ebp-0x13c], eax
	test eax, eax
	jle _Z16CG_AddViewWeaponi_60
	mov [esp], ebx
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov ecx, eax
	mov edx, [edi+0x504d4]
	add edx, [edi+0x504d8]
	sub edx, [edi+0x46128]
	test edx, edx
	jle _Z16CG_AddViewWeaponi_70
	mov eax, [edi+0x504d0]
	mov eax, [eax+0x14]
	cmp edx, eax
	jl _Z16CG_AddViewWeaponi_80
	movss xmm3, dword [_float_1_00000000]
	movaps xmm2, xmm3
	movss xmm0, dword [_float__2_00000000]
_Z16CG_AddViewWeaponi_240:
	movaps xmm1, xmm0
	addss xmm1, [_float_3_00000000]
	mulss xmm1, xmm2
	mulss xmm1, xmm2
	movss xmm0, dword [ecx+0x4c4]
	subss xmm0, xmm3
	mulss xmm1, xmm0
	addss xmm1, xmm3
_Z16CG_AddViewWeaponi_280:
	mov esi, cgArray
	mov eax, [esi+0x46124]
	mov [esp+0x14], eax
	movss [esp+0x10], xmm1
	lea eax, [esi+0x4d384]
	mov [esp+0xc], eax
	lea eax, [esi+0x4d390]
	mov [esp+0x8], eax
	lea eax, [esi+0x4d378]
	mov [esp+0x4], eax
	lea ebx, [esi+0x4613c]
	mov [esp], ebx
	call _Z31BG_CalculateWeaponPosition_SwayPK13playerState_sPfS2_S2_fi
	mov [esp], ebx
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	mov [esp], eax
	call _Z23BG_IsAimDownSightWeaponj
	test eax, eax
	jz _Z16CG_AddViewWeaponi_90
	movss xmm0, dword [esi+0x46230]
	ucomiss xmm0, [_float_1_00000000]
	jz _Z16CG_AddViewWeaponi_100
_Z16CG_AddViewWeaponi_250:
	pxor xmm1, xmm1
	ucomiss xmm0, xmm1
	jnz _Z16CG_AddViewWeaponi_110
	jp _Z16CG_AddViewWeaponi_110
	mov edi, cgArray
	mov dword [edi+0x49280], 0x1
	jmp _Z16CG_AddViewWeaponi_120
_Z16CG_AddViewWeaponi_60:
	mov eax, [edi+0x4d360]
	mov [edi+0x50434], eax
	mov eax, [edi+0x4d364]
	mov [edi+0x50438], eax
	xor eax, eax
	mov [edi+0x5043c], eax
	mov [edi+0x50440], eax
	mov [edi+0x50444], eax
	add esp, 0x17c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z16CG_AddViewWeaponi_90:
	mov edi, esi
	pxor xmm1, xmm1
_Z16CG_AddViewWeaponi_260:
	mov dword [ebp-0x5c], 0x0
	mov dword [ebp-0x58], 0x0
	mov dword [ebp-0x54], 0x0
	movss xmm0, dword [edi+0x46198]
	ucomiss xmm0, xmm1
	jp _Z16CG_AddViewWeaponi_130
	jz _Z16CG_AddViewWeaponi_140
_Z16CG_AddViewWeaponi_130:
	movss xmm1, dword [_float_1_00000000]
	ucomiss xmm1, [edi+0x46230]
	ja _Z16CG_AddViewWeaponi_150
_Z16CG_AddViewWeaponi_140:
	mov dword [ebp-0x40], 0x0
	mov dword [ebp-0x3c], 0x0
	mov dword [ebp-0x38], 0x0
	lea ebx, [ebp-0x40]
	mov [esp+0x4], ebx
	mov [esp], edi
	call _Z45CalculateWeaponPosition_BasePosition_movementP4cg_sPf
	movss xmm2, dword [ebp-0x40]
	movss [edi+0x49284], xmm2
	movss xmm1, dword [ebp-0x3c]
	movss [edi+0x49288], xmm1
	movss xmm0, dword [ebp-0x38]
	movss [edi+0x4928c], xmm0
	addss xmm2, [ebp-0x5c]
	movss [ebp-0x5c], xmm2
	addss xmm1, [ebp-0x58]
	movss [ebp-0x58], xmm1
	addss xmm0, [ebp-0x54]
	movss [ebp-0x54], xmm0
	subss xmm1, [edi+0x4d394]
	movss [ebp-0x58], xmm1
	addss xmm0, [edi+0x4d398]
	movss [ebp-0x54], xmm0
	movss [ebp-0x40], xmm2
	movss [ebp-0x3c], xmm1
	movss [ebp-0x38], xmm0
	lea eax, [ebp-0x5c]
	mov [esp+0x8], eax
	lea eax, [edi+0x50460]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z23MatrixTransformVector43PKfPA3_S_Pf
	mov edx, [edi+0x46128]
	sub edx, [edi+0x492c0]
	cmp edx, 0x95
	jg _Z16CG_AddViewWeaponi_160
	movss xmm0, dword [_float_0_25000000]
	mulss xmm0, [edi+0x492bc]
	cvtsi2ss xmm1, edx
	mulss xmm0, xmm1
	divss xmm0, dword [_float_150_00000000]
	addss xmm0, [ebp-0x54]
	movss [ebp-0x54], xmm0
_Z16CG_AddViewWeaponi_200:
	mov ebx, cgArray
	lea eax, [ebx+0x4613c]
	mov [esp], eax
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	mov [esp], eax
	call _Z23BG_IsAimDownSightWeaponj
	test eax, eax
	jz _Z16CG_AddViewWeaponi_170
	movss xmm1, dword [ebx+0x46230]
	ucomiss xmm1, [_float_0_00000000]
	jp _Z16CG_AddViewWeaponi_180
	jnz _Z16CG_AddViewWeaponi_180
	mov edi, cgArray
	mov dword [edi+0x5043c], 0x0
	mov dword [edi+0x50440], 0x0
	mov dword [edi+0x50444], 0x0
	jmp _Z16CG_AddViewWeaponi_190
_Z16CG_AddViewWeaponi_160:
	cmp edx, 0x1c1
	jg _Z16CG_AddViewWeaponi_200
	movss xmm0, dword [_float_0_25000000]
	mulss xmm0, [edi+0x492bc]
	mov eax, 0x1c2
	sub eax, edx
	cvtsi2ss xmm1, eax
	mulss xmm0, xmm1
	divss xmm0, dword [_float_300_00000000]
	addss xmm0, [ebp-0x54]
	movss [ebp-0x54], xmm0
	jmp _Z16CG_AddViewWeaponi_200
_Z16CG_AddViewWeaponi_170:
	xor eax, eax
	mov [ebx+0x5043c], eax
	mov [ebx+0x50440], eax
	mov [ebx+0x50444], eax
	mov edi, ebx
_Z16CG_AddViewWeaponi_190:
	mov eax, cg_gun_x
	mov eax, [eax]
	movss xmm1, dword [eax+0xc]
	movaps xmm0, xmm1
	mulss xmm0, [edi+0x50460]
	addss xmm0, [ebp-0x5c]
	movss [ebp-0x5c], xmm0
	movaps xmm0, xmm1
	mulss xmm0, [edi+0x50464]
	addss xmm0, [ebp-0x58]
	movss [ebp-0x58], xmm0
	mulss xmm1, [edi+0x50468]
	addss xmm1, [ebp-0x54]
	movss [ebp-0x54], xmm1
	mov eax, cg_gun_y
	mov eax, [eax]
	movss xmm1, dword [eax+0xc]
	movaps xmm0, xmm1
	mulss xmm0, [edi+0x5046c]
	addss xmm0, [ebp-0x5c]
	movss [ebp-0x5c], xmm0
	movaps xmm0, xmm1
	mulss xmm0, [edi+0x50470]
	addss xmm0, [ebp-0x58]
	movss [ebp-0x58], xmm0
	mulss xmm1, [edi+0x50474]
	addss xmm1, [ebp-0x54]
	movss [ebp-0x54], xmm1
	mov eax, cg_gun_z
	mov eax, [eax]
	movss xmm1, dword [eax+0xc]
	movaps xmm0, xmm1
	mulss xmm0, [edi+0x50478]
	addss xmm0, [ebp-0x5c]
	movss [ebp-0x5c], xmm0
	movaps xmm0, xmm1
	mulss xmm0, [edi+0x5047c]
	addss xmm0, [ebp-0x58]
	movss [ebp-0x58], xmm0
	mulss xmm1, [edi+0x50480]
	addss xmm1, [ebp-0x54]
	movss [ebp-0x54], xmm1
	lea eax, [edi+0x4613c]
	mov [ebp-0x12c], eax
	mov eax, [edi+0x5040c]
	mov [ebp-0x128], eax
	cvtsi2ss xmm0, dword [edi+0x46124]
	mulss xmm0, [_float_0_00100000]
	movss [ebp-0x124], xmm0
	mov eax, [edi+0x492a0]
	mov [ebp-0x120], eax
	mov eax, [edi+0x492a4]
	mov [ebp-0x11c], eax
	mov eax, [edi+0x492a8]
	mov [ebp-0x118], eax
	mov eax, [edi+0x49290]
	mov [ebp-0x114], eax
	mov edx, [edi+0x469d8]
	mov eax, [edi+0x46128]
	sub eax, edx
	mov [ebp-0x110], eax
	mov eax, [edi+0x503e0]
	test eax, eax
	jz _Z16CG_AddViewWeaponi_210
	sub eax, edx
_Z16CG_AddViewWeaponi_210:
	mov [ebp-0x10c], eax
	mov eax, [edi+0x50400]
	mov [ebp-0x108], eax
	mov eax, [edi+0x50404]
	mov [ebp-0x104], eax
	mov eax, [edi+0x50448]
	mov [ebp-0x100], eax
	mov eax, [edi+0x5044c]
	mov [ebp-0xfc], eax
	mov eax, [edi+0x50450]
	mov [ebp-0xf8], eax
	mov eax, [edi+0x50454]
	mov [ebp-0xf4], eax
	mov eax, [edi+0x50458]
	mov [ebp-0xf0], eax
	mov eax, [edi+0x5045c]
	mov [ebp-0xec], eax
	mov eax, [edi+0x4d384]
	mov [ebp-0xe8], eax
	mov eax, [edi+0x4d388]
	mov [ebp-0xe4], eax
	mov eax, [edi+0x4d38c]
	mov [ebp-0xe0], eax
	lea eax, [edi+0x503f4]
	mov [ebp-0xdc], eax
	lea eax, [ebp-0x34]
	mov [esp+0x4], eax
	lea eax, [ebp-0x12c]
	mov [esp], eax
	call _Z24BG_CalculateWeaponAnglesP13weaponState_tPf
	lea eax, [ebp-0xb4]
	mov [esp+0x4], eax
	lea eax, [ebp-0x34]
	mov [esp], eax
	call _Z12AnglesToAxisPKfPA3_f
	lea ebx, [ebp-0x90]
	mov [esp+0x4], ebx
	lea eax, [edi+0x46244]
	mov [esp], eax
	call _Z12AnglesToAxisPKfPA3_f
	lea esi, [ebp-0xd8]
	mov [esp+0x8], esi
	mov [esp+0x4], ebx
	lea eax, [ebp-0xb4]
	mov [esp], eax
	call _Z14MatrixMultiplyPA3_KfS1_PA3_f
	lea eax, [ebp-0x6c]
	mov [esp+0x4], eax
	mov [esp], esi
	call _Z10AxisToQuatPA3_KfPf
	mov eax, [ebp-0x13c]
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov ebx, eax
	mov eax, [edi+0x46224]
	mov [esp], eax
	call _Z23BG_IsAimDownSightWeaponj
	test eax, eax
	jz _Z16CG_AddViewWeaponi_220
	pxor xmm0, xmm0
	ucomiss xmm0, [edi+0x46230]
	jp _Z16CG_AddViewWeaponi_230
	jnz _Z16CG_AddViewWeaponi_230
_Z16CG_AddViewWeaponi_220:
	mov edi, cgArray
	mov eax, [edi+0x4d360]
	mov [edi+0x50434], eax
	mov eax, [edi+0x4d364]
	mov [edi+0x50438], eax
_Z16CG_AddViewWeaponi_270:
	mov eax, [ebp-0x120]
	mov [edi+0x492a0], eax
	mov eax, [ebp-0x11c]
	mov [edi+0x492a4], eax
	mov eax, [ebp-0x118]
	mov [edi+0x492a8], eax
	mov eax, [ebp-0x114]
	mov [edi+0x49290], eax
	mov eax, [ebp-0x100]
	mov [edi+0x50448], eax
	mov eax, [ebp-0xfc]
	mov [edi+0x5044c], eax
	mov eax, [ebp-0xf8]
	mov [edi+0x50450], eax
	mov eax, [ebp-0xf4]
	mov [edi+0x50454], eax
	mov eax, [ebp-0xf0]
	mov [edi+0x50458], eax
	mov eax, [ebp-0xec]
	mov [edi+0x5045c], eax
	mov dword [ebp-0x50], 0x3f800000
	mov eax, [ebp-0x140]
	mov [esp+0x10], eax
	lea eax, [edi+0x490a0]
	mov [esp+0xc], eax
	lea eax, [edi+0x4613c]
	mov [esp+0x8], eax
	lea eax, [ebp-0x6c]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si
	add esp, 0x17c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z16CG_AddViewWeaponi_80:
	cvtsi2ss xmm2, edx
	cvtsi2ss xmm0, eax
	divss xmm2, xmm0
	movaps xmm0, xmm2
	mulss xmm0, [_float__2_00000000]
	movss xmm3, dword [_float_1_00000000]
	jmp _Z16CG_AddViewWeaponi_240
_Z16CG_AddViewWeaponi_100:
	jp _Z16CG_AddViewWeaponi_250
	mov dword [esi+0x49280], 0x0
	mov edi, esi
	pxor xmm1, xmm1
_Z16CG_AddViewWeaponi_120:
	mov eax, [edi+0x46230]
	mov [edi+0x4927c], eax
	jmp _Z16CG_AddViewWeaponi_260
_Z16CG_AddViewWeaponi_230:
	mov edx, [ebx+0x438]
	test edx, edx
	jnz _Z16CG_AddViewWeaponi_220
	lea eax, [ebp-0x34]
	mov [esp+0x4], eax
	lea eax, [ebp-0x6c]
	mov [esp], eax
	call _Z16UnitQuatToAnglesPKfPf
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z17AngleNormalize360f
	fstp dword [edi+0x50434]
	mov eax, [ebp-0x30]
	mov [esp], eax
	call _Z17AngleNormalize360f
	fstp dword [edi+0x50438]
	mov edi, cgArray
	jmp _Z16CG_AddViewWeaponi_270
_Z16CG_AddViewWeaponi_180:
	movss xmm0, dword [ebp-0x5c]
	subss xmm0, [ebx+0x492e0]
	mulss xmm0, xmm1
	movss [ebx+0x5043c], xmm0
	movss xmm0, dword [ebp-0x58]
	subss xmm0, [ebx+0x492e4]
	mulss xmm0, xmm1
	movss [ebx+0x50440], xmm0
	movss xmm0, dword [ebp-0x54]
	subss xmm0, [ebx+0x492e8]
	mulss xmm1, xmm0
	movss [ebx+0x50444], xmm1
	mov edi, ebx
	jmp _Z16CG_AddViewWeaponi_190
_Z16CG_AddViewWeaponi_70:
	movss xmm1, dword [_float_1_00000000]
	jmp _Z16CG_AddViewWeaponi_280
_Z16CG_AddViewWeaponi_110:
	mov edi, cgArray
	jmp _Z16CG_AddViewWeaponi_120
_Z16CG_AddViewWeaponi_150:
	mov dword [ebp-0x28], 0x0
	mov dword [ebp-0x24], 0x0
	mov dword [ebp-0x20], 0x0
	movss [esp], xmm0
	call _Z15GetLeanFractionf
	fstp dword [ebp-0x15c]
	movss xmm2, dword [ebp-0x15c]
	movaps xmm0, xmm2
	mulss xmm0, [_float__2_00000000]
	addss xmm0, [ebp-0x20]
	movss [ebp-0x20], xmm0
	movss xmm1, dword [_float_1_00000000]
	subss xmm1, [edi+0x46230]
	mulss xmm1, xmm2
	mulss xmm1, [_float_1_60000002]
	mov dword [esp+0xc], 0x0
	lea eax, [ebp-0x4c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x0
	lea eax, [ebp-0x28]
	mov [esp], eax
	movss [ebp-0x158], xmm1
	call _Z12AngleVectorsPKfPfS1_S1_
	movss xmm1, dword [ebp-0x158]
	movaps xmm0, xmm1
	mulss xmm0, [ebp-0x4c]
	addss xmm0, [ebp-0x5c]
	movss [ebp-0x5c], xmm0
	movaps xmm0, xmm1
	mulss xmm0, [ebp-0x48]
	addss xmm0, [ebp-0x58]
	movss [ebp-0x58], xmm0
	mulss xmm1, [ebp-0x44]
	addss xmm1, [ebp-0x54]
	movss [ebp-0x54], xmm1
	mov edi, cgArray
	jmp _Z16CG_AddViewWeaponi_140


;CG_RegisterItems(int)
_Z16CG_RegisterItemsi:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x90
	mov esi, [ebp+0x8]
	mov dword [esp+0x4], 0x90a
	mov [esp], esi
	call _Z18CL_GetConfigStringii
	mov [esp+0x4], eax
	lea eax, [ebp-0x88]
	mov [esp], eax
	call strcpy
	mov ebx, 0x1
	jmp _Z16CG_RegisterItemsi_10
_Z16CG_RegisterItemsi_50:
	sub eax, 0x30
	mov ecx, ebx
	and ecx, 0x3
	sar eax, cl
	test al, 0x1
	jnz _Z16CG_RegisterItemsi_20
_Z16CG_RegisterItemsi_60:
	add ebx, 0x1
	cmp ebx, 0x80
	jz _Z16CG_RegisterItemsi_30
_Z16CG_RegisterItemsi_10:
	mov eax, ebx
	test ebx, ebx
	js _Z16CG_RegisterItemsi_40
_Z16CG_RegisterItemsi_70:
	sar eax, 0x2
	movsx eax, byte [ebp+eax-0x88]
	cmp eax, 0x39
	jle _Z16CG_RegisterItemsi_50
	sub eax, 0x57
	mov ecx, ebx
	and ecx, 0x3
	sar eax, cl
	test al, 0x1
	jz _Z16CG_RegisterItemsi_60
_Z16CG_RegisterItemsi_20:
	mov [esp+0x4], ebx
	mov [esp], esi
	call _Z17CG_RegisterWeaponii
	add ebx, 0x1
	cmp ebx, 0x80
	jnz _Z16CG_RegisterItemsi_10
_Z16CG_RegisterItemsi_30:
	add esp, 0x90
	pop ebx
	pop esi
	pop ebp
	ret
_Z16CG_RegisterItemsi_40:
	lea eax, [ebx+0x3]
	jmp _Z16CG_RegisterItemsi_70
	add [eax], al


;CG_ActionSlotUp_f()
_Z17CG_ActionSlotUp_fv:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov edx, cgArray
	mov ecx, [edx+0x24]
	test ecx, ecx
	jz _Z17CG_ActionSlotUp_fv_10
	mov eax, [edx+0x46228]
	sub eax, 0x3
	cmp eax, 0x1
	jbe _Z17CG_ActionSlotUp_fv_10
	test dword [edx+0x46148], 0xc00
	jz _Z17CG_ActionSlotUp_fv_20
_Z17CG_ActionSlotUp_fv_10:
	leave
	ret
_Z17CG_ActionSlotUp_fv_20:
	cmp byte [edx+0x4614c], 0x0
	js _Z17CG_ActionSlotUp_fv_10
	test byte [ecx+0x20], 0x4
	jz _Z17CG_ActionSlotUp_fv_10
	lea eax, [ebp-0xc]
	call _Z11ActionParmsPi
	leave
	ret


;CG_BulletHitEvent(int, int, int, int, float const*, float const*, float const*, int, int, unsigned char, int, int)
_Z17CG_BulletHitEventiiiiPKfS0_S0_iihii:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x6c
	mov edi, [ebp+0x8]
	mov esi, [ebp+0xc]
	mov ebx, [ebp+0x10]
	movzx eax, byte [ebp+0x2c]
	mov [ebp-0x39], al
	mov eax, sv_clientSideBullets
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_10
	lea eax, [ebx*4]
	mov edx, ebx
	shl edx, 0x5
	sub edx, eax
	mov eax, edx
	shl eax, 0x4
	add edx, eax
	mov eax, edx
	add eax, cg_entitiesArray
	jz _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_20
	cmp dword [eax+0xd0], 0x1
	jz _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_30
_Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_20:
	xor eax, eax
_Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_60:
	test eax, eax
	jnz _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_40
_Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_10:
	mov eax, [ebp+0x34]
	mov [esp+0x20], eax
	mov eax, [ebp+0x30]
	mov [esp+0x1c], eax
	movzx eax, byte [ebp-0x39]
	mov [esp+0x18], eax
	mov eax, [ebp+0x28]
	mov [esp+0x14], eax
	mov eax, [ebp+0x24]
	mov [esp+0x10], eax
	mov eax, [ebp+0x20]
	mov [esp+0xc], eax
	mov eax, [ebp+0x1c]
	mov [esp+0x8], eax
	mov eax, [ebp+0x18]
	mov [esp+0x4], eax
	mov eax, [ebp+0x14]
	mov [esp], eax
	mov ecx, ebx
	mov edx, esi
	mov eax, edi
	call _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_40:
	lea ecx, [ebp-0x30]
	mov eax, scr_const
	movzx eax, word [eax+0x90]
	mov [esp], eax
	mov edx, esi
	mov eax, edi
	call _Z15CalcMuzzlePointiiPfj
	test eax, eax
	jz _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_10
	mov eax, [ebp+0x1c]
	movss xmm3, dword [eax]
	subss xmm3, [ebp-0x30]
	movss [ebp-0x24], xmm3
	movss xmm1, dword [eax+0x4]
	subss xmm1, [ebp-0x2c]
	movss [ebp-0x20], xmm1
	movss xmm0, dword [eax+0x8]
	subss xmm0, [ebp-0x28]
	movss [ebp-0x1c], xmm0
	movaps xmm2, xmm3
	mulss xmm2, xmm3
	mulss xmm1, xmm1
	addss xmm2, xmm1
	mulss xmm0, xmm0
	addss xmm2, xmm0
	sqrtss xmm2, xmm2
	movaps xmm0, xmm2
	xorps xmm0, [_data16_80000000]
	ucomiss xmm0, [_float_0_00000000]
	jb _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_50
	movss xmm1, dword [_float_1_00000000]
_Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_70:
	mulss xmm3, xmm1
	movss [ebp-0x24], xmm3
	movaps xmm0, xmm1
	mulss xmm0, [ebp-0x20]
	movss [ebp-0x20], xmm0
	mulss xmm1, [ebp-0x1c]
	movss [ebp-0x1c], xmm1
	mov eax, [ebp+0x34]
	mov [esp+0x20], eax
	mov eax, [ebp+0x30]
	mov [esp+0x1c], eax
	movzx eax, byte [ebp-0x39]
	or al, 0x4
	movzx eax, al
	mov [esp+0x18], eax
	mov eax, [ebp+0x28]
	mov [esp+0x14], eax
	mov eax, [ebp+0x24]
	mov [esp+0x10], eax
	lea eax, [ebp-0x24]
	mov [esp+0xc], eax
	mov eax, [ebp+0x1c]
	mov [esp+0x8], eax
	mov eax, [ebp+0x18]
	mov [esp+0x4], eax
	mov eax, [ebp+0x14]
	mov [esp], eax
	mov ecx, ebx
	mov edx, esi
	mov eax, edi
	call _Z26CG_BulletHitEvent_InternaliiiiPKfS0_S0_iihii
	jmp _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_10
_Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_30:
	mov eax, 0x1
	jmp _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_60
_Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_50:
	movss xmm1, dword [_float_1_00000000]
	divss xmm1, xmm2
	jmp _Z17CG_BulletHitEventiiiiPKfS0_S0_iihii_70
	nop


;CG_HoldBreathInit(cg_s*)
_Z17CG_HoldBreathInitP4cg_s:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	mov dword [eax+0x504f8], 0xffffffff
	mov dword [eax+0x504fc], 0x0
	mov dword [eax+0x50500], 0x0
	mov dword [eax+0x50504], 0x0
	pop ebp
	ret
	add [eax], al


;CG_RegisterWeapon(int, int)
_Z17CG_RegisterWeaponii:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x5c
	mov eax, [ebp+0xc]
	mov [removeMeWhenMPStopsCrashingInHere], eax
	test eax, eax
	jnz _Z17CG_RegisterWeaponii_10
_Z17CG_RegisterWeaponii_20:
	add esp, 0x5c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z17CG_RegisterWeaponii_10:
	mov edx, eax
	mov ebx, eax
	shl ebx, 0x2
	shl eax, 0x6
	lea edi, [ebx+eax]
	add edi, cg_weaponsArray
	mov [esp], edx
	call _Z15BG_GetWeaponDefj
	mov [ebp-0x3c], eax
	mov eax, [edi+0x30]
	test eax, eax
	jnz _Z17CG_RegisterWeaponii_20
	call _Z20SCR_UpdateLoadScreenv
	mov dword [esp+0x8], 0x44
	mov dword [esp+0x4], 0x0
	mov [esp], edi
	call memset
	mov dword [edi+0x30], 0x1
	mov eax, ebx
	add eax, bg_itemlist
	mov [edi+0x34], eax
	mov dword [edi+0x28], 0xffffffff
	mov ecx, [ebp-0x3c]
	mov eax, [ecx+0xc]
	test eax, eax
	jz _Z17CG_RegisterWeaponii_30
	mov eax, [ecx+0x4c]
	test eax, eax
	jz _Z17CG_RegisterWeaponii_40
	mov word [ebp-0x28], 0x0
	mov eax, scr_const
	movzx eax, word [eax+0xa6]
	mov [ebp-0x20], ax
	mov byte [ebp-0x26], 0x0
	mov byte [ebp-0x1e], 0x0
	mov eax, [ecx+0x4c]
	mov [ebp-0x2c], eax
	mov eax, [ecx+0xc]
	mov [ebp-0x24], eax
	mov eax, ecx
	call _Z29CG_CreateWeaponViewModelXAnimP9WeaponDef
	mov [edi+0x2c], eax
	mov edx, [ebp+0x8]
	mov [esp+0x10], edx
	mov edx, [ebp+0xc]
	add edx, 0x400
	mov [esp+0xc], edx
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	lea eax, [ebp-0x2c]
	mov [esp], eax
	call _Z20Com_ClientDObjCreateP11DObjModel_stP11XAnimTree_sii
	mov [ebp-0x40], eax
	mov [edi], eax
	mov ecx, [ebp-0x3c]
	mov eax, [ecx+0x4c]
	mov [edi+0x4], eax
	mov byte [edi+0x14], 0x0
	xor esi, esi
	mov [esp+0x8], esi
	mov dword [esp+0x4], 0x0
	mov eax, [edi+0x2c]
	mov [esp], eax
	call _Z25XAnimClearTreeGoalWeightsP11XAnimTree_sjf
	mov dword [esp+0x1c], 0x0
	mov dword [esp+0x18], 0x1
	mov dword [esp+0x14], 0x0
	mov ebx, 0x3f800000
	mov [esp+0x10], ebx
	mov [esp+0xc], esi
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x0
	mov eax, [ebp-0x40]
	mov [esp], eax
	call _Z18XAnimSetGoalWeightP6DObj_sjfffjji
	mov dword [esp+0x1c], 0x0
	mov dword [esp+0x18], 0x1
	mov dword [esp+0x14], 0x0
	mov [esp+0x10], ebx
	mov [esp+0xc], esi
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x1
	mov edx, [ebp-0x40]
	mov [esp], edx
	call _Z18XAnimSetGoalWeightP6DObj_sjfffjji
	mov ecx, [ebp-0x3c]
	mov eax, [ecx+0xd0]
	cmp byte [eax], 0x0
	jnz _Z17CG_RegisterWeaponii_50
	mov esi, ecx
	jmp _Z17CG_RegisterWeaponii_60
_Z17CG_RegisterWeaponii_80:
	movzx ecx, byte [ebp-0x19]
	mov edx, ecx
	shr dl, 0x5
	movzx edx, dl
	and ecx, 0x1f
	mov eax, 0x80000000
	shr eax, cl
	or [edi+edx*4+0x18], eax
_Z17CG_RegisterWeaponii_90:
	add esi, 0x2
	mov eax, [ebp-0x3c]
	add eax, 0x10
	cmp eax, esi
	jz _Z17CG_RegisterWeaponii_70
_Z17CG_RegisterWeaponii_60:
	cmp word [esi+0xd8], 0x0
	jz _Z17CG_RegisterWeaponii_70
	mov byte [ebp-0x19], 0xfe
	lea eax, [ebp-0x19]
	mov [esp+0x8], eax
	movzx eax, word [esi+0xd8]
	mov [esp+0x4], eax
	mov edx, [ebp-0x40]
	mov [esp], edx
	call _Z16DObjGetBoneIndexPK6DObj_sjPh
	test eax, eax
	jnz _Z17CG_RegisterWeaponii_80
	mov ecx, [ebp-0x3c]
	mov ebx, [ecx]
	movzx eax, word [esi+0xd8]
	mov [esp], eax
	call _Z18SL_ConvertToStringj
	mov [esp+0xc], ebx
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_cg_registerweapo2
	mov dword [esp], 0xe
	call _Z14Com_PrintErroriPKcz
	jmp _Z17CG_RegisterWeaponii_90
_Z17CG_RegisterWeaponii_70:
	lea eax, [edi+0x18]
	mov [esp+0x4], eax
	mov eax, [ebp-0x40]
	mov [esp], eax
	call _Z19DObjSetHidePartBitsP6DObj_sPKj
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x3d4ccccd
	mov eax, [edi]
	mov [esp], eax
	call _Z20DObjUpdateClientInfoP6DObj_sfh
	mov ecx, [ebp-0x3c]
_Z17CG_RegisterWeaponii_30:
	mov edx, [ecx+0x30c]
	test edx, edx
	jz _Z17CG_RegisterWeaponii_100
	mov eax, cgMedia
	mov ecx, [ebp+0xc]
	mov [eax+ecx*4+0x34], edx
_Z17CG_RegisterWeaponii_150:
	mov ecx, [ebp-0x3c]
	mov eax, [ecx+0x4]
	mov [esp], eax
	call _Z22SEH_StringEd_GetStringPKc
	mov [edi+0x38], eax
	test eax, eax
	jz _Z17CG_RegisterWeaponii_110
_Z17CG_RegisterWeaponii_210:
	mov ecx, [ebp-0x3c]
	mov eax, [ecx+0xd4]
	mov [esp], eax
	call _Z22SEH_StringEd_GetStringPKc
	mov [edi+0x3c], eax
	test eax, eax
	jz _Z17CG_RegisterWeaponii_120
_Z17CG_RegisterWeaponii_180:
	mov ecx, [ebp-0x3c]
	mov eax, [ecx+0x8]
	mov [esp], eax
	call _Z22SEH_StringEd_GetStringPKc
	mov [edi+0x40], eax
	test eax, eax
	jnz _Z17CG_RegisterWeaponii_20
	mov eax, loc_warnings
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z17CG_RegisterWeaponii_130
	mov eax, loc_warningsAsErrors
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z17CG_RegisterWeaponii_140
	mov edx, [ebp-0x3c]
	mov eax, [edx+0x8]
	mov [esp+0xc], eax
	mov eax, [edx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_weapon_s_could_n
	mov dword [esp], 0x7
	call _Z9Com_Error11errorParm_tPKcz
_Z17CG_RegisterWeaponii_130:
	mov edx, [ebp-0x3c]
	mov eax, [edx+0x8]
	mov [edi+0x40], eax
	jmp _Z17CG_RegisterWeaponii_20
_Z17CG_RegisterWeaponii_40:
	mov ecx, [ebp-0x3c]
	jmp _Z17CG_RegisterWeaponii_30
_Z17CG_RegisterWeaponii_100:
	mov eax, cgMedia
	mov edx, [ebp+0xc]
	mov dword [eax+edx*4+0x34], 0x0
	jmp _Z17CG_RegisterWeaponii_150
_Z17CG_RegisterWeaponii_120:
	mov eax, loc_warnings
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z17CG_RegisterWeaponii_160
	mov eax, loc_warningsAsErrors
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z17CG_RegisterWeaponii_170
	mov edx, [ebp-0x3c]
	mov eax, [edx+0xd4]
	mov [esp+0xc], eax
	mov eax, [edx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_weapon_s_could_n1
	mov dword [esp], 0x7
	call _Z9Com_Error11errorParm_tPKcz
_Z17CG_RegisterWeaponii_160:
	mov edx, [ebp-0x3c]
	mov eax, [edx+0xd4]
	mov [edi+0x3c], eax
	jmp _Z17CG_RegisterWeaponii_180
_Z17CG_RegisterWeaponii_110:
	mov eax, loc_warnings
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z17CG_RegisterWeaponii_190
	mov eax, loc_warningsAsErrors
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z17CG_RegisterWeaponii_200
	mov edx, [ebp-0x3c]
	mov eax, [edx+0x4]
	mov [esp+0xc], eax
	mov eax, [edx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_weapon_s_could_n2
	mov dword [esp], 0x7
	call _Z9Com_Error11errorParm_tPKcz
_Z17CG_RegisterWeaponii_190:
	mov edx, [ebp-0x3c]
	mov eax, [edx+0x4]
	mov [edi+0x38], eax
	jmp _Z17CG_RegisterWeaponii_210
_Z17CG_RegisterWeaponii_50:
	mov dword [esp+0x1c], 0x0
	mov dword [esp+0x18], 0x1
	mov dword [esp+0x14], 0x0
	mov [esp+0x10], esi
	mov [esp+0xc], esi
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x20
	mov eax, [ebp-0x40]
	mov [esp], eax
	call _Z18XAnimSetGoalWeightP6DObj_sjfffjji
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x20
	mov eax, [edi+0x2c]
	mov [esp], eax
	call _Z12XAnimSetTimeP11XAnimTree_sjf
	mov esi, [ebp-0x3c]
	jmp _Z17CG_RegisterWeaponii_60
_Z17CG_RegisterWeaponii_140:
	mov ecx, [ebp-0x3c]
	mov eax, [ecx+0x8]
	mov [esp+0xc], eax
	mov eax, [ecx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_warning_weapon_s
	mov dword [esp], 0x11
	call _Z16Com_PrintWarningiPKcz
	jmp _Z17CG_RegisterWeaponii_130
_Z17CG_RegisterWeaponii_170:
	mov ecx, [ebp-0x3c]
	mov eax, [ecx+0xd4]
	mov [esp+0xc], eax
	mov eax, [ecx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_warning_weapon_s1
	mov dword [esp], 0x11
	call _Z16Com_PrintWarningiPKcz
	jmp _Z17CG_RegisterWeaponii_160
_Z17CG_RegisterWeaponii_200:
	mov ecx, [ebp-0x3c]
	mov eax, [ecx+0x4]
	mov [esp+0xc], eax
	mov eax, [ecx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_warning_weapon_s2
	mov dword [esp], 0x11
	call _Z16Com_PrintWarningiPKcz
	jmp _Z17CG_RegisterWeaponii_190
	add [eax], al


;CG_SetupWeaponDef(int)
_Z17CG_SetupWeaponDefi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x221c
	lea eax, [ebp-0x214]
	mov dword [esp+0x8], 0x1fc
	mov dword [esp+0x4], 0x0
	mov [esp], eax
	call memset
	mov dword [esp+0x4], 0x8d2
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z18CL_GetConfigStringii
	mov [esp+0x4], eax
	lea ebx, [ebp-0x2214]
	mov [esp], ebx
	call strcpy
	mov [ebp-0x214], ebx
	mov edi, 0x1
	mov edx, ebx
	movzx eax, byte [ebp-0x2214]
_Z17CG_SetupWeaponDefi_60:
	test al, al
	jnz _Z17CG_SetupWeaponDefi_10
_Z17CG_SetupWeaponDefi_70:
	test edi, edi
	jg _Z17CG_SetupWeaponDefi_20
	add esp, 0x221c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z17CG_SetupWeaponDefi_20:
	xor ebx, ebx
_Z17CG_SetupWeaponDefi_40:
	mov esi, [ebp+ebx*4-0x214]
	mov dword [esp+0x4], 0x0
	mov [esp], esi
	call _Z24BG_GetWeaponIndexForNamePKcPFvjE
	add ebx, 0x1
	cmp eax, ebx
	jz _Z17CG_SetupWeaponDefi_30
	mov [esp+0x8], esi
	mov dword [esp+0x4], _cstring_weapon_index_mis
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
_Z17CG_SetupWeaponDefi_30:
	cmp edi, ebx
	jnz _Z17CG_SetupWeaponDefi_40
	add esp, 0x221c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z17CG_SetupWeaponDefi_10:
	cmp al, 0x20
	jz _Z17CG_SetupWeaponDefi_50
	add edx, 0x1
	movzx eax, byte [edx]
	jmp _Z17CG_SetupWeaponDefi_60
_Z17CG_SetupWeaponDefi_50:
	mov byte [edx], 0x0
	add edx, 0x1
	movzx eax, byte [edx]
	test al, al
	jz _Z17CG_SetupWeaponDefi_70
	cmp al, 0x20
	jz _Z17CG_SetupWeaponDefi_60
	cmp edi, 0x7e
	jg _Z17CG_SetupWeaponDefi_20
	mov [ebp+edi*4-0x214], edx
	add edi, 0x1
	movzx eax, byte [edx]
	jmp _Z17CG_SetupWeaponDefi_60
	nop
	add [eax], al


;CG_AddPlayerWeapon(int, GfxScaledPlacement const*, playerState_s const*, centity_s*, int)
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x14c
	mov eax, [ebp+0x14]
	mov edx, [eax+0xcc]
	mov ebx, cgArray
	mov eax, [ebx+0x24]
	test byte [eax+0x20], 0x6
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_10
	cmp edx, [eax+0xe8]
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_20
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_10:
	xor eax, eax
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_250:
	test eax, eax
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_30
	mov eax, [ebx+0x46138]
	test eax, eax
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_40
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_30:
	mov byte [ebp-0x135], 0x0
	mov eax, [ebp+0x10]
	test eax, eax
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_50
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_100:
	mov edx, [ebp+0x10]
	mov [esp], edx
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	mov [ebp-0x134], eax
	mov dword [ebp-0x130], 0x1
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_110:
	mov eax, [ebp-0x134]
	test eax, eax
	jle _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_60
	mov ecx, [ebp+0x14]
	test dword [ecx+0xd4], 0x300
	jnz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_60
	mov eax, [ebp-0x134]
	shl eax, 0x6
	mov edx, [ebp-0x134]
	lea edi, [eax+edx*4]
	add edi, cg_weaponsArray
	mov eax, [ebp-0x130]
	test eax, eax
	jnz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_70
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_240:
	mov eax, [ebp+0x14]
	cmp byte [eax+0x1c1], 0x0
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_60
	cmp byte [ebp-0x135], 0x0
	jnz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_80
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_120:
	mov edx, [ebp+0x14]
	mov byte [edx+0x1c1], 0x0
	mov eax, [ebp+0x18]
	test eax, eax
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_60
	mov eax, [ebp-0x130]
	test eax, eax
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_90
	mov eax, scr_const
	movzx esi, word [eax+0x90]
	mov ebx, [ebp-0x134]
	add ebx, 0x400
	mov ecx, [ebp-0x134]
	mov [esp], ecx
	call _Z15BG_GetWeaponDefj
	mov eax, [eax+0x14c]
	test eax, eax
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_60
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_260:
	mov [esp+0xc], esi
	mov [esp+0x8], ebx
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z19CG_PlayBoltedEffectiPK11FxEffectDefij
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_60:
	add esp, 0x14c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_40:
	mov byte [ebp-0x135], 0x1
	mov eax, [ebp+0x10]
	test eax, eax
	jnz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_100
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_50:
	mov edx, [ebp+0x14]
	mov edx, [edx+0x190]
	mov [ebp-0x134], edx
	mov dword [ebp-0x130], 0x0
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_110
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_80:
	mov edx, [ebp-0x130]
	test edx, edx
	jnz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_120
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_60
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_70:
	mov esi, cgArray
	lea ebx, [esi+0x50460]
	mov [esp+0x4], ebx
	mov ecx, [ebp+0xc]
	mov [esp], ecx
	call _Z14UnitQuatToAxisPKfPA3_f
	mov edx, [ebp+0xc]
	add edx, 0x10
	mov ecx, [ebp+0xc]
	mov eax, [ecx+0x10]
	mov [esi+0x50484], eax
	mov eax, [edx+0x4]
	mov [esi+0x50488], eax
	mov eax, [edx+0x8]
	mov [esi+0x5048c], eax
	mov eax, [edi]
	test eax, eax
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_130
	mov [esp], eax
	call _Z13DObjClearSkelPK6DObj_s
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_130:
	lea eax, [esi+0xfd25c]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z12AxisToAnglesPA3_KfPf
	mov eax, [esi+0x50484]
	mov [esi+0xfd250], eax
	mov eax, [esi+0x50488]
	mov [esi+0xfd254], eax
	mov eax, [esi+0x5048c]
	mov [esi+0xfd258], eax
	mov eax, [ebp+0x18]
	test eax, eax
	jnz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_140
	mov ebx, esi
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_300:
	mov eax, [ebx+0x50500]
	test eax, eax
	jle _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_150
	sub eax, [ebx+0x46124]
	mov [ebx+0x50500], eax
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_150:
	test byte [ebx+0x4614c], 0x4
	jnz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_160
	mov eax, [ebx+0x504f8]
	test eax, eax
	js _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_170
	mov edx, eax
	add edx, [ebx+0x46124]
	mov [ebx+0x504f8], edx
	mov eax, player_breath_hold_time
	mov eax, [eax]
	movss xmm0, dword [eax+0xc]
	mulss xmm0, [_float_1000_00000000]
	cvttss2si eax, xmm0
	cmp edx, eax
	jg _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_180
	mov ecx, [ebx+0x50500]
	test ecx, ecx
	jle _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_190
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_170:
	mov dword [ebx+0x504f8], 0xffffffff
	mov dword [ebx+0x504fc], 0x0
	pxor xmm0, xmm0
	movss [ebx+0x50504], xmm0
	movaps xmm1, xmm0
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_330:
	movss [ebp-0x12c], xmm1
	ucomiss xmm1, xmm0
	jp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_200
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_210
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_200:
	xor ebx, ebx
	mov esi, cgsArray
	add esi, 0xd6c
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_220
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_230:
	movss xmm0, dword [esi-0x4]
	movss xmm1, dword [_float_1_00000000]
	subss xmm0, xmm1
	mulss xmm0, [ebp-0x12c]
	addss xmm0, xmm1
	movss [ebp+ebx*4-0x124], xmm0
	add ebx, 0x1
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_220:
	call _Z22SND_GetEntChannelCountv
	add esi, 0x4
	cmp ebx, eax
	jl _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_230
	mov dword [esp+0x8], 0x0
	lea eax, [ebp-0x124]
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call _Z21SND_SetChannelVolumesiPKfi
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_240
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_20:
	mov eax, 0x1
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_250
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_90:
	mov eax, scr_const
	movzx esi, word [eax+0x90]
	mov edx, [ebp+0x14]
	mov ebx, [edx+0xcc]
	mov ecx, [ebp-0x134]
	mov [esp], ecx
	call _Z15BG_GetWeaponDefj
	mov eax, [eax+0x150]
	test eax, eax
	jnz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_260
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_60
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_210:
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x1
	call _Z28SND_DeactivateChannelVolumesii
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_240
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_140:
	mov edx, [ebp+0x10]
	add edx, 0x1c
	mov ecx, [ebp+0x10]
	mov eax, [ecx+0x1c]
	mov [ebp-0x24], eax
	mov eax, [edx+0x4]
	mov [ebp-0x20], eax
	movss xmm0, dword [edx+0x8]
	addss xmm0, [ecx+0x118]
	movss [ebp-0x1c], xmm0
	mov dword [esp+0x10], 0x41a00000
	mov dword [esp+0xc], 0x41800000
	mov eax, [ecx+0x5c]
	mov [esp+0x8], eax
	mov eax, [ecx+0x10c]
	mov [esp+0x4], eax
	lea ebx, [ebp-0x24]
	mov [esp], ebx
	call _Z17AddLeanToPositionPfffff
	mov dword [esp+0x14], 0x0
	mov [esp+0x10], ebx
	mov dword [esp+0xc], 0x3
	mov dword [esp+0x8], 0x3ff
	lea eax, [esi+0xfd234]
	mov [esp+0x4], eax
	mov eax, [edi]
	mov [esp], eax
	call _Z16R_AddDObjToScenePK6DObj_sPK7cpose_tjjPff
	mov eax, [ebp-0x134]
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov esi, eax
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z28CG_LookingThroughNightVisioni
	test al, al
	jnz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_270
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_340:
	xor edx, edx
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_350:
	mov eax, cg_laserForceOn
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jnz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_280
	test dl, dl
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_290
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_280:
	mov dword [esp+0x10], 0x1
	mov eax, cgArray
	lea edx, [eax+0x49310]
	mov [esp+0xc], edx
	add eax, 0xfd234
	mov [esp+0x8], eax
	mov eax, [edi]
	mov [esp+0x4], eax
	mov ecx, [ebp+0x14]
	mov [esp], ecx
	call _Z12CG_Laser_AddP9centity_sP6DObj_sP7cpose_tPKf14LaserOwnerEnum
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_290:
	mov eax, [ebp+0x10]
	movss xmm1, dword [eax+0x650]
	mov ebx, cgArray
	movss xmm0, dword [esi+0x870]
	subss xmm0, xmm1
	mulss xmm0, [eax+0xf4]
	addss xmm1, xmm0
	movss [ebx+0x49328], xmm1
	movss xmm1, dword [eax+0x654]
	movss xmm0, dword [esi+0x874]
	subss xmm0, xmm1
	mulss xmm0, [eax+0xf4]
	addss xmm1, xmm0
	movss [ebx+0x4932c], xmm1
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_300
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_160:
	cvtsi2ss xmm0, dword [ebx+0x46124]
	mulss xmm0, [_float_0_00100000]
	movss [esp+0xc], xmm0
	mov eax, player_breath_snd_lerp
	mov eax, [eax]
	mov eax, [eax+0xc]
	mov [esp+0x8], eax
	mov eax, [ebx+0x50504]
	mov [esp+0x4], eax
	mov dword [esp], 0x3f800000
	call _Z9DiffTrackffff
	fstp dword [ebx+0x50504]
	mov eax, [ebx+0x504f8]
	test eax, eax
	js _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_310
	cmp eax, [ebx+0x504fc]
	jg _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_320
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_370:
	mov ebx, cgArray
	mov eax, [ebx+0x504f8]
	add eax, [ebx+0x46124]
	mov [ebx+0x504f8], eax
	pxor xmm0, xmm0
	movss xmm1, dword [ebx+0x50504]
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_330
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_270:
	mov eax, [esi+0x514]
	test eax, eax
	jz _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_340
	mov edx, 0x1
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_350
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_310:
	mov dword [ebx+0x504f8], 0x0
	mov esi, [ebx+0x50500]
	test esi, esi
	jle _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_360
	mov dword [ebx+0x504fc], 0x0
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_370
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_180:
	mov eax, cgMedia
	mov eax, [eax+0x1060]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z23CG_PlayClientSoundAliasiP16snd_alias_list_t
	mov ebx, cgArray
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_170
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_320:
	mov eax, cgMedia
	mov eax, [eax+0x1054]
	mov [esp+0x4], eax
	mov ecx, [ebp+0x8]
	mov [esp], ecx
	call _Z23CG_PlayClientSoundAliasiP16snd_alias_list_t
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_370
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_190:
	mov eax, cgMedia
	mov eax, [eax+0x105c]
	mov [esp+0x4], eax
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z23CG_PlayClientSoundAliasiP16snd_alias_list_t
	mov eax, player_breath_snd_delay
	mov eax, [eax]
	movss xmm0, dword [_float_1000_00000000]
	mulss xmm0, [eax+0xc]
	cvttss2si eax, xmm0
	mov [ebx+0x50500], eax
	mov ebx, cgArray
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_170
_Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_360:
	mov eax, cgMedia
	mov eax, [eax+0x1058]
	mov [esp+0x4], eax
	mov edx, [ebp+0x8]
	mov [esp], edx
	call _Z23CG_PlayClientSoundAliasiP16snd_alias_list_t
	lea edx, [ebx+0x504fc]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z18SND_GetKnownLengthiPi
	mov eax, player_breath_snd_delay
	mov eax, [eax]
	movss xmm0, dword [_float_1000_00000000]
	mulss xmm0, [eax+0xc]
	cvttss2si eax, xmm0
	mov [ebx+0x50500], eax
	jmp _Z18CG_AddPlayerWeaponiPK18GfxScaledPlacementPK13playerState_sP9centity_si_370
	nop


;CG_MeleeBloodEvent(int, centity_s const*, int)
_Z18CG_MeleeBloodEventiPK9centity_si:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov eax, [ebp+0xc]
	mov eax, [eax+0x190]
	lea ecx, [eax+0x400]
	mov edx, eax
	shl edx, 0x6
	lea eax, [edx+eax*4]
	mov edx, cg_weaponsArray
	mov eax, [edx+eax+0x10]
	test eax, eax
	jz _Z18CG_MeleeBloodEventiPK9centity_si_10
	mov eax, cg_blood
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jnz _Z18CG_MeleeBloodEventiPK9centity_si_20
	mov eax, scr_const
	movzx eax, word [eax+0xa0]
	mov [esp+0xc], eax
	mov [esp+0x8], ecx
	mov eax, cgMedia
	mov eax, [eax+0x2760]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z19CG_PlayBoltedEffectiPK11FxEffectDefij
_Z18CG_MeleeBloodEventiPK9centity_si_10:
	leave
	ret
_Z18CG_MeleeBloodEventiPK9centity_si_20:
	mov eax, scr_const
	movzx eax, word [eax+0xa0]
	mov [esp+0xc], eax
	mov [esp+0x8], ecx
	mov eax, cgMedia
	mov eax, [eax+0x275c]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z19CG_PlayBoltedEffectiPK11FxEffectDefij
	leave
	ret


;CG_OutOfAmmoChange(int)
_Z18CG_OutOfAmmoChangei:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov esi, cgArray
	mov eax, [esi+0x24]
	test eax, eax
	jz _Z18CG_OutOfAmmoChangei_10
	cmp dword [esi+0x46140], 0x6
	jg _Z18CG_OutOfAmmoChangei_10
	mov edi, [esi+0x46224]
	test edi, edi
	jnz _Z18CG_OutOfAmmoChangei_20
	mov ebx, [esi+0x50374]
	test ebx, ebx
	jz _Z18CG_OutOfAmmoChangei_20
	mov edx, ebx
	sar edx, 0x5
	mov ecx, ebx
	and ecx, 0x1f
	mov eax, 0x1
	shl eax, cl
	test [esi+edx*4+0x46698], eax
	jnz _Z18CG_OutOfAmmoChangei_30
_Z18CG_OutOfAmmoChangei_20:
	mov [esp], edi
	call _Z15BG_GetWeaponDefj
	mov esi, eax
	mov eax, [eax+0x508]
	test eax, eax
	jnz _Z18CG_OutOfAmmoChangei_10
	cmp dword [esi+0x13c], 0x3
	jz _Z18CG_OutOfAmmoChangei_40
_Z18CG_OutOfAmmoChangei_70:
	mov ecx, 0x1
	mov edx, 0x1
	mov eax, [ebp+0x8]
	call _Z16CycleWeapPrimaryiii
	test al, al
	jnz _Z18CG_OutOfAmmoChangei_10
	cmp dword [esi+0x13c], 0x3
	jz _Z18CG_OutOfAmmoChangei_50
_Z18CG_OutOfAmmoChangei_10:
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z18CG_OutOfAmmoChangei_40:
	mov edi, [esi+0x540]
	mov ebx, edi
	sar ebx, 0x5
	mov edx, cgArray
	add edx, 0x46698
	mov ecx, edi
	and ecx, 0x1f
	mov eax, 0x1
	shl eax, cl
	test [edx+ebx*4], eax
	jnz _Z18CG_OutOfAmmoChangei_60
	mov eax, [esi+0x53c]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_player_is_holdin
	mov dword [esp], 0xe
	call _Z14Com_PrintErroriPKcz
	mov dword [esp+0x4], 0x0
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20CG_SelectWeaponIndexij
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z18CG_OutOfAmmoChangei_30:
	mov [esp+0x4], ebx
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20CG_SelectWeaponIndexij
	jmp _Z18CG_OutOfAmmoChangei_10
_Z18CG_OutOfAmmoChangei_60:
	mov [esp+0x4], edi
	mov eax, cgArray
	add eax, 0x4613c
	mov [esp], eax
	call _Z13BG_WeaponAmmoPK13playerState_si
	test eax, eax
	jz _Z18CG_OutOfAmmoChangei_70
_Z18CG_OutOfAmmoChangei_50:
	mov eax, [esi+0x540]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20CG_SelectWeaponIndexij
	jmp _Z18CG_OutOfAmmoChangei_10
	nop


;CG_ActionSlotDown_f()
_Z19CG_ActionSlotDown_fv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov ebx, cgArray
	mov edx, [ebx+0x24]
	test edx, edx
	jz _Z19CG_ActionSlotDown_fv_10
	mov eax, [ebx+0x46228]
	sub eax, 0x3
	cmp eax, 0x1
	jbe _Z19CG_ActionSlotDown_fv_10
	test dword [ebx+0x46148], 0xc00
	jz _Z19CG_ActionSlotDown_fv_20
_Z19CG_ActionSlotDown_fv_10:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19CG_ActionSlotDown_fv_20:
	cmp byte [ebx+0x4614c], 0x0
	js _Z19CG_ActionSlotDown_fv_10
	test byte [edx+0x20], 0x4
	jz _Z19CG_ActionSlotDown_fv_10
	mov eax, [ebx+0x46128]
	sub eax, [ebx+0xfd754]
	cmp eax, 0xf9
	jle _Z19CG_ActionSlotDown_fv_10
	lea eax, [ebp-0x1c]
	call _Z11ActionParmsPi
	test al, al
	jz _Z19CG_ActionSlotDown_fv_10
	mov eax, [ebp-0x1c]
	mov edx, [ebx+eax*4+0x4673c]
	cmp edx, 0x2
	jz _Z19CG_ActionSlotDown_fv_30
	cmp edx, 0x3
	jz _Z19CG_ActionSlotDown_fv_40
	cmp edx, 0x1
	jz _Z19CG_ActionSlotDown_fv_50
_Z19CG_ActionSlotDown_fv_60:
	xor eax, eax
_Z19CG_ActionSlotDown_fv_90:
	mov ebx, cgArray
	mov edx, [ebx+0x46128]
	mov [ebx+0x504bc], edx
	test al, al
	jz _Z19CG_ActionSlotDown_fv_10
	mov [ebx+0xfd754], edx
	test dword [ebx+0x461ec], 0x300
	jz _Z19CG_ActionSlotDown_fv_10
	mov eax, [ebp-0x1c]
	cmp dword [ebx+eax*4+0x4673c], 0x1
	jnz _Z19CG_ActionSlotDown_fv_10
	or dword [ebx+0xfd750], 0x20
	jmp _Z19CG_ActionSlotDown_fv_10
_Z19CG_ActionSlotDown_fv_30:
	mov eax, [ebx+0x46228]
	sub eax, 0x2
	cmp eax, 0x2
	jbe _Z19CG_ActionSlotDown_fv_60
	mov eax, [ebx+0x5036c]
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov eax, [eax+0x540]
	test eax, eax
	jnz _Z19CG_ActionSlotDown_fv_70
	lea esi, [ebx+0x4613c]
	mov dword [esp+0xc], 0x1
	mov dword [esp+0x8], 0x1
	mov dword [esp+0x4], 0x1
	mov eax, [ebx+0x5036c]
	mov [esp], eax
	xor ecx, ecx
	mov edx, esi
	xor eax, eax
	call _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh
	test eax, eax
	jnz _Z19CG_ActionSlotDown_fv_80
	mov dword [esp+0xc], 0x1
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x1
	mov eax, [ebx+0x5036c]
	mov [esp], eax
	xor ecx, ecx
	mov edx, esi
	xor eax, eax
	call _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh
	test eax, eax
	jz _Z19CG_ActionSlotDown_fv_60
_Z19CG_ActionSlotDown_fv_80:
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov eax, [eax+0x540]
	test eax, eax
	jz _Z19CG_ActionSlotDown_fv_60
_Z19CG_ActionSlotDown_fv_70:
	mov [esp+0x4], eax
	mov dword [esp], 0x0
	call _Z20CG_SelectWeaponIndexij
	mov eax, 0x1
	jmp _Z19CG_ActionSlotDown_fv_90
_Z19CG_ActionSlotDown_fv_50:
	mov edi, [ebx+eax*4+0x4674c]
	cmp edi, [ebx+0x5036c]
	jz _Z19CG_ActionSlotDown_fv_100
	mov eax, edi
	sar eax, 0x5
	mov ecx, edi
	and ecx, 0x1f
	shl edx, cl
	test [ebx+eax*4+0x46698], edx
	jz _Z19CG_ActionSlotDown_fv_60
	cmp edi, [ebx+0x46224]
	jz _Z19CG_ActionSlotDown_fv_60
	mov [esp+0x4], edi
	mov dword [esp], 0x0
	call _Z20CG_SelectWeaponIndexij
	mov eax, 0x1
	jmp _Z19CG_ActionSlotDown_fv_90
_Z19CG_ActionSlotDown_fv_40:
	or dword [ebx+0xfd750], 0x40000
	mov eax, 0x1
	jmp _Z19CG_ActionSlotDown_fv_90
_Z19CG_ActionSlotDown_fv_100:
	mov esi, [ebx+0x50374]
	cmp edi, esi
	jz _Z19CG_ActionSlotDown_fv_110
	mov eax, esi
	sar eax, 0x5
	mov ecx, esi
	and ecx, 0x1f
	shl edx, cl
	test [ebx+eax*4+0x46698], edx
	jnz _Z19CG_ActionSlotDown_fv_120
_Z19CG_ActionSlotDown_fv_110:
	xor ecx, ecx
	mov edx, 0x1
	xor eax, eax
	call _Z16CycleWeapPrimaryiii
	jmp _Z19CG_ActionSlotDown_fv_90
_Z19CG_ActionSlotDown_fv_120:
	mov [esp+0x4], esi
	mov dword [esp], 0x0
	call _Z20CG_SelectWeaponIndexij
	mov eax, 0x1
	jmp _Z19CG_ActionSlotDown_fv_90


;CG_EjectWeaponBrass(int, entityState_s const*, int)
_Z19CG_EjectWeaponBrassiPK13entityState_si:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov eax, [ebp+0x8]
	mov [ebp-0x1c], eax
	mov esi, [ebp+0xc]
	mov edi, [ebp+0x10]
	mov eax, cg_brass
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z19CG_EjectWeaponBrassiPK13entityState_si_10
	cmp dword [esi+0x4], 0x10
	jg _Z19CG_EjectWeaponBrassiPK13entityState_si_10
	mov ebx, [esi+0xc4]
	test ebx, ebx
	jz _Z19CG_EjectWeaponBrassiPK13entityState_si_10
	call _Z16BG_GetNumWeaponsv
	cmp ebx, eax
	jae _Z19CG_EjectWeaponBrassiPK13entityState_si_20
	mov edx, [esi]
	mov eax, cgArray
	mov eax, [eax+0x24]
	test byte [eax+0x20], 0x6
	jz _Z19CG_EjectWeaponBrassiPK13entityState_si_30
	cmp edx, [eax+0xe8]
	jz _Z19CG_EjectWeaponBrassiPK13entityState_si_40
_Z19CG_EjectWeaponBrassiPK13entityState_si_30:
	xor eax, eax
_Z19CG_EjectWeaponBrassiPK13entityState_si_120:
	mov ebx, eax
	mov eax, [esi+0xc4]
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov edx, [eax+0x214]
	test edx, edx
	jz _Z19CG_EjectWeaponBrassiPK13entityState_si_50
	mov ecx, [eax+0x218]
	test ecx, ecx
	jz _Z19CG_EjectWeaponBrassiPK13entityState_si_50
	cmp edi, 0x1b
	jz _Z19CG_EjectWeaponBrassiPK13entityState_si_60
_Z19CG_EjectWeaponBrassiPK13entityState_si_50:
	test bl, bl
	jz _Z19CG_EjectWeaponBrassiPK13entityState_si_70
	mov edx, [eax+0x20c]
_Z19CG_EjectWeaponBrassiPK13entityState_si_110:
	test edx, edx
	jz _Z19CG_EjectWeaponBrassiPK13entityState_si_10
	test bl, bl
	jz _Z19CG_EjectWeaponBrassiPK13entityState_si_80
_Z19CG_EjectWeaponBrassiPK13entityState_si_90:
	mov ecx, [esi+0xc4]
	add ecx, 0x400
_Z19CG_EjectWeaponBrassiPK13entityState_si_100:
	mov eax, scr_const
	movzx eax, word [eax+0x8a]
	mov [esp+0xc], eax
	mov [esp+0x8], ecx
	mov [esp+0x4], edx
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z19CG_PlayBoltedEffectiPK11FxEffectDefij
_Z19CG_EjectWeaponBrassiPK13entityState_si_10:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19CG_EjectWeaponBrassiPK13entityState_si_20:
	mov dword [ebp+0xc], _cstring_cg_ejectweaponbr
	mov dword [ebp+0x8], 0x2
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z9Com_Error11errorParm_tPKcz
_Z19CG_EjectWeaponBrassiPK13entityState_si_60:
	test bl, bl
	jnz _Z19CG_EjectWeaponBrassiPK13entityState_si_90
	mov edx, ecx
_Z19CG_EjectWeaponBrassiPK13entityState_si_80:
	mov ecx, [esi]
	jmp _Z19CG_EjectWeaponBrassiPK13entityState_si_100
_Z19CG_EjectWeaponBrassiPK13entityState_si_70:
	mov edx, [eax+0x210]
	jmp _Z19CG_EjectWeaponBrassiPK13entityState_si_110
_Z19CG_EjectWeaponBrassiPK13entityState_si_40:
	mov eax, 0x1
	jmp _Z19CG_EjectWeaponBrassiPK13entityState_si_120
	nop


;CG_GetViewDirection(int, int, float*, float*, float*)
_Z19CG_GetViewDirectioniiPfS_S_:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov ebx, [ebp+0xc]
	mov eax, [ebp+0x10]
	mov [ebp-0x1c], eax
	mov edi, [ebp+0x14]
	mov esi, [ebp+0x18]
	mov dword [esp], 0x0
	call _Z22CL_IsLocalClientActivei
	test al, al
	jz _Z19CG_GetViewDirectioniiPfS_S__10
	mov eax, cgArray
	mov edx, [eax+0x24]
	test byte [edx+0x20], 0x6
	jnz _Z19CG_GetViewDirectioniiPfS_S__20
_Z19CG_GetViewDirectioniiPfS_S__40:
	xor edx, edx
_Z19CG_GetViewDirectioniiPfS_S__50:
	test edx, edx
	jnz _Z19CG_GetViewDirectioniiPfS_S__30
_Z19CG_GetViewDirectioniiPfS_S__10:
	mov [ebp+0x14], esi
	mov [ebp+0x10], edi
	mov eax, [ebp-0x1c]
	mov [ebp+0xc], eax
	lea edx, [ebx*4]
	mov eax, ebx
	shl eax, 0x5
	sub eax, edx
	mov edx, eax
	shl edx, 0x4
	add eax, edx
	mov edx, cg_entitiesArray
	mov edx, [edx+eax+0x158]
	lea eax, [edx+edx*8]
	mov ecx, eax
	shl ecx, 0x4
	add eax, ecx
	lea eax, [edx+eax*2]
	mov edx, cgArray
	lea eax, [edx+eax*4+0xea318]
	mov [ebp+0x8], eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z12AngleVectorsPKfPfS1_S1_
_Z19CG_GetViewDirectioniiPfS_S__20:
	cmp ebx, [edx+0xe8]
	jnz _Z19CG_GetViewDirectioniiPfS_S__40
	mov edx, 0x1
	jmp _Z19CG_GetViewDirectioniiPfS_S__50
_Z19CG_GetViewDirectioniiPfS_S__30:
	mov [ebp+0x14], esi
	mov [ebp+0x10], edi
	mov edx, [ebp-0x1c]
	mov [ebp+0xc], edx
	add eax, 0x4613c
	mov [ebp+0x8], eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z25BG_GetPlayerViewDirectionPK13playerState_sPfS2_S2_


;CG_RandomEffectAxis(float const*, float*, float*)
_Z19CG_RandomEffectAxisPKfPfS1_:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4c
	mov esi, [ebp+0x8]
	mov ebx, [ebp+0xc]
	mov edi, [ebp+0x10]
	lea eax, [esi+0x4]
	mov [ebp-0x30], eax
	movss xmm1, dword [esi+0x4]
	xorps xmm1, [_data16_80000000]
	movss xmm3, dword [esi]
	lea eax, [esi+0x8]
	mov [ebp-0x2c], eax
	movss xmm4, dword [esi+0x8]
	xorps xmm4, [_data16_80000000]
	movss [ebp-0x20], xmm3
	movss [ebp-0x1c], xmm1
	movaps xmm0, xmm4
	mulss xmm0, xmm3
	movaps xmm2, xmm3
	mulss xmm2, [esi+0x4]
	addss xmm0, xmm2
	mulss xmm1, [esi+0x8]
	addss xmm0, xmm1
	xorps xmm0, [_data16_80000000]
	mulss xmm3, xmm0
	addss xmm3, xmm4
	movss [ebp-0x24], xmm3
	movaps xmm1, xmm0
	mulss xmm1, [esi+0x4]
	addss xmm1, [ebp-0x20]
	movss [ebp-0x20], xmm1
	mulss xmm0, [esi+0x8]
	addss xmm0, [ebp-0x1c]
	movss [ebp-0x1c], xmm0
	call _Z7randomfv
	fstp dword [ebp-0x3c]
	movss xmm0, dword [ebp-0x3c]
	mulss xmm0, [_float_360_00000000]
	movss [esp+0xc], xmm0
	lea eax, [ebp-0x24]
	mov [esp+0x8], eax
	mov [esp+0x4], esi
	mov [esp], ebx
	call _Z23RotatePointAroundVectorPfPKfS1_f
	movss xmm3, dword [ebx]
	lea edx, [ebx+0x4]
	movss xmm1, dword [ebx+0x4]
	lea eax, [ebx+0x8]
	movss xmm2, dword [ebx+0x8]
	movaps xmm0, xmm3
	mulss xmm0, xmm3
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	sqrtss xmm2, xmm0
	movaps xmm0, xmm2
	xorps xmm0, [_data16_80000000]
	ucomiss xmm0, [_float_0_00000000]
	jb _Z19CG_RandomEffectAxisPKfPfS1__10
	movss xmm1, dword [_float_1_00000000]
_Z19CG_RandomEffectAxisPKfPfS1__20:
	mulss xmm3, xmm1
	movss [ebx], xmm3
	movaps xmm0, xmm1
	mulss xmm0, [edx]
	movss [edx], xmm0
	mulss xmm1, [eax]
	movss [eax], xmm1
	mov eax, [ebp-0x30]
	movss xmm1, dword [eax]
	mulss xmm1, [ebx+0x8]
	mov eax, [ebp-0x2c]
	movss xmm0, dword [eax]
	mulss xmm0, [ebx+0x4]
	subss xmm1, xmm0
	movss [edi], xmm1
	movss xmm1, dword [eax]
	mulss xmm1, [ebx]
	movss xmm0, dword [esi]
	mulss xmm0, [ebx+0x8]
	subss xmm1, xmm0
	movss [edi+0x4], xmm1
	movss xmm1, dword [esi]
	mulss xmm1, [ebx+0x4]
	mov eax, [ebp-0x30]
	movss xmm0, dword [eax]
	mulss xmm0, [ebx]
	subss xmm1, xmm0
	movss [edi+0x8], xmm1
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19CG_RandomEffectAxisPKfPfS1__10:
	movss xmm1, dword [_float_1_00000000]
	divss xmm1, xmm2
	jmp _Z19CG_RandomEffectAxisPKfPfS1__20


;CG_ScopeIsOverlayed(int)
_Z19CG_ScopeIsOverlayedi:
	push ebp
	mov ebp, esp
	sub esp, 0x28
	mov eax, clientUIActives
	cmp dword [eax+0xc], 0x8
	jle _Z19CG_ScopeIsOverlayedi_10
	mov eax, cgArray
	test dword [eax+0x461ec], 0x300
	jnz _Z19CG_ScopeIsOverlayedi_20
_Z19CG_ScopeIsOverlayedi_30:
	lea eax, [ebp-0xc]
	mov [esp+0x4], eax
	mov eax, cgArray
	mov [esp], eax
	call _Z21CG_GetWeapReticleZoomPK4cg_sPf
	movzx eax, al
	leave
	ret
_Z19CG_ScopeIsOverlayedi_20:
	mov edx, [eax+0x466d4]
	test edx, edx
	jz _Z19CG_ScopeIsOverlayedi_30
	mov eax, [eax+0x466d8]
	lea edx, [eax*4]
	shl eax, 0x5
	sub eax, edx
	mov edx, eax
	shl edx, 0x4
	add eax, edx
	mov edx, cg_entitiesArray
	mov eax, [edx+eax+0x190]
	test eax, eax
	jz _Z19CG_ScopeIsOverlayedi_30
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov ecx, [eax+0x430]
	test ecx, ecx
	jz _Z19CG_ScopeIsOverlayedi_30
	mov eax, 0x1
	leave
	ret
_Z19CG_ScopeIsOverlayedi_10:
	xor eax, eax
	leave
	ret


;CG_WeaponDObjHandle(int)
_Z19CG_WeaponDObjHandlei:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	add eax, 0x400
	pop ebp
	ret
	nop


;CG_SelectWeaponIndex(int, unsigned int)
_Z20CG_SelectWeaponIndexij:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov eax, [ebp+0x8]
	mov [ebp-0x20], eax
	mov ebx, [ebp+0xc]
	mov edi, cgArray
	mov eax, [edi+0x46128]
	mov [edi+0x50370], eax
	mov eax, [edi+0x5036c]
	cmp eax, ebx
	jz _Z20CG_SelectWeaponIndexij_10
	test ebx, ebx
	jnz _Z20CG_SelectWeaponIndexij_20
	mov byte [ebp-0x19], 0x0
_Z20CG_SelectWeaponIndexij_50:
	mov [edi+0x5036c], ebx
	mov dword [esp+0x4], 0x1
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _Z17CG_MenuShowNotifyii
	cmp byte [ebp-0x19], 0x0
	jz _Z20CG_SelectWeaponIndexij_30
_Z20CG_SelectWeaponIndexij_10:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z20CG_SelectWeaponIndexij_30:
	mov dword [ebp+0xc], 0x0
	mov eax, [ebp-0x20]
	mov [ebp+0x8], eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z9CL_SetADSih
_Z20CG_SelectWeaponIndexij_20:
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	cmp ebx, [eax+0x540]
	setz byte [ebp-0x19]
	mov [esp], ebx
	call _Z15BG_GetWeaponDefj
	mov esi, [eax+0x13c]
	test esi, esi
	jnz _Z20CG_SelectWeaponIndexij_40
	mov esi, ebx
_Z20CG_SelectWeaponIndexij_60:
	mov edi, cgArray
	mov [edi+0x50374], esi
	jmp _Z20CG_SelectWeaponIndexij_50
_Z20CG_SelectWeaponIndexij_40:
	mov esi, [eax+0x540]
	mov [esp], esi
	call _Z15BG_GetWeaponDefj
	mov ecx, [eax+0x13c]
	test ecx, ecx
	jnz _Z20CG_SelectWeaponIndexij_50
	test esi, esi
	jz _Z20CG_SelectWeaponIndexij_50
	jmp _Z20CG_SelectWeaponIndexij_60


;CG_GetPlayerViewOrigin(int, playerState_s const*, float*)
_Z22CG_GetPlayerViewOriginiPK13playerState_sPf:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov edx, [ebp+0xc]
	mov edi, [ebp+0x10]
	test dword [edx+0xb0], 0x300
	jz _Z22CG_GetPlayerViewOriginiPK13playerState_sPf_10
	mov eax, [edx+0x59c]
	lea edx, [eax*4]
	shl eax, 0x5
	sub eax, edx
	mov edx, eax
	shl edx, 0x4
	lea ebx, [eax+edx]
	add ebx, cg_entitiesArray
	mov dword [esp+0x4], 0x0
	mov eax, [ebx+0xcc]
	mov [esp], eax
	call _Z17Com_GetClientDObjii
	mov esi, eax
	test eax, eax
	jz _Z22CG_GetPlayerViewOriginiPK13playerState_sPf_20
_Z22CG_GetPlayerViewOriginiPK13playerState_sPf_40:
	mov [esp+0xc], edi
	mov eax, scr_const
	movzx eax, word [eax+0xa8]
	mov [esp+0x8], eax
	mov [esp+0x4], esi
	mov [esp], ebx
	call _Z21CG_DObjGetWorldTagPosPK7cpose_tP6DObj_sjPf
	test eax, eax
	jz _Z22CG_GetPlayerViewOriginiPK13playerState_sPf_30
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z22CG_GetPlayerViewOriginiPK13playerState_sPf_10:
	mov eax, cgArray
	mov eax, [eax+0x46128]
	mov [ebp+0x10], eax
	mov [ebp+0xc], edi
	mov [ebp+0x8], edx
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z22BG_GetPlayerViewOriginPK13playerState_sPfi
_Z22CG_GetPlayerViewOriginiPK13playerState_sPf_30:
	mov dword [ebp+0xc], _cstring_cg_getplayerview
	mov dword [ebp+0x8], 0x2
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z9Com_Error11errorParm_tPKcz
_Z22CG_GetPlayerViewOriginiPK13playerState_sPf_20:
	mov eax, [ebx+0xcc]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_cg_getplayerview1
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	jmp _Z22CG_GetPlayerViewOriginiPK13playerState_sPf_40


;CG_UpdateViewModelPose(DObj_s const*, int)
_Z22CG_UpdateViewModelPosePK6DObj_si:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov eax, [ebp+0x8]
	test eax, eax
	jz _Z22CG_UpdateViewModelPosePK6DObj_si_10
	mov [esp], eax
	call _Z13DObjClearSkelPK6DObj_s
_Z22CG_UpdateViewModelPosePK6DObj_si_10:
	mov ebx, cgArray
	lea eax, [ebx+0xfd25c]
	mov [esp+0x4], eax
	lea eax, [ebx+0x50460]
	mov [esp], eax
	call _Z12AxisToAnglesPA3_KfPf
	mov eax, [ebx+0x50484]
	mov [ebx+0xfd250], eax
	mov eax, [ebx+0x50488]
	mov [ebx+0xfd254], eax
	mov eax, [ebx+0x5048c]
	mov [ebx+0xfd258], eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret


;CG_AltWeaponToggleIndex(int, cg_s const*)
_Z23CG_AltWeaponToggleIndexiPK4cg_s:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov esi, [ebp+0xc]
	lea edi, [esi+0x4613c]
	mov eax, [esi+0x5036c]
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov ebx, [eax+0x540]
	test ebx, ebx
	jz _Z23CG_AltWeaponToggleIndexiPK4cg_s_10
_Z23CG_AltWeaponToggleIndexiPK4cg_s_30:
	mov eax, ebx
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z23CG_AltWeaponToggleIndexiPK4cg_s_10:
	mov dword [esp+0xc], 0x1
	mov dword [esp+0x8], 0x1
	mov dword [esp+0x4], 0x1
	mov eax, [esi+0x5036c]
	mov [esp], eax
	xor ecx, ecx
	mov edx, edi
	mov eax, [ebp+0x8]
	call _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh
	test eax, eax
	jnz _Z23CG_AltWeaponToggleIndexiPK4cg_s_20
	mov dword [esp+0xc], 0x1
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x1
	mov eax, [esi+0x5036c]
	mov [esp], eax
	xor ecx, ecx
	mov edx, edi
	mov eax, [ebp+0x8]
	call _Z15NextWeapInCycleiPK13playerState_s19weapInventoryType_tjhhh
	test eax, eax
	jz _Z23CG_AltWeaponToggleIndexiPK4cg_s_30
_Z23CG_AltWeaponToggleIndexiPK4cg_s_20:
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov ebx, [eax+0x540]
	mov eax, ebx
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;CG_BulletHitClientEvent(int, int, float const*, float const*, int, int, int)
_Z23CG_BulletHitClientEventiiPKfS0_iii:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov eax, [ebp+0x8]
	mov [ebp-0x1c], eax
	mov eax, [ebp+0xc]
	mov [ebp-0x20], eax
	mov eax, [ebp+0x10]
	mov [ebp-0x24], eax
	mov edi, [ebp+0x14]
	mov ebx, [ebp+0x18]
	mov eax, [ebp+0x1c]
	mov esi, [ebp+0x20]
	cmp eax, 0x2a
	jz _Z23CG_BulletHitClientEventiiPKfS0_iii_10
	cmp eax, 0x2b
	jz _Z23CG_BulletHitClientEventiiPKfS0_iii_20
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z23CG_BulletHitClientEventiiPKfS0_iii_10:
	mov eax, cgMedia
	mov eax, [eax+ebx*4+0x350]
_Z23CG_BulletHitClientEventiiPKfS0_iii_30:
	mov [esp+0xc], eax
	mov [esp+0x8], edi
	mov dword [esp+0x4], 0x3fe
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z17CG_PlaySoundAliasiiPKfP16snd_alias_list_t
	mov [ebp+0x18], esi
	mov dword [ebp+0x14], 0x0
	mov eax, scr_const
	movzx eax, word [eax+0x90]
	mov [ebp+0x10], eax
	mov [ebp+0xc], ebx
	mov [ebp+0x8], edi
	mov ecx, [ebp-0x24]
	mov edx, [ebp-0x20]
	mov eax, [ebp-0x1c]
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z23BulletTrajectoryEffectsiiPKfS0_ijhi
_Z23CG_BulletHitClientEventiiPKfS0_iii_20:
	mov eax, cgMedia
	mov eax, [eax+ebx*4+0x3c4]
	jmp _Z23CG_BulletHitClientEventiiPKfS0_iii_30


;CG_UICheckWeapLockBlink(int, float)
_Z23CG_UICheckWeapLockBlinkif:
	push ebp
	mov ebp, esp
	xor eax, eax
	pop ebp
	ret
	nop


;CG_UpdateHandViewmodels(int, XModel*)
_Z23CG_UpdateHandViewmodelsiP6XModel:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov esi, 0x1
	mov edi, cgArray
	mov ebx, cg_weaponsArray
	add ebx, 0x44
	jmp _Z23CG_UpdateHandViewmodelsiP6XModel_10
_Z23CG_UpdateHandViewmodelsiP6XModel_30:
	movzx eax, byte [edi+0x46959]
	mov edx, [ebp+0xc]
	cmp [ebx+0x4], edx
	jz _Z23CG_UpdateHandViewmodelsiP6XModel_20
	movzx ecx, al
	mov dword [esp+0x10], 0x1
	mov eax, [ebx+0x10]
	mov [esp+0xc], eax
	mov eax, [ebx+0xc]
	mov [esp+0x8], eax
	mov eax, [ebx+0x8]
	mov [esp+0x4], eax
	mov [esp], edx
	mov edx, esi
	mov eax, [ebp+0x8]
	call _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h
_Z23CG_UpdateHandViewmodelsiP6XModel_20:
	add esi, 0x1
	add ebx, 0x44
	add edi, 0x1
_Z23CG_UpdateHandViewmodelsiP6XModel_10:
	call _Z16BG_GetNumWeaponsv
	cmp esi, eax
	jb _Z23CG_UpdateHandViewmodelsiP6XModel_30
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
	nop


;CG_UpdateViewWeaponAnim(int)
_Z23CG_UpdateViewWeaponAnimi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x6c
	mov esi, cgArray
	cmp dword [esi+0x46140], 0x6
	jle _Z23CG_UpdateViewWeaponAnimi_10
	mov esi, 0x1
	mov edi, 0x44
	jmp _Z23CG_UpdateViewWeaponAnimi_20
_Z23CG_UpdateViewWeaponAnimi_50:
	mov dword [esp], 0x2
_Z23CG_UpdateViewWeaponAnimi_60:
	pxor xmm0, xmm0
	mov ecx, ebx
	mov edx, esi
	mov eax, [ebp+0x8]
	call _Z15StartWeaponAnimiiP6DObj_sif
_Z23CG_UpdateViewWeaponAnimi_40:
	add esi, 0x1
	add edi, 0x44
_Z23CG_UpdateViewWeaponAnimi_20:
	call _Z16BG_GetNumWeaponsv
	cmp esi, eax
	jae _Z23CG_UpdateViewWeaponAnimi_30
	mov eax, cg_weaponsArray
	mov ebx, [eax+edi]
	test ebx, ebx
	jz _Z23CG_UpdateViewWeaponAnimi_40
	mov [esp], ebx
	call _Z11DObjGetTreePK6DObj_s
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x0
	mov [esp], eax
	call _Z25XAnimClearTreeGoalWeightsP11XAnimTree_sjf
	mov dword [esp+0x1c], 0x0
	mov dword [esp+0x18], 0x1
	mov dword [esp+0x14], 0x0
	mov dword [esp+0x10], 0x3f800000
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], 0x3f800000
	mov dword [esp+0x4], 0x0
	mov [esp], ebx
	call _Z18XAnimSetGoalWeightP6DObj_sjfffjji
	mov [esp], esi
	call _Z16BG_ClipForWeaponi
	mov edx, cgArray
	mov eax, [edx+eax*4+0x46498]
	test eax, eax
	jz _Z23CG_UpdateViewWeaponAnimi_50
	mov dword [esp], 0x1
	jmp _Z23CG_UpdateViewWeaponAnimi_60
_Z23CG_UpdateViewWeaponAnimi_10:
	lea eax, [esi+0x4613c]
	mov [esp], eax
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	mov ebx, eax
	test eax, eax
	jg _Z23CG_UpdateViewWeaponAnimi_70
_Z23CG_UpdateViewWeaponAnimi_30:
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z23CG_UpdateViewWeaponAnimi_70:
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17CG_RegisterWeaponii
	mov eax, ebx
	shl eax, 0x6
	lea eax, [eax+ebx*4]
	mov edx, cg_weaponsArray
	add eax, edx
	mov [ebp-0x48], eax
	movzx eax, byte [ebx+esi+0x46958]
	mov [ebp-0x41], al
	mov [esp], ebx
	call _Z15BG_GetWeaponDefj
	mov edi, eax
	mov eax, [eax+0x300]
	test eax, eax
	jz _Z23CG_UpdateViewWeaponAnimi_80
	mov eax, [esi+0x46224]
	mov [esp], eax
	call _Z16BG_ClipForWeaponi
	mov eax, [esi+eax*4+0x46498]
	test eax, eax
	jnz _Z23CG_UpdateViewWeaponAnimi_90
	mov eax, [esi+0x46228]
	cmp eax, 0x7
	jz _Z23CG_UpdateViewWeaponAnimi_100
	cmp eax, 0x9
	jz _Z23CG_UpdateViewWeaponAnimi_100
	cmp eax, 0xb
	jz _Z23CG_UpdateViewWeaponAnimi_100
	cmp eax, 0xa
	jz _Z23CG_UpdateViewWeaponAnimi_100
	cmp eax, 0x8
	jz _Z23CG_UpdateViewWeaponAnimi_100
_Z23CG_UpdateViewWeaponAnimi_80:
	xor esi, esi
_Z23CG_UpdateViewWeaponAnimi_250:
	mov edx, [edi+0x304]
	test edx, edx
	jz _Z23CG_UpdateViewWeaponAnimi_110
	mov eax, cgArray
	mov eax, [eax+0x46760]
	and ah, 0xfd
	sub eax, 0x8
	cmp eax, 0x1
	jbe _Z23CG_UpdateViewWeaponAnimi_120
_Z23CG_UpdateViewWeaponAnimi_110:
	xor edx, edx
_Z23CG_UpdateViewWeaponAnimi_120:
	mov eax, [ebp-0x48]
	mov edi, [eax+0x8]
	test edi, edi
	jz _Z23CG_UpdateViewWeaponAnimi_130
_Z23CG_UpdateViewWeaponAnimi_330:
	movzx ecx, byte [ebp-0x41]
	mov dword [esp+0x10], 0x0
	mov [esp+0xc], edx
	mov [esp+0x8], esi
	mov dword [esp+0x4], 0x0
	mov edx, [ebp-0x48]
	mov eax, [edx+0x4]
	mov [esp], eax
	mov edx, ebx
	mov eax, [ebp+0x8]
	call _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h
_Z23CG_UpdateViewWeaponAnimi_340:
	mov eax, [ebp-0x48]
	mov esi, [eax]
	mov [esp], esi
	call _Z11DObjGetTreePK6DObj_s
	mov [ebp-0x40], eax
	mov ebx, cgArray
	lea eax, [ebx+0x4613c]
	mov [esp], eax
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	mov edi, eax
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov edx, eax
	mov ecx, [eax+0x4ec]
	test ecx, ecx
	jnz _Z23CG_UpdateViewWeaponAnimi_140
	mov eax, [eax+0xd0]
	cmp byte [eax], 0x0
	jnz _Z23CG_UpdateViewWeaponAnimi_150
_Z23CG_UpdateViewWeaponAnimi_360:
	mov ebx, cgArray
	mov eax, [ebx+0x46760]
	mov edx, [ebp-0x48]
	cmp eax, [edx+0x28]
	jz _Z23CG_UpdateViewWeaponAnimi_160
_Z23CG_UpdateViewWeaponAnimi_230:
	and ah, 0xfd
	cmp eax, 0x1d
	ja _Z23CG_UpdateViewWeaponAnimi_170
	jmp dword [eax*4+_Z23CG_UpdateViewWeaponAnimi_jumptab_0]
_Z23CG_UpdateViewWeaponAnimi_140:
	cmp dword [ebx+0x46228], 0x7
	jz _Z23CG_UpdateViewWeaponAnimi_180
_Z23CG_UpdateViewWeaponAnimi_260:
	xor edx, edx
_Z23CG_UpdateViewWeaponAnimi_270:
	mov ebx, cgArray
	test byte [ebx+0x46148], 0x10
	jz _Z23CG_UpdateViewWeaponAnimi_190
	test byte [ebx+0x4614c], 0x2
	jz _Z23CG_UpdateViewWeaponAnimi_200
_Z23CG_UpdateViewWeaponAnimi_190:
	xor eax, eax
_Z23CG_UpdateViewWeaponAnimi_380:
	test dl, dl
	jnz _Z23CG_UpdateViewWeaponAnimi_210
	test eax, eax
	jnz _Z23CG_UpdateViewWeaponAnimi_220
_Z23CG_UpdateViewWeaponAnimi_210:
	mov ecx, 0x20
_Z23CG_UpdateViewWeaponAnimi_370:
	mov edx, esi
	mov eax, edi
	movss xmm0, dword [ebx+0x46230]
	call _Z11PlayADSAnimfiP6DObj_si
	mov ebx, cgArray
	mov eax, [ebx+0x46760]
	mov edx, [ebp-0x48]
	cmp eax, [edx+0x28]
	jnz _Z23CG_UpdateViewWeaponAnimi_230
_Z23CG_UpdateViewWeaponAnimi_160:
	cmp edi, [ebx+0x50378]
	jnz _Z23CG_UpdateViewWeaponAnimi_230
	jmp _Z23CG_UpdateViewWeaponAnimi_240
_Z23CG_UpdateViewWeaponAnimi_100:
	mov eax, [edi+0x388]
	mov edx, cgArray
	sub eax, [edx+0x46178]
	cmp eax, [edi+0x38c]
	jle _Z23CG_UpdateViewWeaponAnimi_80
_Z23CG_UpdateViewWeaponAnimi_90:
	mov esi, [edi+0x300]
	jmp _Z23CG_UpdateViewWeaponAnimi_250
_Z23CG_UpdateViewWeaponAnimi_180:
	mov eax, [ebx+0x46178]
	sub eax, [edx+0x794]
	test eax, eax
	jle _Z23CG_UpdateViewWeaponAnimi_260
	mov edx, 0x1
	jmp _Z23CG_UpdateViewWeaponAnimi_270
_Z23CG_UpdateViewWeaponAnimi_170:
	mov dword [esp], 0x1
	pxor xmm0, xmm0
	mov ecx, esi
	mov edx, edi
	mov eax, [ebp+0x8]
	call _Z15StartWeaponAnimiiP6DObj_sif
	mov eax, [ebx+0x46760]
	and ah, 0xfd
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_weaponrunxmodela
	mov dword [esp], 0x13
	call _Z10Com_PrintfiPKcz
_Z23CG_UpdateViewWeaponAnimi_390:
	mov ebx, cgArray
	mov eax, [ebx+0x46760]
	mov edx, [ebp-0x48]
	mov [edx+0x28], eax
	mov [ebx+0x50378], edi
_Z23CG_UpdateViewWeaponAnimi_240:
	mov dword [esp+0x8], 0x1
	cvtsi2ss xmm0, dword [ebx+0x46124]
	mulss xmm0, [_float_0_00100000]
	movss [esp+0x4], xmm0
	mov edx, [ebp-0x48]
	mov eax, [edx]
	mov [esp], eax
	call _Z20DObjUpdateClientInfoP6DObj_sfh
	lea eax, [ebx+0x4613c]
	mov [esp], eax
	call _Z26BG_GetViewmodelWeaponIndexPK13playerState_s
	test eax, eax
	jz _Z23CG_UpdateViewWeaponAnimi_30
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov [ebp-0x38], eax
	lea eax, [ebp-0x1c]
	mov [esp], eax
	call _Z23DObjGetClientNotifyListPP13XAnimNotify_s
	mov [ebp-0x30], eax
	test eax, eax
	jle _Z23CG_UpdateViewWeaponAnimi_30
	mov dword [ebp-0x34], 0x0
	xor esi, esi
	jmp _Z23CG_UpdateViewWeaponAnimi_280
_Z23CG_UpdateViewWeaponAnimi_290:
	add dword [ebp-0x34], 0x1
	add esi, 0xc
	mov edx, [ebp-0x34]
	cmp [ebp-0x30], edx
	jz _Z23CG_UpdateViewWeaponAnimi_30
_Z23CG_UpdateViewWeaponAnimi_280:
	mov dword [esp+0x4], _cstring_end
	mov eax, [ebp-0x1c]
	mov eax, [eax+esi]
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z23CG_UpdateViewWeaponAnimi_290
	mov dword [esp+0x4], _cstring_nvg_on_powerup
	mov eax, [ebp-0x1c]
	mov eax, [eax+esi]
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jnz _Z23CG_UpdateViewWeaponAnimi_300
	mov edx, cgMedia
	mov eax, [edx+0x1048]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z23CG_PlayClientSoundAliasiP16snd_alias_list_t
_Z23CG_UpdateViewWeaponAnimi_350:
	mov eax, [ebp-0x1c]
	mov eax, [eax+esi]
	mov edx, [ebp-0x38]
	cmp word [edx+0xe8], 0x0
	jz _Z23CG_UpdateViewWeaponAnimi_290
	mov [esp], eax
	call _Z22SL_FindLowercaseStringPKc
	mov [ebp-0x2c], eax
	test eax, eax
	jz _Z23CG_UpdateViewWeaponAnimi_290
	mov ebx, [ebp-0x38]
	mov edi, 0x10
	jmp _Z23CG_UpdateViewWeaponAnimi_310
_Z23CG_UpdateViewWeaponAnimi_320:
	add ebx, 0x2
	sub edi, 0x1
	jz _Z23CG_UpdateViewWeaponAnimi_290
_Z23CG_UpdateViewWeaponAnimi_310:
	movzx eax, word [ebx+0xe8]
	test ax, ax
	jz _Z23CG_UpdateViewWeaponAnimi_290
	movzx edx, word [ebx+0x108]
	test dx, dx
	jz _Z23CG_UpdateViewWeaponAnimi_320
	movzx eax, ax
	cmp [ebp-0x2c], eax
	jnz _Z23CG_UpdateViewWeaponAnimi_320
	movzx eax, dx
	mov [esp], eax
	call _Z18SL_ConvertToStringj
	test eax, eax
	jz _Z23CG_UpdateViewWeaponAnimi_320
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z29CG_PlayClientSoundAliasByNameiPKc
	jmp _Z23CG_UpdateViewWeaponAnimi_320
_Z23CG_UpdateViewWeaponAnimi_130:
	cmp esi, [eax+0xc]
	jnz _Z23CG_UpdateViewWeaponAnimi_330
	cmp edx, [eax+0x10]
	jnz _Z23CG_UpdateViewWeaponAnimi_330
	jmp _Z23CG_UpdateViewWeaponAnimi_340
_Z23CG_UpdateViewWeaponAnimi_300:
	mov dword [esp+0x4], _cstring_nvg_off_powerdow
	mov eax, [ebp-0x1c]
	mov eax, [eax+esi]
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jnz _Z23CG_UpdateViewWeaponAnimi_350
	mov edx, cgMedia
	mov eax, [edx+0x104c]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z23CG_PlayClientSoundAliasiP16snd_alias_list_t
	jmp _Z23CG_UpdateViewWeaponAnimi_350
_Z23CG_UpdateViewWeaponAnimi_150:
	mov ecx, 0x20
	mov edx, esi
	mov eax, edi
	pxor xmm0, xmm0
	call _Z11PlayADSAnimfiP6DObj_si
	jmp _Z23CG_UpdateViewWeaponAnimi_360
_Z23CG_UpdateViewWeaponAnimi_220:
	mov ecx, 0x1f
	jmp _Z23CG_UpdateViewWeaponAnimi_370
_Z23CG_UpdateViewWeaponAnimi_200:
	mov eax, 0x1
	jmp _Z23CG_UpdateViewWeaponAnimi_380
_Z23CG_UpdateViewWeaponAnimi_730:
	mov dword [esp], 0x1b
_Z23CG_UpdateViewWeaponAnimi_400:
	pxor xmm0, xmm0
	mov ecx, esi
	mov edx, edi
	mov eax, [ebp+0x8]
	call _Z15StartWeaponAnimiiP6DObj_sif
	jmp _Z23CG_UpdateViewWeaponAnimi_390
_Z23CG_UpdateViewWeaponAnimi_690:
	mov dword [esp], 0x18
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_700:
	mov dword [esp], 0x4
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_710:
	mov dword [esp], 0x19
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_720:
	mov dword [esp], 0x1a
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_610:
	mov dword [esp], 0x11
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_620:
	mov dword [esp], 0x10
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_630:
	mov dword [esp], 0x13
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_640:
	mov dword [esp], 0x12
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_650:
	mov dword [esp], 0x15
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_660:
	mov dword [esp], 0x14
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_670:
	mov dword [esp], 0x16
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_680:
	mov dword [esp], 0x17
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_450:
	xor ebx, ebx
	mov dword [ebp-0x3c], 0x1
_Z23CG_UpdateViewWeaponAnimi_420:
	mov eax, [ebp-0x3c]
	mov [esp+0x4], eax
	mov edx, [ebp-0x40]
	mov [esp], edx
	call _Z16XAnimHasFinishedPK11XAnimTree_sj
	test al, al
	jnz _Z23CG_UpdateViewWeaponAnimi_410
	mov eax, [ebp-0x48]
	mov dword [eax+0x28], 0xffffffff
	mov ebx, cgArray
	test byte [ebx+0x46760], 0x1
	jz _Z23CG_UpdateViewWeaponAnimi_240
	mov ebx, 0x3f000000
_Z23CG_UpdateViewWeaponAnimi_410:
	add dword [ebp-0x3c], 0x1
	cmp dword [ebp-0x3c], 0x1f
	jnz _Z23CG_UpdateViewWeaponAnimi_420
	mov [esp], edi
	call _Z16BG_ClipForWeaponi
	mov edx, cgArray
	mov edx, [edx+eax*4+0x46498]
	test edx, edx
	jnz _Z23CG_UpdateViewWeaponAnimi_430
	mov dword [esp], 0x2
_Z23CG_UpdateViewWeaponAnimi_440:
	mov [ebp-0x4c], ebx
	movss xmm0, dword [ebp-0x4c]
	mov ecx, esi
	mov edx, edi
	mov eax, [ebp+0x8]
	call _Z15StartWeaponAnimiiP6DObj_sif
	jmp _Z23CG_UpdateViewWeaponAnimi_390
_Z23CG_UpdateViewWeaponAnimi_460:
	mov dword [esp], 0x3
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_470:
	mov dword [esp], 0x5
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_480:
	mov dword [esp], 0x6
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_490:
	mov dword [esp], 0x1c
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_500:
	mov dword [esp], 0x1d
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_510:
	mov dword [esp], 0x1e
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_520:
	mov dword [esp], 0x7
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_530:
	mov dword [esp], 0x8
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_540:
	mov dword [esp], 0xf
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_550:
	mov dword [esp], 0xd
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_560:
	mov dword [esp], 0xe
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_570:
	mov dword [esp], 0x9
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_580:
	mov dword [esp], 0xa
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_590:
	mov dword [esp], 0xb
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_600:
	mov dword [esp], 0xc
	jmp _Z23CG_UpdateViewWeaponAnimi_400
_Z23CG_UpdateViewWeaponAnimi_430:
	mov dword [esp], 0x1
	jmp _Z23CG_UpdateViewWeaponAnimi_440
	
	
_Z23CG_UpdateViewWeaponAnimi_jumptab_0:
	dd _Z23CG_UpdateViewWeaponAnimi_450
	dd _Z23CG_UpdateViewWeaponAnimi_450
	dd _Z23CG_UpdateViewWeaponAnimi_460
	dd _Z23CG_UpdateViewWeaponAnimi_470
	dd _Z23CG_UpdateViewWeaponAnimi_480
	dd _Z23CG_UpdateViewWeaponAnimi_490
	dd _Z23CG_UpdateViewWeaponAnimi_500
	dd _Z23CG_UpdateViewWeaponAnimi_510
	dd _Z23CG_UpdateViewWeaponAnimi_520
	dd _Z23CG_UpdateViewWeaponAnimi_530
	dd _Z23CG_UpdateViewWeaponAnimi_540
	dd _Z23CG_UpdateViewWeaponAnimi_550
	dd _Z23CG_UpdateViewWeaponAnimi_560
	dd _Z23CG_UpdateViewWeaponAnimi_570
	dd _Z23CG_UpdateViewWeaponAnimi_580
	dd _Z23CG_UpdateViewWeaponAnimi_590
	dd _Z23CG_UpdateViewWeaponAnimi_600
	dd _Z23CG_UpdateViewWeaponAnimi_610
	dd _Z23CG_UpdateViewWeaponAnimi_620
	dd _Z23CG_UpdateViewWeaponAnimi_630
	dd _Z23CG_UpdateViewWeaponAnimi_640
	dd _Z23CG_UpdateViewWeaponAnimi_650
	dd _Z23CG_UpdateViewWeaponAnimi_660
	dd _Z23CG_UpdateViewWeaponAnimi_670
	dd _Z23CG_UpdateViewWeaponAnimi_680
	dd _Z23CG_UpdateViewWeaponAnimi_690
	dd _Z23CG_UpdateViewWeaponAnimi_700
	dd _Z23CG_UpdateViewWeaponAnimi_710
	dd _Z23CG_UpdateViewWeaponAnimi_720
	dd _Z23CG_UpdateViewWeaponAnimi_730


;CG_ImpactEffectForWeapon(int, int, int, FxEffectDef const**, snd_alias_list_t**)
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov esi, [ebp+0x10]
	mov ebx, [ebp+0x18]
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov edx, eax
	mov dword [ebx], 0x0
	mov eax, esi
	shr eax, 0x2
	mov ecx, eax
	and cl, 0x1
	cmp dword [edx+0x138], 0x8
	ja _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_10
	mov eax, [edx+0x138]
	jmp dword [eax*4+_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_jumptab_0]
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_10:
	mov eax, [ebp+0x14]
	mov dword [eax], 0x0
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_130:
	test cl, cl
	jz _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_20
	mov edx, cgMedia
	mov eax, [ebp+0xc]
	mov edx, [edx+eax*4+0x520]
	mov eax, 0x1
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_90:
	mov [ebx], edx
	mov ebx, eax
	mov edx, cgMedia
	cmp dword [ebp+0xc], 0x7
	jnz _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_30
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_50:
	test esi, 0x2
	jz _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_40
	and esi, 0x1
	cmp esi, 0x1
	sbb ecx, ecx
	and ecx, 0xfffffffe
	add ecx, 0x3
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_120:
	mov edx, [edx+0x2754]
	mov eax, ebx
	shl eax, 0x7
	lea eax, [eax+ebx*4]
	lea eax, [eax+ecx*4]
	add eax, [edx+0x4]
	mov eax, [eax+0x74]
	mov edx, [ebp+0x14]
	mov [edx], eax
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_200:
	mov eax, [edx+0x59c]
	mov [ebx], eax
	mov ebx, 0xb
	mov edx, cgMedia
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_60:
	cmp dword [ebp+0xc], 0x7
	jz _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_50
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_30:
	mov eax, [edx+0x2754]
	mov edx, [eax+0x4]
	mov eax, ebx
	shl eax, 0x7
	lea eax, [eax+ebx*4]
	mov ecx, [ebp+0xc]
	lea eax, [eax+ecx*4]
	mov eax, [eax+edx]
	mov edx, [ebp+0x14]
	mov [edx], eax
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_190:
	mov edx, cgMedia
	mov ecx, [ebp+0xc]
	mov eax, [edx+ecx*4+0x2dc]
	mov [ebx], eax
	mov ebx, 0xa
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_60
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_180:
	mov edx, cgMedia
	mov ecx, [ebp+0xc]
	mov eax, [edx+ecx*4+0x268]
	mov [ebx], eax
	mov ebx, 0x9
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_60
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_170:
	mov eax, [edx+0x208]
	test eax, eax
	jz _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_70
	mov edx, [ebp+0xc]
	mov eax, [eax+edx*4]
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_70:
	mov [ebx], eax
	mov ebx, 0x8
	mov edx, cgMedia
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_60
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_160:
	test cl, cl
	jnz _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_80
	mov edx, cgMedia
	mov eax, [ebp+0xc]
	mov edx, [edx+eax*4+0x4ac]
	mov eax, 0x4
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_90
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_150:
	test cl, cl
	jnz _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_100
	mov edx, cgMedia
	mov ecx, [ebp+0xc]
	mov edx, [edx+ecx*4+0x438]
	mov eax, 0x6
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_90
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_140:
	test cl, cl
	jnz _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_110
	mov edx, cgMedia
	mov eax, [ebp+0xc]
	mov edx, [edx+eax*4+0x3c4]
	mov eax, 0x2
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_90
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_40:
	mov ecx, esi
	and ecx, 0x1
	neg ecx
	and ecx, 0x2
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_120
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_20:
	mov edx, cgMedia
	mov ecx, [ebp+0xc]
	mov edx, [edx+ecx*4+0x350]
	xor eax, eax
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_90
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_110:
	mov edx, cgMedia
	mov ecx, [ebp+0xc]
	mov edx, [edx+ecx*4+0x594]
	mov eax, 0x3
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_90
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_100:
	mov edx, cgMedia
	mov eax, [ebp+0xc]
	mov edx, [edx+eax*4+0x608]
	mov eax, 0x7
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_90
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_80:
	mov edx, cgMedia
	mov ecx, [ebp+0xc]
	mov edx, [edx+ecx*4+0x67c]
	mov eax, 0x5
	jmp _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_90
	nop
	
	
_Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_jumptab_0:
	dd _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_10
	dd _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_130
	dd _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_140
	dd _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_150
	dd _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_160
	dd _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_170
	dd _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_180
	dd _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_190
	dd _Z24CG_ImpactEffectForWeaponiiiPPK11FxEffectDefPP16snd_alias_list_t_200


;CG_PlayerTurretWeaponIdx(int)
_Z24CG_PlayerTurretWeaponIdxi:
	push ebp
	mov ebp, esp
	mov eax, cgArray
	test dword [eax+0x461ec], 0x300
	jz _Z24CG_PlayerTurretWeaponIdxi_10
	mov ecx, [eax+0x466d4]
	test ecx, ecx
	jz _Z24CG_PlayerTurretWeaponIdxi_10
	mov eax, [eax+0x466d8]
	lea edx, [eax*4]
	shl eax, 0x5
	sub eax, edx
	mov edx, eax
	shl edx, 0x4
	add eax, edx
	mov edx, cg_entitiesArray
	mov eax, [edx+eax+0x190]
	pop ebp
	ret
_Z24CG_PlayerTurretWeaponIdxi_10:
	xor eax, eax
	pop ebp
	ret


;CG_UpdateWeaponViewmodels(int)
_Z25CG_UpdateWeaponViewmodelsi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov esi, 0x1
	mov edi, cgArray
	mov ebx, cg_weaponsArray
	add ebx, 0x44
	jmp _Z25CG_UpdateWeaponViewmodelsi_10
_Z25CG_UpdateWeaponViewmodelsi_30:
	mov eax, [edi+0x24]
	movzx eax, byte [esi+eax+0x828]
	cmp [ebx+0x14], al
	jz _Z25CG_UpdateWeaponViewmodelsi_20
	movzx ecx, al
	mov dword [esp+0x10], 0x1
	mov eax, [ebx+0x10]
	mov [esp+0xc], eax
	mov eax, [ebx+0xc]
	mov [esp+0x8], eax
	mov eax, [ebx+0x8]
	mov [esp+0x4], eax
	mov eax, [ebx+0x4]
	mov [esp], eax
	mov edx, esi
	mov eax, [ebp+0x8]
	call _Z19ChangeViewmodelDobjiihP6XModelS0_S0_S0_h
_Z25CG_UpdateWeaponViewmodelsi_20:
	add esi, 0x1
	add ebx, 0x44
_Z25CG_UpdateWeaponViewmodelsi_10:
	call _Z16BG_GetNumWeaponsv
	cmp esi, eax
	jb _Z25CG_UpdateWeaponViewmodelsi_30
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;CG_PlayerUsingScopedTurret(int)
_Z26CG_PlayerUsingScopedTurreti:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov eax, cgArray
	test dword [eax+0x461ec], 0x300
	jz _Z26CG_PlayerUsingScopedTurreti_10
	mov edx, [eax+0x466d4]
	test edx, edx
	jz _Z26CG_PlayerUsingScopedTurreti_10
	mov eax, [eax+0x466d8]
	lea edx, [eax*4]
	shl eax, 0x5
	sub eax, edx
	mov edx, eax
	shl edx, 0x4
	add eax, edx
	mov edx, cg_entitiesArray
	mov eax, [edx+eax+0x190]
	test eax, eax
	jz _Z26CG_PlayerUsingScopedTurreti_10
	mov [esp], eax
	call _Z15BG_GetWeaponDefj
	mov ecx, [eax+0x430]
	test ecx, ecx
	jz _Z26CG_PlayerUsingScopedTurreti_10
	mov eax, 0x1
	leave
	ret
_Z26CG_PlayerUsingScopedTurreti_10:
	xor eax, eax
	leave
	ret


;CG_UICheckWeapLockAttackTop(int)
_Z27CG_UICheckWeapLockAttackTopi:
	push ebp
	mov ebp, esp
	xor eax, eax
	pop ebp
	ret
	nop


;CG_GetLocalClientGlobalsForEnt(int, int)
_Z30CG_GetLocalClientGlobalsForEntii:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov dword [esp], 0x0
	call _Z22CL_IsLocalClientActivei
	test al, al
	jz _Z30CG_GetLocalClientGlobalsForEntii_10
	mov eax, cgArray
	mov edx, [eax+0x24]
	test byte [edx+0x20], 0x6
	jnz _Z30CG_GetLocalClientGlobalsForEntii_20
_Z30CG_GetLocalClientGlobalsForEntii_40:
	xor edx, edx
_Z30CG_GetLocalClientGlobalsForEntii_50:
	test edx, edx
	jnz _Z30CG_GetLocalClientGlobalsForEntii_30
_Z30CG_GetLocalClientGlobalsForEntii_10:
	xor eax, eax
_Z30CG_GetLocalClientGlobalsForEntii_30:
	leave
	ret
_Z30CG_GetLocalClientGlobalsForEntii_20:
	mov ecx, [ebp+0xc]
	cmp ecx, [edx+0xe8]
	jnz _Z30CG_GetLocalClientGlobalsForEntii_40
	mov edx, 0x1
	jmp _Z30CG_GetLocalClientGlobalsForEntii_50


;CG_UICheckWeapLockAttackDirect(int)
_Z30CG_UICheckWeapLockAttackDirecti:
	push ebp
	mov ebp, esp
	xor eax, eax
	pop ebp
	ret
	nop


;Initialized global or static variables of cg_weapons:
SECTION .data
g_animRateOffsets: dd 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x378, 0xffffffff, 0xffffffff, 0x380, 0x384, 0x388, 0x390, 0x398, 0x3a0, 0x3a8, 0x3bc, 0x3a4, 0x3b0, 0x3ac, 0x3b8, 0x3b4, 0x3c0, 0x3c4, 0x3c8, 0x3cc, 0x3d0, 0xffffffff, 0x3d4, 0x3e0, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
_ZZ45CalculateWeaponPosition_BasePosition_movementP4cg_sPfE10MYLERP_END: dd 0x3dcccccd
_ZZ45CalculateWeaponPosition_BasePosition_movementP4cg_sPfE12MYLERP_START: dd 0x3e99999a, 0x0, 0x0, 0x0, 0x0, 0x0


;Initialized constant data of cg_weapons:
SECTION .rdata
g_keepZ__uint4: dd 0x0, 0x0, 0xffffffff, 0x0
g_keepX__uint4: dd 0xffffffff, 0x0, 0x0, 0x0
g_keepZW__uint4: dd 0x0, 0x0, 0xffffffff, 0xffffffff
g_keepXY__uint4: dd 0xffffffff, 0xffffffff, 0x0, 0x0
g_keepXYZ__uint4: dd 0xffffffff, 0xffffffff, 0xffffffff, 0x0
g_keepXYW__uint4: dd 0xffffffff, 0xffffffff, 0x0, 0xffffffff
g_keepXZW__uint4: dd 0xffffffff, 0x0, 0xffffffff, 0xffffffff
g_keepYZW__uint4: dd 0x0, 0xffffffff, 0xffffffff, 0xffffffff
g_selectW__uint4: dd 0x10203, 0x4050607, 0x8090a0b, 0x1c1d1e1f
g_selectZ__uint4: dd 0x10203, 0x4050607, 0x18191a1b, 0xc0d0e0f
g_selectY__uint4: dd 0x10203, 0x14151617, 0x8090a0b, 0xc0d0e0f
g_selectX__uint4: dd 0x10111213, 0x4050607, 0x8090a0b, 0xc0d0e0f
g_swizzleWWWW__uint4: dd 0xc0d0e0f, 0xc0d0e0f, 0xc0d0e0f, 0xc0d0e0f
g_swizzleZZZZ__uint4: dd 0x8090a0b, 0x8090a0b, 0x8090a0b, 0x8090a0b
g_swizzleYYYY__uint4: dd 0x4050607, 0x4050607, 0x4050607, 0x4050607
g_swizzleXXXX__uint4: dd 0x10203, 0x10203, 0x10203, 0x10203
g_swizzleYZWA__uint4: dd 0x4050607, 0x8090a0b, 0xc0d0e0f, 0x10111213
g_swizzleZWAW__uint4: dd 0x8090a0b, 0xc0d0e0f, 0x10111213, 0xc0d0e0f
g_swizzleWABW__uint4: dd 0xc0d0e0f, 0x10111213, 0x14151617, 0xc0d0e0f
g_swizzleZXYW__uint4: dd 0x8090a0b, 0x10203, 0x4050607, 0xc0d0e0f
g_swizzleYZXW__uint4: dd 0x4050607, 0x8090a0b, 0x10203, 0xc0d0e0f
g_swizzleXYZA__uint4: dd 0x10203, 0x4050607, 0x8090a0b, 0x10111213
g_swizzleZWCD__uint4: dd 0x8090a0b, 0xc0d0e0f, 0x18191a1b, 0x1c1d1e1f
g_swizzleXYAB__uint4: dd 0x10203, 0x4050607, 0x10111213, 0x14151617
g_swizzleYBWD__uint4: dd 0x4050607, 0x14151617, 0xc0d0e0f, 0x1c1d1e1f
g_swizzleXAZC__uint4: dd 0x10203, 0x10111213, 0x8090a0b, 0x18191a1b
g_swizzleYXWZ__uint4: dd 0x4050607, 0x10203, 0xc0d0e0f, 0x8090a0b
g_swizzleXZYW__uint4: dd 0x10203, 0x8090a0b, 0x4050607, 0xc0d0e0f
g_swizzleYXZW__uint4: dd 0x4050607, 0x10203, 0x8090a0b, 0xc0d0e0f
g_swizzleXYZW__uint4: dd 0x10203, 0x4050607, 0x8090a0b, 0xc0d0e0f
g_inc__uint4: dd 0x1, 0x1, 0x1, 0x1
g_negativeZero__uint4: dd 0x80000000, 0x80000000, 0x80000000, 0x80000000
g_fltMin__uint4: dd 0x800000, 0x800000, 0x800000, 0x800000


;Zero initialized global or static variables of cg_weapons:
SECTION .bss
g_keepZ: resb 0x10
g_keepX: resb 0x10
g_keepZW: resb 0x10
g_keepXY: resb 0x10
g_keepXYZ: resb 0x10
g_keepXYW: resb 0x10
g_keepXZW: resb 0x10
g_keepYZW: resb 0x10
g_selectW: resb 0x10
g_selectZ: resb 0x10
g_selectY: resb 0x10
g_selectX: resb 0x10
g_swizzleWWWW: resb 0x10
g_swizzleZZZZ: resb 0x10
g_swizzleYYYY: resb 0x10
g_swizzleXXXX: resb 0x10
g_swizzleYZWA: resb 0x10
g_swizzleZWAW: resb 0x10
g_swizzleWABW: resb 0x10
g_swizzleZXYW: resb 0x10
g_swizzleYZXW: resb 0x10
g_swizzleXYZA: resb 0x10
g_swizzleZWCD: resb 0x10
g_swizzleXYAB: resb 0x10
g_swizzleYBWD: resb 0x10
g_swizzleXAZC: resb 0x10
g_swizzleYXWZ: resb 0x10
g_swizzleXZYW: resb 0x10
g_swizzleYXZW: resb 0x10
g_swizzleXYZW: resb 0x10
g_inc: resb 0x10
g_negativeZero: resb 0x10
g_fltMin: resb 0x10
removeMeWhenMPStopsCrashingInHere: resb 0x80


;All cstrings:
SECTION .rdata
_cstring_viewmodel:		db "VIEWMODEL",0
_cstring_root:		db "root",0
_cstring_cg_registerweapo:		db 015h,"CG_RegisterWeapon: No idle anim specified for [%s]",0
_cstring_cg_registerweapo1:		db 015h,"CG_RegisterWeapon: ADS anim [%s] cannot be looping",0
_cstring_actionslot_numbe:		db "+/-actionslot; number given is out of range.  Was %i, expected 1 thru %i.",0ah,0
_cstring_usage_actionslot:		db "USAGE: +/-actionslot <number>",0ah,0
_cstring_player_is_holdin:		db "Player is holding alt-mode weapon ",22h,"%s",22h,", but does not posses it",27h,"s original, ",22h,"%s",22h,".",0ah,0
_cstring_no_s_in_calcmuzz:		db "No %s in CalcMuzzlePoint on entity %d.",0ah,0
_cstring_unknown_etype_i_:		db "Unknown eType %i in CG_DrawBulletImpacts()",0ah,0
_cstring_cg_fireweapon_we:		db 015h,"CG_FireWeapon: weapon >= BG_GetNumWeapons()",0
_cstring_cg_registerweapo2:		db "CG_RegisterWeapon: No such bone tag (%s) for weapon (%s)",0ah,0
_cstring_weapon_s_could_n:		db "Weapon %s: Could not translate AI overlay description ",22h,"%s",22h,0
_cstring_weapon_s_could_n1:		db "Weapon %s: Could not translate mode name ",22h,"%s",22h,0
_cstring_weapon_s_could_n2:		db "Weapon %s: Could not translate display name ",22h,"%s",22h,0
_cstring_warning_weapon_s:		db "WARNING: Weapon %s: Could not translate AI overlay description ",22h,"%s",22h,0ah,0
_cstring_warning_weapon_s1:		db "WARNING: Weapon %s: Could not translate mode name ",22h,"%s",22h,0ah,0
_cstring_warning_weapon_s2:		db "WARNING: Weapon %s: Could not translate display name ",22h,"%s",22h,0ah,0
_cstring_weapon_index_mis:		db "Weapon index mismatch for ",27h,"%s",27h,0
_cstring_cg_ejectweaponbr:		db 015h,"CG_EjectWeaponBrass: ent->weapon >= BG_GetNumWeapons()",0
_cstring_cg_getplayerview:		db 015h,"CG_GetPlayerViewOrigin: Couldn",27h,"t find [tag_player] on turret",0ah,0
_cstring_cg_getplayerview1:		db 015h,"CG_GetPlayerViewOrigin: Unable to get DObj for turret entity %i",0
_cstring_weaponrunxmodela:		db "WeaponRunXModelAnims: Unknown weapon animation %i",0ah,0
_cstring_end:		db "end",0
_cstring_nvg_on_powerup:		db "NVG_on_powerup",0
_cstring_nvg_off_powerdow:		db "NVG_off_powerdown",0



;All constant floats and doubles:
SECTION .rdata
_float_1_00000000:		dd 0x3f800000	; 1
_float_0_00000000:		dd 0x0	; 0
_float_1000_00000000:		dd 0x447a0000	; 1000
_float_11_00000000:		dd 0x41300000	; 11
_float_0_00100000:		dd 0x3a83126f	; 0.001
_float_0_10000000:		dd 0x3dcccccd	; 0.1
_float_0_50000000:		dd 0x3f000000	; 0.5
_float__2_00000000:		dd 0xc0000000	; -2
_float__0_10000000:		dd 0xbdcccccd	; -0.1
_float_40_00000000:		dd 0x42200000	; 40
_float_60_00000000:		dd 0x42700000	; 60
_float_32768_00000000:		dd 0x47000000	; 32768
_float_64_00000000:		dd 0x42800000	; 64
_float_140_00000000:		dd 0x430c0000	; 140
_float__16_00000000:		dd 0xc1800000	; -16
_float_8_00000000:		dd 0x41000000	; 8
_float_255_00000000:		dd 0x437f0000	; 255
_float_8192_00000000:		dd 0x46000000	; 8192
_double_0_01745329:		dq 0x3f91df46a2529d39	; 0.0174533
_double_0_00000000:		dq 0x3e00000000200000	; 4.65661e-10
_double_0_99999988:		dq 0x3fefffffbf935359	; 1
_float_360_00000000:		dd 0x43b40000	; 360
_data16_80000000:		dd 0x80000000, 0x0, 0x0, 0x0	; OWORD
_float_0_01000000:		dd 0x3c23d70a	; 0.01
_float_0_99999988:		dd 0x3f7ffffe	; 1
_float_30_00000000:		dd 0x41f00000	; 30
_float_3_00000000:		dd 0x40400000	; 3
_float_0_25000000:		dd 0x3e800000	; 0.25
_float_150_00000000:		dd 0x43160000	; 150
_float_300_00000000:		dd 0x43960000	; 300
_float_1_60000002:		dd 0x3fcccccd	; 1.6

