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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2e0
mov dword [esp + 0x14], ecx
mov eax, dword [0x101d84bc]
mov dword [esp + 0x118], eax
mov ecx, dword [esp + 0x118]
movzx edx, byte [ecx + 0x1860]
test edx, edx
jne 0x10054193
jmp 0x10054d4f
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x30]
and ecx, 1
jne 0x100541a4
jmp 0x10054d4f
mov edx, dword [0x101d96d0]
cmp dword [edx], 0
je 0x100541b9
mov dword [esp + 0x40], 1
jmp 0x100541c1
mov dword [esp + 0x40], 0
movzx eax, byte [esp + 0x40]
test eax, eax
jne 0x100541cf
jmp 0x10054d4f
mov ecx, dword [esp + 0x28c]
mov dword [esp + 0x18], ecx
mov edx, dword [0x101d96d0]
mov eax, dword [edx]
mov dword [esp + 0x18], eax
mov ecx, 4
imul edx, ecx, 0x11c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [edx + ecx]
mov dword [esp + 0x11c], edx
lea eax, [esp + 0x2b0]
push eax
mov ecx, dword [esp + 0x1c]
call dword [esp + 0x120]
mov ecx, dword [eax]
mov dword [esp + 0x124], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x128], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x12c], eax
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x130], ecx
mov edx, dword [esp + 0x128]
mov dword [esp + 0x134], edx
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x138], eax
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x218], ecx
mov edx, dword [esp + 0x134]
mov dword [esp + 0x21c], edx
mov eax, dword [esp + 0x138]
mov dword [esp + 0x220], eax
mov ecx, dword [esp + 0x284]
mov dword [esp + 0x1c], ecx
mov edx, dword [0x101d96d0]
mov eax, dword [edx]
mov dword [esp + 0x1c], eax
mov ecx, 4
imul edx, ecx, 0x159
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [edx + ecx]
mov dword [esp + 0x120], edx
lea eax, [esp + 0x2c0]
push eax
mov ecx, dword [esp + 0x20]
call dword [esp + 0x124]
mov ecx, dword [eax]
mov dword [esp + 0x144], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x148], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x14c], eax
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x150], ecx
mov edx, dword [esp + 0x148]
mov dword [esp + 0x154], edx
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x158], eax
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x154]
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x158]
mov dword [esp + 0x94], eax
mov ecx, dword [0x101d84c4]
mov dword [esp + 0x98], ecx
mov edx, dword [esp + 0x98]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x44], eax
call fcn.10050f00
mov dword [esp + 0x9c], eax
mov ecx, 4
shl ecx, 2
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
mov ecx, dword [ecx + eax]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x9c]
push edx
mov ecx, dword [esp + 0x48]
call dword [esp + 0xa4]
mov dword [esp + 4], eax
mov dword [esp + 0xc], 0
movss xmm0, dword [0x101ca580]
movss dword [esp + 8], xmm0
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
cmp dword [esp + 4], 0
je 0x100543d3
call fcn.10050f10
mov dword [esp + 0xc], eax
jmp 0x10054c06
mov dword [esp + 0x10], 1
jmp 0x100543e8
mov ecx, dword [esp + 0x10]
add ecx, 1
mov dword [esp + 0x10], ecx
mov edx, dword [0x101d84c4]
mov dword [esp + 0xa4], edx
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x48], ecx
mov edx, 4
imul eax, edx, 0x14
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
mov eax, dword [eax + edx]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x48]
call dword [esp + 0xa8]
cmp dword [esp + 0x10], eax
jg 0x10054711
mov ecx, dword [0x101d84c4]
mov dword [esp + 0xac], ecx
mov edx, dword [esp + 0xac]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x4c], eax
mov ecx, 4
imul edx, ecx, 3
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
mov edx, dword [edx + ecx]
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [esp + 0x50]
call dword [esp + 0xb4]
mov dword [esp], eax
cmp dword [esp], 0
je 0x10054525
mov ecx, dword [0x101d96d0]
mov edx, dword [ecx]
mov dword [esp + 0xb4], edx
mov eax, dword [esp]
cmp eax, dword [esp + 0xb4]
je 0x10054525
mov ecx, dword [esp]
add ecx, 8
mov dword [esp + 0x50], ecx
mov edx, 4
imul eax, edx, 9
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
mov eax, dword [eax + edx]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x50]
call dword [esp + 0xb8]
movzx ecx, al
test ecx, ecx
jne 0x10054525
mov edx, 4
imul eax, edx, 0x9b
mov ecx, dword [esp]
mov edx, dword [ecx]
mov eax, dword [eax + edx]
mov dword [esp + 0xbc], eax
mov ecx, dword [esp]
call dword [esp + 0xbc]
movzx ecx, al
test ecx, ecx
je 0x10054525
mov edx, dword [0x101d96d0]
mov eax, dword [edx]
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0xc0]
push ecx
mov ecx, dword [esp + 4]
call fcn.10169700
movzx edx, al
test edx, edx
jne 0x1005452a
jmp 0x100543dd
push 8
lea eax, [esp + 0x2a8]
push eax
mov ecx, dword [esp + 8]
call fcn.10053b50
lea ecx, [esp + 0x2a4]
mov dword [esp + 0x5c], ecx
mov edx, dword [0x101d84bc]
mov dword [esp + 0xc4], edx
mov eax, dword [esp + 0xc4]
movzx ecx, byte [eax + 0x1862]
test ecx, ecx
je 0x1005459e
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x230], edx
mov eax, dword [esp + 0x90]
mov dword [esp + 0x234], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x238], ecx
lea edx, [esp + 0x230]
mov dword [esp + 0x54], edx
jmp 0x100545c0
xor eax, eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], eax
lea ecx, [esp + 0x23c]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x14]
add eax, 0xc
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
movss xmm0, dword [ecx]
addss xmm0, dword [edx]
movss dword [esp + 0x248], xmm0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
movss xmm0, dword [eax + 4]
addss xmm0, dword [ecx + 4]
movss dword [esp + 0x24c], xmm0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
movss xmm0, dword [edx + 8]
addss xmm0, dword [eax + 8]
movss dword [esp + 0x250], xmm0
lea ecx, [esp + 0x248]
push ecx
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x21c]
call fcn.100774a0
movss dword [esp + 0x168], xmm2
movss dword [esp + 0x164], xmm1
movss dword [esp + 0x160], xmm0
mov edx, dword [esp + 0x160]
mov dword [esp + 0x174], edx
mov eax, dword [esp + 0x164]
mov dword [esp + 0x178], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x17c], ecx
mov edx, dword [esp + 0x174]
mov dword [esp + 0x20c], edx
mov eax, dword [esp + 0x178]
mov dword [esp + 0x210], eax
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x214], ecx
push ecx
fld dword [esp + 0x214]
fstp dword [esp]
push ecx
fld dword [esp + 0x214]
fstp dword [esp]
call fcn.10192393
add esp, 8
fstp dword [esp + 0x58]
movss xmm0, dword [esp + 8]
comiss xmm0, dword [esp + 0x58]
jbe 0x1005470c
movss xmm0, dword [esp + 0x58]
movss dword [esp + 8], xmm0
mov edx, dword [esp]
mov dword [esp + 4], edx
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
mov dword [esp + 0x80], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x84], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x88], eax
jmp 0x100543dd
cmp dword [esp + 4], 0
je 0x10054c06
mov ecx, dword [esp + 4]
add ecx, 8
mov dword [esp + 0x60], ecx
mov edx, 4
imul eax, edx, 0xa
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx]
mov eax, dword [eax + edx]
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0x60]
call dword [esp + 0xc8]
mov dword [esp + 0xcc], eax
imul ecx, dword [esp + 0xcc], 0x14
mov edx, dword [ecx + 0x101dfab8]
mov dword [esp + 0xd0], edx
cmp dword [esp + 0xd0], 3
jbe 0x10054968
mov eax, dword [0x101d84bc]
mov dword [esp + 0xd4], eax
mov ecx, dword [esp + 0xd4]
movzx edx, byte [ecx + 0x1861]
test edx, edx
jne 0x1005496d
mov eax, dword [0x101d84b8]
mov dword [esp + 0xd8], eax
mov ecx, dword [esp + 0xd8]
mov edx, dword [ecx + 0x38]
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0x80]
mov dword [esp + 0x180], eax
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x184], ecx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x188], edx
mov eax, dword [esp + 0x180]
mov dword [esp + 0x1d0], eax
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x1d4], ecx
mov edx, dword [esp + 0x188]
mov dword [esp + 0x1d8], edx
mov eax, dword [esp + 0x288]
mov dword [esp + 0x28], eax
mov ecx, dword [0x101d96d0]
mov edx, dword [ecx]
mov dword [esp + 0x28], edx
mov eax, 4
imul ecx, eax, 0x11c
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov ecx, dword [ecx + eax]
mov dword [esp + 0xdc], ecx
lea edx, [esp + 0x2d0]
push edx
mov ecx, dword [esp + 0x2c]
call dword [esp + 0xe0]
mov ecx, dword [eax]
mov dword [esp + 0x194], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x198], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x19c], eax
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x1a0], ecx
mov edx, dword [esp + 0x198]
mov dword [esp + 0x1a4], edx
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x1a8], eax
mov ecx, dword [esp + 0x1a0]
mov dword [esp + 0x1b4], ecx
mov edx, dword [esp + 0x1a4]
mov dword [esp + 0x1b8], edx
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1bc], eax
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x1c0], ecx
mov edx, dword [esp + 0x1b8]
mov dword [esp + 0x1c4], edx
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0x1c8], eax
mov ecx, dword [esp + 0x1c0]
mov dword [esp + 0x1e0], ecx
mov edx, dword [esp + 0x1c4]
mov dword [esp + 0x1e4], edx
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x1e8], eax
push 1
sub esp, 0xc
mov ecx, esp
mov edx, dword [esp + 0x1e0]
mov dword [ecx], edx
mov eax, dword [esp + 0x1e4]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x1e8]
mov dword [ecx + 8], edx
sub esp, 0xc
mov eax, esp
mov ecx, dword [esp + 0x1fc]
mov dword [eax], ecx
mov edx, dword [esp + 0x200]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x204]
mov dword [eax + 8], ecx
call dword [esp + 0xfc]
add esp, 0x1c
movzx edx, al
test edx, edx
je 0x1005496d
jmp 0x10054d4f
movss xmm0, dword [0x101ca580]
movss dword [esp + 8], xmm0
mov eax, dword [esp + 4]
add eax, 8
mov dword [esp + 0x64], eax
mov ecx, 4
imul edx, ecx, 0xa
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
mov edx, dword [edx + ecx]
mov dword [esp + 0xe4], edx
mov ecx, dword [esp + 0x64]
call dword [esp + 0xe4]
mov dword [esp + 0xe8], eax
imul eax, dword [esp + 0xe8], 0x14
add eax, 0x101dfaa8
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xec], ecx
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0xc]
mov dword [esp + 0xf0], eax
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xf0]
mov dword [esp + 0x7c], edx
lea eax, [esp + 0x290]
push eax
mov ecx, dword [esp + 0x30]
call fcn.10050f70
jmp 0x10054a0e
mov ecx, dword [esp + 0x7c]
add ecx, 1
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x294]
jne 0x10054a25
mov dword [esp + 0x68], 1
jmp 0x10054a2d
mov dword [esp + 0x68], 0
movzx eax, byte [esp + 0x68]
test eax, eax
jne 0x10054c06
lea ecx, [esp + 0x78]
call fcn.10050f20
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x38]
movss xmm0, dword [ecx + 0xc]
call fcn.10054f20
movzx edx, al
test edx, edx
jne 0x10054a5e
jmp 0x10054a03
mov eax, dword [0x101d84bc]
mov dword [esp + 0xf4], eax
mov ecx, dword [esp + 0xf4]
movzx edx, byte [ecx + 0x1862]
test edx, edx
je 0x10054ab3
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x254], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x258], ecx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x25c], edx
lea eax, [esp + 0x254]
mov dword [esp + 0x6c], eax
jmp 0x10054ad5
xor ecx, ecx
mov dword [esp + 0x260], ecx
mov dword [esp + 0x264], ecx
mov dword [esp + 0x268], ecx
lea edx, [esp + 0x260]
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x14]
add ecx, 0xc
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
movss xmm0, dword [edx]
addss xmm0, dword [eax]
movss dword [esp + 0x26c], xmm0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
movss xmm0, dword [ecx + 4]
addss xmm0, dword [edx + 4]
movss dword [esp + 0x270], xmm0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
movss xmm0, dword [eax + 8]
addss xmm0, dword [ecx + 8]
movss dword [esp + 0x274], xmm0
lea edx, [esp + 0x26c]
push edx
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x21c]
call fcn.100774a0
movss dword [esp + 0x1f8], xmm2
movss dword [esp + 0x1f4], xmm1
movss dword [esp + 0x1f0], xmm0
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x200], eax
mov ecx, dword [esp + 0x1f4]
mov dword [esp + 0x204], ecx
mov edx, dword [esp + 0x1f8]
mov dword [esp + 0x208], edx
mov eax, dword [esp + 0x200]
mov dword [esp + 0x224], eax
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x228], ecx
mov edx, dword [esp + 0x208]
mov dword [esp + 0x22c], edx
push ecx
fld dword [esp + 0x22c]
fstp dword [esp]
push ecx
fld dword [esp + 0x22c]
fstp dword [esp]
call fcn.10192393
add esp, 8
fstp dword [esp + 0x70]
movss xmm0, dword [esp + 8]
comiss xmm0, dword [esp + 0x70]
jbe 0x10054c01
movss xmm0, dword [esp + 0x70]
movss dword [esp + 8], xmm0
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
jmp 0x10054a03
cmp dword [esp + 0xc], 0
je 0x10054d4f
cmp dword [esp + 4], 0
je 0x10054d4f
mov ecx, dword [0x101d84b8]
mov dword [esp + 0xf8], ecx
mov edx, dword [esp + 0xf8]
mov eax, dword [edx + 0x10]
movss xmm0, dword [eax + 0x20]
movss dword [esp + 0x100], xmm0
call fcn.10054d80
movss dword [esp + 0xfc], xmm0
cvtss2sd xmm0, dword [esp + 0xfc]
movsd qword [esp + 0x298], xmm0
fld qword [esp + 0x298]
cvtss2sd xmm0, dword [esp + 0x100]
movsd qword [esp + 0x278], xmm0
fld qword [esp + 0x278]
call fcn.10190190
fstp dword [esp + 0x74]
mov ecx, dword [esp + 0xc]
movss xmm0, dword [ecx + 0xc]
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [esp + 0x74]
comiss xmm0, dword [0x101ca16c]
jbe 0x10054cd6
mov edx, dword [0x101d84b8]
mov dword [esp + 0x104], edx
mov eax, dword [esp + 0x104]
mov ecx, dword [eax + 0x10]
movss xmm0, dword [ecx + 0x20]
subss xmm0, dword [esp + 0x74]
addss xmm0, dword [esp + 0x3c]
movss dword [esp + 0x3c], xmm0
mov edx, dword [0x101d84b8]
mov dword [esp + 0x108], edx
mov eax, dword [esp + 0x108]
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x10c], ecx
mov edx, dword [esp + 0xc]
push edx
mov ecx, dword [esp + 8]
call dword [esp + pe_nt_image_headers32]
call fcn.10054d80
addss xmm0, dword [esp + 0x3c]
movss dword [esp + 0x114], xmm0
mov eax, dword [0x101d84b8]
mov dword [esp + 0x110], eax
mov ecx, dword [esp + 0x110]
mov edx, dword [ecx + 0x10]
movss xmm0, dword [esp + 0x114]
divss xmm0, dword [edx + 0x20]
addss xmm0, dword [0x101ca28c]
cvttss2si eax, xmm0
mov ecx, dword [esp + 0x14]
mov dword [ecx + 8], eax
mov esp, ebp
pop ebp
ret