Function at 0x10084020
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2b8
cmp byte [0x102a56d8], 0
push esi
push edi
je 0x10085213
call fcn.10083df0
test al, al
jne 0x10085213
mov ecx, dword [0x102a5680]
test ecx, ecx
je 0x10085213
call fcn.10052d50
cmp dword [eax], 0
je 0x10085213
mov esi, dword [0x102a5680]
test esi, esi
je 0x100840a5
mov ecx, esi
call fcn.10176800
test al, al
jne 0x100840a5
mov ecx, esi
call fcn.10083d60
mov eax, dword [eax]
test eax, eax
je 0x100840a5
push eax
call fcn.10004330
mov edi, eax
test edi, edi
je 0x100840a5
mov ecx, edi
call fcn.10176800
test al, al
je 0x100840a5
mov dword [0x1029a388], edi
jmp 0x100840b3
mov dword [0x1029a388], esi
test esi, esi
je 0x10085213
mov eax, dword fs:[0x2c]
mov ecx, dword [0x102999e4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x102ba204]
mov dword [esp + 0x24], ecx
cmp eax, dword [ecx + 4]
jle 0x10084105
push 0x102ba204
call fcn.101e23b9
add esp, 4
cmp dword [0x102ba204], 0xffffffff
jne 0x10084105
mov ecx, 0x1029d710
call fcn.10087340
push 0x102ba204
mov dword [0x102ba208], eax
call fcn.101e236f
add esp, 4
mov ecx, dword [0x1029a388]
call fcn.10176800
test al, al
je 0x100842f9
mov ecx, dword [0x1029a388]
call fcn.1003b390
cmp byte [eax], 0
je 0x100842f9
mov ecx, dword [0x102a5680]
call fcn.10083cd0
cmp dword [eax], 6
je 0x100842f9
mov eax, dword [0x102ba208]
test byte [eax], 0x10
je 0x100842f9
mov eax, dword [0x102afcc4]
mov esi, dword [0x102afcc8]
mov ecx, esi
push 0
push 0xff000000
movss xmm1, dword [eax + 0x5c]
movss xmm2, dword [eax + 0x60]
lea eax, [esp + 0x84]
movss dword [esp + 0x4c], xmm1
mulss xmm1, dword [0x1026ba54]
push 0xff000000
push 0xff000000
push eax
movaps xmm0, xmm1
movss dword [esp + 0x28], xmm2
addss xmm0, dword [0x1026bac0]
lea eax, [esp + 0x88]
movss dword [esp + 0x88], xmm1
push eax
lea eax, [esp + 0x50]
mov dword [esp + 0x90], 0x3f800000
push eax
movss dword [esp + 0x98], xmm0
movaps xmm0, xmm2
addss xmm0, dword [0x1026bac0]
movss dword [esp + 0x54], xmm1
movss dword [esp + 0x9c], xmm0
movss dword [esp + 0x58], xmm0
call fcn.1002a890
movss xmm0, dword [esp + 0x7c]
lea eax, [esp + 0x7c]
push 0
push 0xff000000
push 0xff000000
push 0xff000000
push eax
lea eax, [esp + 0x4c]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x8c]
mov ecx, esi
push eax
lea eax, [esp + 0x8c]
movss dword [esp + 0x54], xmm0
push eax
call fcn.1002a890
movss xmm1, dword [esp + 0x14]
lea eax, [esp + 0x30]
mulss xmm1, dword [0x1026ba54]
mov esi, dword [0x102afcc8]
mov ecx, esi
movss xmm2, dword [0x1026bac0]
movss xmm0, dword [esp + 0x44]
push 0
addss xmm0, xmm2
mov dword [esp + 0x70], 0
push 0xff000000
addss xmm1, xmm2
mov dword [esp + 0x50], 0
push 0xff000000
push 0xff000000
movss dword [esp + 0x40], xmm0
push eax
movaps xmm0, xmm1
movss dword [esp + 0x84], xmm1
addss xmm0, xmm2
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x60]
push eax
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x68], xmm0
call fcn.1002a890
movss xmm0, dword [esp + 0x30]
lea eax, [esp + 0x30]
push 0
push 0xff000000
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x78]
push 0xff000000
movss dword [esp + 0x58], xmm0
push 0xff000000
push eax
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
lea eax, [esp + 0x84]
push eax
call fcn.1002a890
mov esi, dword [0x102a5680]
mov dword [0x102b25fc], esi
test esi, esi
je 0x10084347
mov ecx, esi
mov edi, esi
call fcn.10176800
test al, al
jne 0x1008433f
mov ecx, esi
call fcn.10083d60
mov eax, dword [eax]
test eax, eax
je 0x1008433f
push eax
call fcn.10004330
mov dword [esp + 0x14], eax
test eax, eax
je 0x1008433f
mov ecx, eax
call fcn.10176800
test al, al
cmovne edi, dword [esp + 0x14]
mov esi, dword [0x102b25fc]
jmp 0x10084349
xor edi, edi
mov dword [0x102b2600], edi
test esi, esi
je 0x100843cc
test edi, edi
je 0x100843cc
mov ecx, edi
call fcn.10176800
test al, al
je 0x100843cc
mov eax, dword [0x1029a3c4]
cmp dword [eax], 0
je 0x100843cc
mov esi, dword [0x1029d6c8]
call fcn.1010ed50
mov ecx, dword [eax + 4]
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, esi
jbe 0x10085219
lea eax, [esi + esi*2]
shl eax, 4
lea esi, [eax + 8]
add esi, edi
je 0x100843c1
mov eax, dword [esi + 0x24]
and eax, 0xfffffffc
je 0x100843c1
add eax, 4
push 0x102985bc
push eax
call fcn.101e31c2
add esp, 8
test eax, eax
je 0x100843c3
xor esi, esi
cmp byte [esi], 0
je 0x100843cc
mov al, 1
jmp 0x100843ce
xor al, al
mov ecx, dword [0x102a5680]
mov byte [0x102b1fd6], al
mov eax, dword [0x102b2604]
mov dword [0x102b2608], eax
call fcn.10176800
test al, al
jne 0x10084413
mov ecx, dword [0x102a5680]
call fcn.10083cd0
cmp dword [eax], 5
jne 0x10084413
mov ecx, dword [0x102a5680]
call fcn.10083d60
mov eax, dword [eax]
test eax, eax
je 0x10084413
push eax
call fcn.10004330
mov ecx, dword [0x1029a414]
xor eax, eax
mov dword [esp + 0x28], eax
xor edi, edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x68], eax
mov eax, dword [ecx]
mov dword [esp + 0x58], edi
mov eax, dword [eax + 0x50]
call eax
mov ecx, eax
mov eax, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], eax
cmp ecx, eax
jl 0x10084584
nop
push eax
call fcn.100042a0
mov esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
je 0x10084569
cmp edi, dword [esp + 0x5c]
je 0x10084485
mov dword [edi], esi
add edi, 4
mov dword [esp + 0x58], edi
jmp 0x1008449c
lea eax, [esp + 0x1c]
push eax
push edi
lea ecx, [esp + 0x5c]
call fcn.10006180
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x1c]
cmp byte [0x102b1fd6], 0
mov dword [esp + 0x14], esi
je 0x10084569
test esi, esi
je 0x10084569
cmp esi, dword [0x102b25fc]
je 0x10084569
mov ecx, esi
call fcn.10176800
test al, al
jne 0x10084569
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 0x24]
call eax
test al, al
jne 0x10084569
mov ecx, esi
call fcn.101758d0
test al, al
je 0x10084569
mov ecx, esi
call fcn.10083d60
mov eax, dword [eax]
test eax, eax
je 0x10084569
push eax
call fcn.10004330
test eax, eax
je 0x10084569
cmp eax, dword [0x102b2600]
je 0x10084515
cmp eax, dword [0x102b25fc]
jne 0x10084569
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 0x28]
call eax
lea ecx, [esp + 0x168]
push ecx
push eax
call fcn.100043c0
test al, al
je 0x10084569
cmp byte [esp + 0x2a5], 0
jne 0x10084569
cmp byte [esp + 0x2a4], 0
jne 0x10084569
mov eax, dword [0x102b2608]
cmp eax, dword [0x102b260c]
je 0x1008455e
mov dword [eax], esi
add dword [0x102b2608], 4
jmp 0x10084569
lea ecx, [esp + 0x14]
push ecx
push eax
call fcn.101827e0
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x2c]
jle 0x10084460
mov eax, dword [esp + 0x54]
mov dword [esp + 0x28], eax
mov ecx, dword [0x1029a414]
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
call eax
mov esi, eax
mov dword [esp + 0x1c], esi
call fcn.1006b4b0
mov dword [esp + 0x20], eax
cmp esi, eax
jg 0x10084644
mov edi, dword [esp + 0x64]
nop dword [eax]
push esi
call fcn.100042a0
mov esi, eax
test esi, esi
je 0x10084625
mov edx, dword [esi + 8]
lea ecx, [esi + 8]
mov edx, dword [edx + 8]
call edx
mov dword [esp + 0x14], eax
test eax, eax
je 0x10084625
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ecx
cmp edi, dword [esp + 0x44]
je 0x100845ee
mov dword [edi], esi
mov dword [edi + 4], ecx
add edi, 8
mov dword [esp + 0x64], edi
jmp 0x1008460d
lea eax, [esp + 0x38]
push eax
push edi
lea ecx, [esp + 0x68]
call fcn.1002d9f0
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
mov ecx, dword [0x102b1ec0]
cmp eax, dword [0x102a5b10]
cmove ecx, esi
mov dword [0x102b1ec0], ecx
mov esi, dword [esp + 0x1c]
inc esi
mov dword [esp + 0x1c], esi
cmp esi, dword [esp + 0x20]
jle 0x100845b0
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x50], eax
cmp dword [0x102a4b48], 0
je 0x100851a1
mov ecx, dword [esp + 0x24]
mov eax, dword [0x102ba20c]
cmp eax, dword [ecx + 4]
jle 0x100846ee
push 0x102ba20c
call fcn.101e23b9
add esp, 4
cmp dword [0x102ba20c], 0xffffffff
jne 0x100846ee
mov esi, dword [0x1029d5c0]
call fcn.1010ed50
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, 0x2aaaaaab
sub ecx, edx
mov dword [esp + 0x14], edx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, esi
jbe 0x10085219
lea eax, [esi + esi*2]
mov esi, dword [esp + 0x14]
shl eax, 4
add esi, 8
add esi, eax
je 0x100846d9
mov eax, dword [esi + 0x24]
and eax, 0xfffffffc
je 0x100846d9
add eax, 4
push 0x102985bc
push eax
call fcn.101e31c2
add esp, 8
test eax, eax
je 0x100846db
xor esi, esi
push 0x102ba20c
mov dword [0x102ba210], esi
call fcn.101e236f
add esp, 4
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x64]
jne 0x10084703
mov byte [esp + 0x1b], 0
cmp dword [esp + 0x28], edi
je 0x10084708
mov byte [esp + 0x1b], 1
mov ecx, dword [0x1029a388]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x1029a388]
movq xmm0, qword [eax]
movq qword [esp + 0x130], xmm0
mov eax, dword [eax + 8]
mov dword [esp + 0x138], eax
lea eax, [esp + 0x13c]
push eax
call fcn.10178980
lea eax, [esp + 0x84]
mov dword [esp + 0x84], 0
push eax
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
call fcn.1000ddb0
mov esi, dword [0x102afcc4]
mov dword [esp + 0x7c], esi
call fcn.100894d0
mov ecx, 0x1029d5f0
call fcn.10080840
mov ecx, 0x1029d5f4
mov dword [0x102b1a88], eax
call fcn.100808a0
mov ecx, 0x1029d5f8
mov dword [0x102b1a8c], eax
call fcn.10080900
mov dword [0x102b1a90], eax
call fcn.10089660
call fcn.100892e0
lea ecx, [esp + 0x54]
call fcn.10088d40
cmp dword [0x102a4b48], 0
je 0x10085203
mov eax, dword [esp + 0x54]
mov dword [esp + 0x28], eax
mov edx, dword [0x102b1b48]
push ecx
mov ecx, dword [0x102b1b44]
call fcn.10082740
mov eax, dword [0x102b1b44]
mov edx, dword [0x102b1a80]
mov ecx, dword [0x102b1a7c]
mov dword [0x102b1b48], eax
call fcn.10082740
mov eax, dword [0x102b1a7c]
add esp, 4
mov dword [0x102b1a80], eax
mov eax, dword [0x102a4b44]
add eax, dword [0x102a4b48]
mov ecx, dword [0x102a4b40]
mov dword [esp + 0x34], eax
dec ecx
dec eax
and ecx, eax
mov eax, dword [0x102a4b3c]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x40], edi
movss xmm0, dword [edi]
movss dword [0x10297c78], xmm0
movss xmm0, dword [edi + 4]
movss dword [0x10297c7c], xmm0
movss xmm0, dword [edi + 8]
movss dword [0x10297c80], xmm0
movss xmm0, dword [edi + 0xc]
movss dword [0x10297c84], xmm0
movss xmm0, dword [edi + 0x10]
movss dword [0x10297c88], xmm0
movss xmm0, dword [edi + 0x14]
movss dword [0x10297c8c], xmm0
movss xmm0, dword [edi + 0x18]
movss dword [0x10297c90], xmm0
movss xmm0, dword [edi + 0x1c]
movss dword [0x10297c94], xmm0
movss xmm0, dword [edi + 0x20]
movss dword [0x10297c98], xmm0
movss xmm0, dword [edi + 0x24]
movss dword [0x10297c9c], xmm0
movss xmm0, dword [edi + 0x28]
movss dword [0x10297ca0], xmm0
movss xmm0, dword [edi + 0x2c]
movss dword [0x10297ca4], xmm0
movss xmm0, dword [edi + 0x30]
movss dword [0x10297ca8], xmm0
movss xmm0, dword [edi + 0x34]
movss dword [0x10297cac], xmm0
movss xmm0, dword [edi + 0x38]
movss dword [0x10297cb0], xmm0
movss xmm0, dword [edi + 0x3c]
movss dword [0x10297cb4], xmm0
mov al, byte [edi + 0x40]
mov byte [0x10297cb8], al
mov al, byte [edi + 0x41]
mov byte [0x10297cb9], al
mov eax, dword [edi + 0x44]
mov dword [0x10297cbc], eax
mov eax, dword [edi + 0x48]
mov dword [0x10297cc0], eax
mov eax, dword [edi + 0x4c]
mov dword [0x10297cc4], eax
mov eax, dword [edi + 0x50]
mov dword [0x10297cc8], eax
mov eax, dword [edi + 0x54]
mov dword [0x10297ccc], eax
mov al, byte [edi + 0x58]
mov byte [0x10297cd0], al
mov eax, dword [edi + 0x5c]
mov dword [0x10297cd4], eax
mov eax, dword [edi + 0x60]
mov dword [0x10297cd8], eax
lea eax, [edi + 0x64]
mov dword [esp + 0x14], eax
cmp eax, 0x10297cdc
je 0x10084975
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x10084967
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, 0x10297cdc
call fcn.1000d310
cmp byte [edi + 0x40], 0
je 0x100849b6
movss xmm0, dword [esi + 0x5c]
lea eax, [esp + 0x100]
movss dword [esp + 0x108], xmm0
movss xmm0, dword [esi + 0x60]
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
movss dword [esp + 0x10c], xmm0
jmp 0x10084a01
movd xmm0, dword [edi + 0x44]
lea eax, [esp + 0x110]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x110], xmm0
movd xmm0, dword [edi + 0x48]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x114], xmm0
movd xmm0, dword [edi + 0x4c]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x118], xmm0
movd xmm0, dword [edi + 0x50]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x11c], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xf0], xmm0
mov ecx, dword [edi + 0x44]
mov eax, dword [edi + 0x4c]
mov edx, dword [edi + 0x48]
add eax, ecx
push ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movd xmm3, eax
mov eax, dword [edi + 0x50]
add eax, edx
movd xmm1, edx
cvtdq2ps xmm3, xmm3
movd xmm2, eax
lea eax, [esp + 0x124]
cvtdq2ps xmm2, xmm2
push eax
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x128], xmm0
movss dword [esp + 0x12c], xmm1
movss dword [esp + 0x130], xmm3
movss dword [esp + 0x134], xmm2
call fcn.100288b0
mov esi, dword [edi + 0x54]
mov byte [esp + 0x1a], 0
test esi, esi
je 0x10084dec
mov ecx, dword [esp + 0x24]
mov eax, dword [0x102b3310]
cmp eax, dword [ecx + 4]
jle 0x10084ad7
push 0x102b3310
call fcn.101e23b9
add esp, 4
cmp dword [0x102b3310], 0xffffffff
jne 0x10084ad7
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], str.TextureHandles
push eax
lea eax, [esp + 0x14c]
mov ecx, 0x102a57b4
push eax
call fcn.10006340
push 0x102b3310
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [0x102b3314], eax
call fcn.101e236f
add esp, 4
mov eax, dword [0x102b3314]
mov eax, dword [esi + eax]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
test eax, eax
je 0x10084dec
cmp dword [eax + 0xc], 0
je 0x10084dec
mov ecx, dword [edi + 0x54]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [edi + 0x54]
mov esi, eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
movd xmm0, dword [edi + 0x44]
lea edx, [esp + 0xd8]
mov ecx, dword [esp + 0x30]
cvtdq2ps xmm0, xmm0
push esi
push eax
mov ecx, dword [ecx + 0xc]
movss dword [esp + 0xe0], xmm0
movd xmm0, dword [edi + 0x48]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xe4], xmm0
call fcn.100291a0
mov eax, dword [edi + 0x4c]
add esp, 8
mov ecx, dword [edi + 0x44]
dec eax
movss xmm1, dword [0x1026bac0]
add eax, ecx
mov edx, dword [edi + 0x48]
movaps xmm3, xmm1
push 0
mov dword [esp + 0x30], 0xff000000
movd xmm0, eax
mov eax, dword [edi + 0x50]
cvtdq2ps xmm0, xmm0
dec eax
add eax, edx
addss xmm0, xmm1
movss dword [esp + 0xe4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + 0x30]
push eax
push eax
push eax
push eax
addss xmm0, xmm1
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x100]
push eax
movss dword [esp + 0x100], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
movss dword [esp + 0x104], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
movss dword [esp + 0x108], xmm0
call fcn.1002aad0
cmp dword [edi + 0x74], 0
je 0x10084de7
mov ecx, dword [esp + 0x24]
mov eax, dword [0x102ba214]
cmp eax, dword [ecx + 4]
jle 0x10084c3d
push 0x102ba214
call fcn.101e23b9
add esp, 4
cmp dword [0x102ba214], 0xffffffff
jne 0x10084c3d
lea eax, [esp + 0x30]
mov dword [esp + 0x30], 0
push eax
lea eax, [esp + 0x154]
push eax
call fcn.10003910
push 0x102ba214
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [0x102ba218], eax
call fcn.101e236f
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, eax
cmp dword [eax + 0x14], 0x10
jb 0x10084c4b
mov ecx, dword [eax]
mov edx, dword [0x102ba218]
push ecx
lea ecx, [esp + 0xa4]
call fcn.10028e80
mov ecx, dword [edi + 0x44]
add esp, 4
movss xmm3, dword [0x1026bac0]
movd xmm1, dword [edi + 0x48]
cvtdq2ps xmm1, xmm1
lea eax, [ecx + 1]
mov dword [esp + 0x20], 0x6eff6464
mov esi, dword [esp + 0x20]
push 0
push esi
movd xmm2, eax
mov eax, dword [edi + 0x4c]
add eax, ecx
mov edi, dword [0x102afcc8]
push esi
push esi
cvtdq2ps xmm2, xmm2
mov ecx, edi
movd xmm0, eax
lea eax, [esp + 0x58]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0xa8]
movss dword [esp + 0x50], xmm2
subss xmm0, dword [0x1026bb64]
push eax
movss dword [esp + 0xac], xmm2
addss xmm0, xmm3
movss dword [esp + 0x64], xmm0
movaps xmm0, xmm1
addss xmm0, dword [esp + 0xc0]
addss xmm1, xmm3
addss xmm0, dword [0x1026bb64]
movss dword [esp + 0x58], xmm1
addss xmm0, xmm3
movss dword [esp + 0x68], xmm0
movss dword [esp + 0xb0], xmm0
call fcn.1002a890
movss xmm0, dword [esp + 0x48]
lea eax, [esp + 0x48]
push 0
push esi
push esi
push esi
push eax
lea eax, [esp + 0xac]
movss dword [esp + 0xac], xmm0
movss xmm0, dword [esp + 0x50]
mov ecx, edi
push eax
lea eax, [esp + 0x50]
movss dword [esp + 0xb4], xmm0
push eax
call fcn.1002a890
mov edi, dword [esp + 0x40]
movss xmm0, dword [esp + 0xa0]
mulss xmm0, dword [0x1026ba54]
mov dword [esp + 0xa8], 0xbf800000
mov eax, dword [edi + 0x4c]
cdq
sub eax, edx
mov dword [esp + 0xac], 0xbf800000
sar eax, 1
add eax, dword [edi + 0x44]
mov dword [esp + 0x1c], 0xffffffff
movd xmm1, eax
mov eax, dword [esp + 0x14]
cvtdq2ps xmm1, xmm1
cmp dword [eax + 0x14], 0x10
subss xmm1, xmm0
movd xmm0, dword [edi + 0x48]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xb0], xmm1
addss xmm0, dword [0x1026bac0]
movss dword [esp + 0xb4], xmm0
jb 0x10084dbf
mov eax, dword [eax]
lea ecx, [esp + 0xa8]
push ecx
push 0
push dword [esp + 0x24]
lea ecx, [esp + 0xbc]
push ecx
mov ecx, dword [0x102afcc8]
push eax
push dword [0x102ba218]
call fcn.1002ca00
mov byte [esp + 0x1a], 1
mov eax, dword [0x102ba210]
cmp byte [eax], 0
je 0x10085027
cmp byte [esp + 0x1b], 0
je 0x10085027
cmp byte [edi + 0x41], 0
je 0x10085027
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x58]
je 0x10084e57
mov esi, eax
nop dword [eax + eax]
movzx eax, byte [edi + 0x40]
lea edx, [esp + 0xf0]
mov ecx, dword [esi]
push eax
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x90]
push eax
call fcn.10089ab0
add esi, 4
add esp, 0x10
cmp esi, dword [esp + 0x58]
jne 0x10084e20
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x64]
je 0x10084ffa
mov dword [esp + 0x14], eax
nop dword [eax]
mov ecx, dword [esp + 0x24]
mov esi, dword [eax + 4]
mov edi, dword [eax]
mov eax, dword [0x102ba1f8]
cmp eax, dword [ecx + 4]
jle 0x10084ed1
push 0x102ba1f8
call fcn.101e23b9
add esp, 4
cmp dword [0x102ba1f8], 0xffffffff
jne 0x10084ecd
lea eax, [esp + 0x30]
mov dword [esp + 0x30], 2
push eax
lea eax, [esp + 0x15c]
push eax
call fcn.10003910
push 0x102ba1f8
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [0x102ba1fc], eax
call fcn.101e236f
add esp, 4
mov ecx, dword [esp + 0x24]
cmp esi, dword [0x102a5aa0]
jne 0x10084ef5
push dword [0x102ba1fc]
mov edx, edi
lea ecx, [esp + 0xf4]
call fcn.1007d310
add esp, 4
jmp 0x10084fe1
mov eax, dword [0x102a5b10]
cmp esi, eax
je 0x10084fc6
cmp esi, dword [0x102a5998]
je 0x10084fc6
mov eax, dword [0x102bbb28]
cmp eax, dword [ecx + 4]
jle 0x10084f67
push 0x102bbb28
call fcn.101e23b9
add esp, 4
cmp dword [0x102bbb28], 0xffffffff
jne 0x10084f67
lea eax, [esp + 0x74]
mov dword [esp + 0x74], str.IsWeapon
push eax
lea eax, [esp + 0x164]
mov ecx, 0x102a5794
push eax
call fcn.10006340
push 0x102bbb28
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [0x102bbb2c], eax
call fcn.101e236f
add esp, 4
mov ecx, dword [edi]
mov eax, dword [0x102bbb2c]
mov eax, dword [ecx + eax*4]
mov ecx, edi
call eax
test al, al
je 0x10084f8d
push ecx
mov edx, edi
lea ecx, [esp + 0xf4]
call fcn.1007b740
add esp, 4
jmp 0x10084fe1
cmp esi, dword [0x102a5934]
je 0x10084fad
cmp esi, dword [0x102a59d0]
je 0x10084fad
cmp esi, dword [0x102a5ad4]
je 0x10084fad
cmp esi, dword [0x102a5b80]
jne 0x10084fe1
push dword [0x102ba1fc]
mov edx, edi
lea ecx, [esp + 0xf4]
call fcn.1007be50
add esp, 4
jmp 0x10084fe1
cmp esi, eax
mov edx, edi
push ecx
sete al
lea ecx, [esp + 0xf4]
movzx eax, al
push eax
call fcn.1007e000
add esp, 8
mov eax, dword [esp + 0x14]
add eax, 8
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x64]
jne 0x10084e70
mov edi, dword [esp + 0x40]
mov eax, dword [0x102b1b48]
mov esi, dword [0x102b1b44]
cmp esi, eax
je 0x10085022
mov edi, eax
nop dword [eax + eax]
mov ecx, esi
call fcn.100877a0
add esi, 0x68
cmp esi, edi
jne 0x10085010
mov edi, dword [esp + 0x40]
call fcn.1007e800
cmp byte [esp + 0x1a], 0
je 0x10085177
cmp byte [edi + 0x58], 0
je 0x10085177
mov eax, dword [edi + 0x4c]
cdq
sub eax, edx
mov esi, eax
mov eax, dword [edi + 0x50]
cdq
sub eax, edx
sar esi, 1
mov edx, dword [esp + 0x40]
add esi, dword [edi + 0x44]
mov edi, eax
push 0
sar edi, 1
movd xmm1, dword [edx + 0x5c]
movzx ecx, byte [edx + 0x63]
movzx eax, byte [edx + 0x62]
add edi, dword [edx + 0x48]
shl ecx, 8
or ecx, eax
movd xmm3, esi
movzx eax, byte [edx + 0x61]
cvtdq2ps xmm1, xmm1
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x60]
shl ecx, 8
or ecx, eax
lea eax, [esp + 0xbc]
cvtdq2ps xmm3, xmm3
push ecx
mov dword [esp], 0x3f800000
push ecx
push ecx
movaps xmm0, xmm1
movd xmm2, edi
mov ecx, dword [0x102afcc8]
addss xmm0, xmm3
cvtdq2ps xmm2, xmm2
push eax
lea eax, [esp + 0xd4]
push eax
movss dword [esp + 0xd0], xmm0
movaps xmm0, xmm3
subss xmm0, xmm1
movss dword [esp + 0xd4], xmm2
movss dword [esp + 0xdc], xmm2
movss dword [esp + 0xd8], xmm0
call fcn.100289b0
mov edx, dword [esp + 0x40]
movd xmm2, edi
cvtdq2ps xmm2, xmm2
push 0
movzx ecx, byte [edx + 0x63]
movzx eax, byte [edx + 0x62]
shl ecx, 8
movd xmm1, dword [edx + 0x5c]
or ecx, eax
movzx eax, byte [edx + 0x61]
movaps xmm0, xmm2
shl ecx, 8
or ecx, eax
movd xmm3, esi
movzx eax, byte [edx + 0x60]
shl ecx, 8
or ecx, eax
lea eax, [esp + 0xcc]
cvtdq2ps xmm1, xmm1
push ecx
mov dword [esp], 0x3f800000
push ecx
push ecx
cvtdq2ps xmm3, xmm3
push eax
lea eax, [esp + 0xe4]
push eax
addss xmm0, xmm1
subss xmm2, xmm1
movss dword [esp + 0xe0], xmm3
movss dword [esp + 0xe8], xmm3
movss dword [esp + 0xe4], xmm0
movss dword [esp + 0xec], xmm2
mov ecx, dword [0x102afcc8]
call fcn.100289b0
mov ecx, dword [0x102afcc8]
add dword [ecx + 0x30], 0xffffffec
call fcn.100299d0
mov ecx, 0x102a4b38
call fcn.100872c0
cmp dword [0x102a4b48], 0
mov esi, dword [esp + 0x7c]
jne 0x100847d1
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
test edx, edx
je 0x100851da
mov ecx, dword [esp + 0x44]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x100851d0
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008521e
push ecx
push edx
call fcn.101e1f2f
add esp, 8
test esi, esi
je 0x10085213
mov ecx, dword [esp + 0x5c]
mov eax, esi
sub ecx, esi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x10085209
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008521e
jmp 0x10085209
mov esi, dword [esp + 0x54]
jmp 0x100851a5
push ecx
push esi
call fcn.101e1f2f
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.10006b90
call fcn.101e6db2
int3