Function at 0x10023980
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a1f55
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x100df040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
push ebx
call fcn.100235d0
mov eax, dword [0x100e2f44]
mov ecx, dword [0x100e2f50]
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov ecx, dword [0x100e2f44]
push eax
call esi
mov edi, eax
mov dword [ebp - 0x40], edi
call fcn.10099080
test edi, edi
je 0x10023eda
mov esi, eax
test esi, esi
je 0x10023eda
mov eax, dword fs:[0x2c]
mov ecx, dword [0x100e2f10]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x100e3124]
mov dword [ebp - 0x3c], ecx
cmp eax, dword [ecx + 4]
jle 0x10023a52
push 0x100e3124
call fcn.1009fb3d
add esp, 4
cmp dword [0x100e3124], 0xffffffff
jne 0x10023a52
mov edx, str.deadflag
mov dword [ebp - 4], 0
mov ecx, str.CBasePlayer
call fcn.1009b460
push 0x100e3124
mov dword [0x100e313c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1009faec
add esp, 4
mov eax, dword [0x100e313c]
cmp dword [edi + eax], 0
jne 0x10023eda
push 7
mov ecx, edi
call fcn.10023210
test al, al
jne 0x10023eda
push 0xe
mov ecx, edi
call fcn.10023210
test al, al
jne 0x10023eda
mov ecx, dword [ebp - 0x3c]
mov eax, dword [0x100e312c]
cmp eax, dword [ecx + 4]
jle 0x10023adb
push 0x100e312c
call fcn.1009fb3d
add esp, 4
cmp dword [0x100e312c], 0xffffffff
jne 0x10023ad8
mov edx, str.m_bFeignDeathReady
mov dword [ebp - 4], 1
mov ecx, str.CTFPlayer
call fcn.1009b460
push 0x100e312c
mov dword [0x100e30fc], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1009faec
add esp, 4
mov ecx, dword [ebp - 0x3c]
mov eax, dword [0x100e30fc]
cmp byte [edi + eax], 0
jne 0x10023eda
mov eax, dword [0x100e3120]
cmp eax, dword [ecx + 4]
jle 0x10023b3f
push 0x100e3120
call fcn.1009fb3d
add esp, 4
cmp dword [0x100e3120], 0xffffffff
jne 0x10023b3f
mov edx, str.m_flInvisChangeCompleteTime
mov dword [ebp - 4], 2
mov ecx, str.CTFPlayer
call fcn.1009b460
sub eax, 8
mov dword [ebp - 4], 0xffffffff
push 0x100e3120
mov dword [0x100e3104], eax
call fcn.1009faec
add esp, 4
mov eax, dword [0x100e3104]
vmovss xmm0, dword [edi + eax]
vcomiss xmm0, dword [0x100d5430]
ja 0x10023eda
push esi
call fcn.10038b80
cmp byte [0x100e3148], 0
mov dword [ebp - 0x38], eax
jne 0x10023be3
mov ecx, eax
sub ecx, 0
je 0x10023b91
sub ecx, 1
je 0x10023b88
sub ecx, 1
jne 0x10023eda
push esi
push edi
push ebx
call fcn.10032fd0
jmp 0x10023bd3
push esi
push ebx
call fcn.1002c140
jmp 0x10023bd3
mov ecx, esi
call fcn.10025160
test al, al
je 0x10023bd1
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x5f4]
call eax
mov ecx, dword [ebx + 0x24]
and ecx, 1
cmp eax, 0x63
jne 0x10023bc0
test ecx, ecx
jne 0x10023bd1
test byte [0x100e35fc], 1
jmp 0x10023bcb
test ecx, ecx
je 0x10023bd1
cmp byte [0x100e35fa], 0
je 0x10023bd1
mov al, 1
jmp 0x10023bd3
xor al, al
mov byte [0x100e3148], al
test al, al
je 0x10023eda
mov eax, dword [ebp - 0x38]
cmp eax, 2
jne 0x10023eda
cmp byte [0x100df2b3], 0
je 0x10023eda
push dword [ebx + 0x34]
push 0
push 0
push str.SelectWeightedSequence
call dword [0x100dffa0]
add esp, 0x10
mov edi, 6
mov ecx, dword [0x100e2f60]
sub esp, 8
vmovss xmm0, dword [0x100d5534]
mov eax, dword [ecx]
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmm0
vmovss dword [esp], xmm0
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], eax
call dword [ebp - 0x38]
fstp st(0)
sub edi, 1
jne 0x10023c13
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x5f4]
call eax
add eax, 0xffffffec
cmp eax, 0x47
ja case.0x10023c64.21
movzx eax, byte [eax + 0x10023f08]
jmp dword [eax*4 + 0x10023ef8]
mov eax, dword [ebx + 4]
xor edi, edi
mov dword [ebp - 0x38], eax
mov esi, eax
inc esi
inc edi
mov ecx, esi
call fcn.1009b290
cmp al, 0x27
je 0x10023c8d
cmp edi, 0x400
jl 0x10023c75
mov esi, dword [ebp - 0x38]
mov dword [ebx + 4], esi
jmp 0x10023eda
mov ecx, dword [0x100e2f60]
sub esp, 8
vmovss xmm0, dword [0x100d5560]
mov eax, dword [ecx]
vmovss dword [esp + 4], xmm0
vmovss xmm0, dword [0x100d5704]
vmovss dword [esp], xmm0
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], eax
call dword [ebp - 0x38]
vmovss xmm0, dword [ebx + 0xc]
fstp dword [ebp - 0x38]
vsubss xmm0, xmm0, dword [ebp - 0x38]
vmovss dword [ebx + 0xc], xmm0
mov ecx, dword [0x100e2f60]
sub esp, 8
vmovss xmm0, dword [0x100d5560]
mov eax, dword [ecx]
vmovss dword [esp + 4], xmm0
vmovss xmm0, dword [0x100d5704]
vmovss dword [esp], xmm0
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], eax
call dword [ebp - 0x38]
vmovss xmm0, dword [ebx + 0x10]
fstp dword [ebp - 0x38]
vsubss xmm0, xmm0, dword [ebp - 0x38]
vmovss dword [ebx + 0x10], xmm0
lea ecx, [ebx + 0xc]
jmp 0x10023ece
mov eax, dword [esi]
vmovss xmm0, dword [0x100d56b8]
vxorps xmm1, xmm1, xmm1
push ecx
vmovss dword [ebp - 0x14], xmm1
vmovss dword [ebp - 0x18], xmm1
vmovss dword [ebp - 0x1c], xmm1
vmovss dword [ebp - 0x2c], xmm1
vmovss dword [ebp - 0x30], xmm1
vmovss dword [ebp - 0x34], xmm1
mov edx, dword [eax + 0x63c]
mov ecx, esi
vmovss dword [esp], xmm0
push 0
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x34]
push eax
sub esp, 0xc
mov eax, esp
push dword [ebp - 0x40]
vmovss dword [eax], xmm1
vmovss dword [eax + 4], xmm1
vmovss dword [eax + 8], xmm1
call edx
mov ecx, dword [0x100e2f50]
lea edx, [ebp - 0x4c]
vxorps xmm0, xmm0, xmm0
vmovss dword [ebp - 0x44], xmm0
vmovss dword [ebp - 0x48], xmm0
vmovss dword [ebp - 0x4c], xmm0
mov eax, dword [ecx]
push edx
call dword [eax + 0x4c]
vmovss xmm0, dword [ebp - 0x1c]
vsubss xmm1, xmm0, dword [ebp - 0x4c]
lea ecx, [ebx + 0xc]
vmovss xmm0, dword [ecx]
vsubss xmm0, xmm0, xmm1
vmovss dword [ecx], xmm0
vmovss xmm0, dword [ebp - 0x18]
vsubss xmm1, xmm0, dword [ebp - 0x48]
vmovss xmm0, dword [ecx + 4]
vsubss xmm0, xmm0, xmm1
vmovss dword [ecx + 4], xmm0
vmovss xmm0, dword [ebp - 0x14]
vsubss xmm1, xmm0, dword [ebp - 0x44]
jmp 0x10023ec0
mov ecx, dword [ebp - 0x3c]
mov eax, dword [0x100e3138]
cmp eax, dword [ecx + 4]
jle 0x10023e32
push 0x100e3138
call fcn.1009fb3d
add esp, 4
cmp dword [0x100e3138], 0xffffffff
jne 0x10023e32
mov edx, str.m_iItemDefinitionIndex
mov dword [ebp - 4], 3
mov ecx, str.CEconEntity
call fcn.1009b460
push 0x100e3138
mov dword [0x100e3108], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1009faec
add esp, 4
mov eax, dword [0x100e3108]
cmp dword [eax + esi], 0x2da
jne 0x10023eda
vxorps xmm0, xmm0, xmm0
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
vmovss dword [ebp - 0x20], xmm0
vmovss dword [ebp - 0x24], xmm0
vmovss dword [ebp - 0x28], xmm0
call dword [0x100df8f8]
mov ecx, dword [0x100e2f50]
lea edx, [ebp - 0x58]
vxorps xmm0, xmm0, xmm0
vmovss dword [ebp - 0x50], xmm0
vmovss dword [ebp - 0x54], xmm0
vmovss dword [ebp - 0x58], xmm0
mov eax, dword [ecx]
push edx
call dword [eax + 0x4c]
vmovss xmm0, dword [ebp - 0x28]
vsubss xmm1, xmm0, dword [ebp - 0x58]
lea ecx, [ebx + 0xc]
vmovss xmm0, dword [ecx]
vsubss xmm0, xmm0, xmm1
vmovss dword [ecx], xmm0
vmovss xmm0, dword [ebp - 0x24]
vsubss xmm1, xmm0, dword [ebp - 0x54]
vmovss xmm0, dword [ecx + 4]
vsubss xmm0, xmm0, xmm1
vmovss dword [ecx + 4], xmm0
vmovss xmm0, dword [ebp - 0x20]
vsubss xmm1, xmm0, dword [ebp - 0x50]
vmovss xmm0, dword [ecx + 8]
vsubss xmm0, xmm0, xmm1
vmovss dword [ecx + 8], xmm0
call fcn.10023110
mov byte [0x100e3149], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1009f72e
mov esp, ebp
pop ebp
ret 4