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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4d0
mov eax, dword [0x1036413c]
xor eax, esp
mov dword [esp + 0x4cc], eax
push esi
mov esi, ecx
mov ecx, 0x10478ba8
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], edi
call fcn.102758d0
mov ecx, dword [esi]
mov eax, dword [0x10452dd8]
mov edx, dword [ecx + eax]
mov dword [esp + 0x40], edx
test edx, edx
je 0x1003ae23
mov eax, dword [0x1046bafc]
add eax, 0xffffffb9
xor eax, 0xe316c6e1
mov byte [eax + ecx], 1
mov ecx, dword [esi]
mov eax, dword [0x10452dc4]
movss xmm0, dword [eax + ecx]
ucomiss xmm0, dword [esi + 4]
mov ecx, dword [0x10452c74]
lahf
test ah, 0x44
jnp 0x10039b93
movss xmm0, dword [edx + 0x6c]
subss xmm0, dword [ecx + 0x10]
comiss xmm0, dword [0x10342af0]
jbe 0x10039b93
mov ecx, edx
call fcn.10034dc0
mov ecx, dword [esi]
mov eax, dword [0x10452dc4]
mov eax, dword [eax + ecx]
mov dword [esi + 4], eax
mov ecx, dword [0x10452c74]
movss xmm0, dword [ecx + 0x10]
mov eax, dword [edi + 0x3764]
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
cmp dword [edi + 0x350], 0x13
movss dword [esp + 0x58], xmm0
jle 0x10039bc9
mov eax, dword [0x10452c74]
mov ecx, dword [edi + 0x364]
mov dword [eax + 0x10], ecx
mov ecx, dword [0x10452c74]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x14], eax
mov eax, dword [0x1046ba78]
mov ecx, dword [esi]
add eax, 0xffffffda
xor eax, 0xe316c6c0
movss xmm0, dword [eax + ecx]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [eax + ecx + 4]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [eax + ecx + 8]
movss dword [esp + 0x68], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esi]
lea edi, [esp + 0xa0]
mov esi, dword [0x10452dc0]
mov ecx, 0xb6
movss xmm0, dword [eax]
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [eax + 4]
movss dword [esp + 0x70], xmm0
movss xmm0, dword [eax + 8]
mov eax, dword [0x1046ba80]
add eax, 0xffffffd8
movss dword [esp + 0x74], xmm0
xor eax, 0xe316c6c2
movss xmm0, dword [eax + edx]
movss dword [esp + 0x78], xmm0
movss xmm0, dword [eax + edx + 4]
movss dword [esp + 0x7c], xmm0
movss xmm0, dword [eax + edx + 8]
mov eax, dword [0x1046bab0]
add eax, 0xffffffcc
movss dword [esp + 0x80], xmm0
xor eax, 0xe316c6ce
movss xmm0, dword [eax + edx]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [eax + edx + 4]
movss dword [esp + 0x88], xmm0
movss xmm0, dword [eax + edx + 8]
mov eax, dword [0x1046bab8]
add eax, 0xffffffca
movss dword [esp + 0x8c], xmm0
xor eax, 0xe316c6d0
mov eax, dword [eax + edx]
mov dword [esp + 0x90], eax
mov eax, dword [0x1046bb44]
add eax, 0xffffffa7
xor eax, 0xe316c6f3
mov eax, dword [eax + edx]
mov dword [esp + 0x94], eax
mov eax, dword [0x1046bae4]
add eax, 0xffffffbf
xor eax, 0xe316c6db
movss xmm0, dword [eax + edx]
mov eax, dword [0x1046baf0]
add eax, 0xffffffbc
movss dword [esp + 0x98], xmm0
xor eax, 0xe316c6de
movss xmm0, dword [eax + edx]
movss dword [esp + 0x9c], xmm0
mov esi, dword [edx + esi]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x18], 1
jbe 0x10039d4d
push 1
lea ecx, [esi + 8]
call fcn.10043eb0
mov ecx, dword [esi]
mov edx, ecx
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x10039d55
cmp byte [eax + 0x360], 0
jne 0x10039d4b
cmp byte [eax + 0x728], 0
jne 0x10039d55
mov edx, ecx
mov dword [esp + 0xc], 0
mov eax, dword [edx + 8]
lea ecx, [edx + 8]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x10452c18]
lea edi, [esp + 0x378]
push edi
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
call edx
mov edi, dword [esp + 0x24]
neg al
sbb al, al
and al, byte [esp + 0x4b4]
lea ecx, [edi + 0x370]
mov byte [edi + 0x3758], 0
mov dword [edi + 0x3754], 0
mov byte [esp + 0x1f], al
mov eax, dword [0x10452d54]
push ecx
mov ecx, dword [esi]
call eax
mov ecx, dword [0x1046bb5c]
mov eax, dword [esi]
add ecx, 0xffffffa1
xor ecx, 0xe316c6f9
mov eax, dword [ecx + eax]
mov ecx, dword [0x10452c1c]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
cmp byte [esp + 0x1f], 0
movss xmm1, dword [0x10342b34]
mov dword [esp + 0x20], eax
mov eax, dword [0x10452c74]
divss xmm1, dword [eax + 0x20]
movaps xmm0, xmm1
mulss xmm1, dword [edi + 0x368]
mulss xmm0, dword [edi + 0x364]
addss xmm1, dword [0x10342af0]
addss xmm0, dword [0x10342af0]
cvttss2si eax, xmm1
cvttss2si esi, xmm0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], esi
jne 0x1003a417
movss xmm1, dword [esp + 0x7c]
movss xmm0, dword [esp + 0x78]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
movss xmm1, dword [esp + 0x80]
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1002f810
mov edx, dword [esp + 0xc]
movss dword [esp + 0x28], xmm0
test edx, edx
je 0x1003a3e6
mov eax, dword [0x10452c74]
movss xmm1, dword [edx + 0x364]
divss xmm1, dword [eax + 0x20]
mov eax, dword [esp + 0x14]
addss xmm1, dword [0x10342af0]
cvttss2si ecx, xmm1
sub esi, ecx
mov dword [esp + 0x2c], ecx
mov dword [edi + 0x350], esi
mov ecx, 0xb6
mov eax, dword [eax]
lea esi, [edx + 0x3e4]
mov edi, dword [0x10452dc0]
mov edi, dword [edi + eax]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov eax, dword [edi + 0x514]
mov ecx, dword [esi]
mov dword [esp + 0x34], eax
mov eax, dword [0x10452d80]
mov dword [esp + 0x10], eax
mov eax, dword [0x10452ddc]
mov dword [esp + 0x30], ecx
cmp dword [eax + ecx], 0
jne 0x10039ee6
mov eax, dword [0x10452d5c]
call eax
mov eax, dword [0x10452ddc]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ecx, dword [eax + ecx]
call dword [esp + 0x10]
mov edx, dword [esp + 0xc]
xorps xmm1, xmm1
mov ecx, dword [edi + 0x514]
mov dword [esp + 0x10], eax
cmp ecx, dword [edx + 0x514]
jne 0x10039f30
movss xmm0, dword [edx + 0x51c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10039f3e
movss xmm0, dword [edi + 0x51c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10039f3e
mov eax, dword [esp + 0x10]
cmp eax, 0x3dc
je 0x10039f6b
cmp eax, 0x3dd
je 0x10039f6b
test byte [edi + 0x36c], 1
je 0x10039fe9
test byte [edx + 0x36c], 1
jne 0x10039f80
mov ecx, dword [0x1046bab8]
mov eax, dword [esi]
add ecx, 0xffffffca
xor ecx, 0xe316c6d0
and dword [ecx + eax], 0xfffffffe
jmp 0x10039f80
mov ecx, dword [0x1046bab8]
mov eax, dword [esi]
add ecx, 0xffffffca
xor ecx, 0xe316c6d0
or dword [ecx + eax], 1
test byte [edi + 0x36c], 1
je 0x10039fe9
movss xmm0, dword [edi + 0x4e4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10039fe9
movss xmm0, dword [edi + 0x51c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10039fe9
movss xmm0, dword [edi + 0x55c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10039fe9
movss xmm0, dword [esp + 0x28]
comiss xmm0, xmm1
jbe 0x10039fe9
mov byte [edi + 0x3758], 1
mov ecx, dword [0x1046bc10]
mov eax, dword [esi]
add ecx, 0xffffff74
xor ecx, 0xe316c726
mov dword [ecx + eax], 0
cmp byte [edi + 0x3758], 0
je 0x1003a02e
mov dword [edi + 0x388], 0
mov dword [edi + 0x38c], 0
mov dword [edi + 0x390], 0
mov dword [edi + 0x71c], 0
mov dword [edi + 0x720], 0
mov dword [edi + 0x724], 0
movss xmm0, dword [edi + 0x4b8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1003a050
movss xmm0, dword [edi + 0x4b0]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1003a0bd
mov eax, dword [edi + 0x4a4]
mov ecx, dword [esi]
mov dword [esp + 0x34], eax
mov eax, dword [0x10452d80]
mov dword [esp + 0x30], eax
mov eax, dword [0x10452ddc]
mov dword [esp + 0x10], ecx
cmp dword [eax + ecx], 0
jne 0x1003a084
mov eax, dword [0x10452d5c]
call eax
mov eax, dword [0x10452ddc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
mov ecx, dword [eax + ecx]
call dword [esp + 0x30]
cmp eax, 0x3d3
jne 0x1003a130
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x4a4]
cmp eax, dword [edi + 0x4a4]
jne 0x1003a0bd
movss xmm0, dword [edx + 0x4b8]
comiss xmm0, dword [edi + 0x4b8]
jb 0x1003a130
mov dword [edi + 0x388], 0
mov dword [edi + 0x38c], 0
mov dword [edi + 0x390], 0
mov dword [edi + 0x71c], 0
mov dword [edi + 0x720], 0
mov dword [edi + 0x724], 0
mov ecx, dword [0x1046bab8]
mov eax, dword [esi]
add ecx, 0xffffffca
xor ecx, 0xe316c6d0
or dword [ecx + eax], 1
mov ecx, dword [esi]
mov eax, dword [0x10452dd8]
mov eax, dword [ecx + eax]
mov byte [eax + 0x108], 1
mov ecx, dword [esi]
mov eax, dword [0x10452dd8]
mov eax, dword [ecx + eax]
mov byte [eax + 0x109], 0
test byte [edi + 0x36c], 1
je 0x1003a197
movss xmm0, dword [0x10342a90]
comiss xmm0, dword [esp + 0x28]
ja 0x1003a151
cmp byte [edi + 0x3758], 0
je 0x1003a197
mov eax, dword [esp + 0xc]
movss xmm2, dword [eax + 0x3d4]
movaps xmm0, xmm2
subss xmm0, dword [edi + 0x3d4]
cvttss2si eax, xmm0
movss xmm0, dword [0x10342a54]
cdq
xor eax, edx
sub eax, edx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
comiss xmm0, xmm1
jb 0x1003a197
mov ecx, dword [esi]
mov eax, dword [0x10452dd8]
mov eax, dword [ecx + eax]
movss dword [eax + 0x80], xmm2
mov eax, dword [0x10452dd8]
xorps xmm5, xmm5
mov ecx, dword [esi]
mov edx, dword [esp + 0xc]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0x554]
mov dword [ecx + 0x9c], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0x560]
mov dword [ecx + 0x98], eax
movss xmm6, dword [edi + 0x674]
ucomiss xmm6, xmm5
lahf
test ah, 0x44
jnp 0x1003a290
movss xmm4, dword [edx + 0x674]
xor ecx, ecx
movss xmm3, dword [edi + 0x678]
ucomiss xmm4, xmm5
lahf
test ah, 0x44
jnp 0x1003a26a
movss xmm2, dword [edx + 0x678]
comiss xmm2, xmm3
jbe 0x1003a20f
addss xmm3, dword [0x10342b34]
comiss xmm3, xmm2
jbe 0x1003a26a
mov eax, dword [0x10452c74]
movss xmm5, dword [0x10342af0]
movss xmm7, dword [eax + 0x20]
xor eax, eax
nop dword [eax + eax]
movaps xmm1, xmm7
mulss xmm1, xmm4
movaps xmm0, xmm1
addss xmm2, xmm0
comiss xmm2, dword [0x10342b34]
jb 0x1003a24a
movaps xmm4, xmm6
comiss xmm2, xmm3
lea ecx, [eax + 1]
jbe 0x1003a263
movaps xmm0, xmm2
mulss xmm1, xmm5
subss xmm0, xmm3
comiss xmm0, xmm1
cmova ecx, eax
comiss xmm3, xmm2
mov eax, ecx
ja 0x1003a230
cmp ecx, 0x14
jle 0x1003a276
mov ecx, 0x14
jmp 0x1003a28a
mov eax, ecx
mov dword [esp + 0x10], 0
shr eax, 0x1f
test al, al
cmovne ecx, dword [esp + 0x10]
mov dword [edi + 0x350], ecx
movss xmm1, dword [edx + 0x3d8]
movss xmm2, dword [edi + 0x3d8]
movss xmm0, dword [edi + 0x364]
subss xmm2, xmm1
subss xmm0, dword [edx + 0x364]
mov eax, dword [0x10452c74]
mov ecx, dword [0x1046bae4]
add ecx, 0xffffffbf
xor ecx, 0xe316c6db
divss xmm2, xmm0
mulss xmm2, dword [eax + 0x20]
mov eax, dword [esi]
addss xmm2, xmm1
movss dword [ecx + eax], xmm2
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0x11c]
mov dword [ecx + 0x11c], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0xec]
mov dword [ecx + 0xec], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0xfc]
mov dword [ecx + 0xfc], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0xf8]
mov dword [ecx + 0xf8], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0x80]
mov dword [ecx + 0x80], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0x84]
mov dword [ecx + 0x84], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0x88]
mov dword [ecx + 0x88], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0x8c]
mov dword [ecx + 0x8c], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x90], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0x98]
mov dword [ecx + 0x98], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0x9c]
mov dword [ecx + 0x9c], eax
mov eax, dword [0x10452dd8]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + 0xa0]
mov dword [ecx + 0xa0], eax
jmp 0x1003a41b
test byte [edi + 0x36c], 1
mov esi, dword [esp + 0x14]
je 0x1003a41b
mov ecx, dword [esi]
mov eax, dword [0x10452dd8]
mov eax, dword [ecx + eax]
mov byte [eax + 0x108], 1
mov ecx, dword [esi]
mov eax, dword [0x10452dd8]
mov eax, dword [ecx + eax]
mov byte [eax + 0x109], 0
jmp 0x1003a41b
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
movss xmm1, dword [0x10342cb4]
test eax, eax
je 0x1003a51e
mov eax, dword [eax]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0x6f8]
call eax
mov ecx, dword [esp + 0x20]
cmp dword [eax + 0xc8], 0
jne 0x1003a461
mov eax, dword [0x1046bb74]
add eax, 0xffffff9b
xor eax, 0xe316c6ff
cmp dword [eax + ecx], 0x1f
jne 0x1003a516
mov eax, dword [edi + 0x350]
test eax, eax
jle 0x1003a4dd
mov eax, dword [0x1046bbe4]
add eax, 0xffffff7f
mov edx, dword [esp + 0x18]
xor eax, 0xe316c71b
movss xmm0, dword [eax + ecx]
mov eax, dword [0x10452c74]
divss xmm0, dword [eax + 0x20]
addss xmm0, dword [0x10342af0]
cvttss2si eax, xmm0
cmp eax, dword [esp + 0x2c]
jle 0x1003a4bb
cmp edx, eax
jl 0x1003a4bb
mov dword [edi + 0x375c], 1
jne 0x1003a4dd
mov dword [edi + 0x375c], 2
jmp 0x1003a4dd
sub edx, eax
mov eax, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [edi + 0x350]
add edx, 2
cmp eax, edx
jle 0x1003a4dd
mov eax, dword [edi + 0x3ac]
mov dword [esi + 0x37dc], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x6f8]
call eax
test eax, eax
je 0x1003a516
mov edx, dword [0x1046bb04]
mov ecx, dword [esi]
add edx, 0xffffffb7
xor edx, 0xe316c6e3
cmp byte [edx + ecx], 0
je 0x1003a50c
movss xmm1, dword [eax + 0x130]
jmp 0x1003a51e
movss xmm1, dword [eax + 0x12c]
jmp 0x1003a51e
movss xmm1, dword [0x10342cb4]
cmp dword [edi + 0x375c], 1
jne 0x1003a55a
cmp dword [edi + 0x350], 1
jle 0x1003a55a
movss xmm0, dword [0x10342c48]
comiss xmm0, dword [edi + 0x3ac]
jbe 0x1003a55a
movss xmm0, dword [esi + 0x37dc]
comiss xmm0, dword [0x10342c54]
jbe 0x1003a55a
movss dword [edi + 0x3ac], xmm0
mov eax, dword [esp + 0xc]
movaps xmm3, xmm1
mov ecx, dword [esi]
mov edx, edi
push eax
call fcn.10039350
add esp, 4
cmp byte [0x10459780], 0
je 0x1003a584
push edi
push dword [esi]
mov ecx, 0x10470110
call fcn.101795d0
mov ecx, dword [0x1046ba78]
mov eax, dword [edi + 0x370]
add ecx, 0xffffffda
xor ecx, 0xe316c6c0
add ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [edi + 0x374]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x378]
mov dword [ecx + 8], eax
mov edx, dword [0x1046baf0]
mov ecx, dword [esi]
add edx, 0xffffffbc
mov eax, dword [edi + 0x3d4]
xor edx, 0xe316c6de
mov dword [edx + ecx], eax
mov ecx, dword [0x1046bb44]
mov eax, dword [esi]
add ecx, 0xffffffa7
xor ecx, 0xe316c6f3
and dword [ecx + eax], 0xffffefff
lea eax, [edi + 0x71c]
mov edx, dword [0x10452d70]
mov ecx, dword [esi]
push eax
call edx
mov ecx, dword [0x1046bb28]
mov eax, dword [edi + 0x3ac]
add ecx, 0xffffffae
xor ecx, 0xe316c6ec
add ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [edi + 0x3b0]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x3b4]
mov dword [ecx + 8], eax
mov eax, dword [0x10452c74]
movss xmm1, dword [edi + 0x3764]
movss xmm0, dword [eax]
mov ecx, dword [eax + 4]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [eax + 0x14]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [eax + 8]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [eax + 0x24]
movss dword [esp + 0x54], xmm0
movaps xmm0, xmm1
divss xmm0, dword [eax + 0x20]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x38], ecx
movss dword [eax], xmm1
mov eax, dword [0x10452c74]
mov ecx, dword [edi + 0x3764]
addss xmm0, dword [0x10342af0]
mov dword [eax + 0x10], ecx
mov ecx, dword [0x10452c74]
cvttss2si edx, xmm0
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x14], eax
mov ecx, dword [0x10452c74]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
mov eax, dword [0x10452c74]
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], edx
mov eax, dword [0x10452c74]
mov dword [eax + 0x1c], edx
mov eax, dword [0x10452c74]
mov dword [eax + 0x24], 0
mov eax, dword [0x10452c74]
mov eax, dword [eax + 4]
cmp dword [ecx + 0x70], eax
jl 0x1003a6dd
dec eax
mov dword [ecx + 0x70], eax
mov ecx, dword [0x1046bafc]
mov eax, dword [esi]
add ecx, 0xffffffb9
xor ecx, 0xe316c6e1
mov byte [ecx + eax], 1
mov ecx, dword [esi]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov byte [eax + 0x1044b9e9], 1
mov ecx, dword [esi]
mov eax, dword [ecx]
mov eax, dword [eax + 0x368]
call eax
mov ecx, dword [0x1046bafc]
mov eax, dword [esi]
add ecx, 0xffffffb9
xor ecx, 0xe316c6e1
mov byte [ecx + eax], 0
mov ecx, dword [esi]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
lea esi, [edi + 0x3e4]
mov ecx, 0xb6
mov edi, dword [0x10452dc0]
mov byte [eax + 0x1044b9e9], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edi, dword [edi + eax]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x1046bb48]
mov esi, dword [esp + 0x14]
add eax, 0xffffffa6
mov edi, dword [esp + 0x24]
xor eax, 0xe316c6f4
add eax, dword [esi]
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmm2, xmmword [eax + 0x20]
movups xmm3, xmmword [eax + 0x30]
movups xmm4, xmmword [eax + 0x40]
movups xmm5, xmmword [eax + 0x50]
movups xmmword [edi + 0x6bc], xmm0
movups xmmword [edi + 0x6cc], xmm1
movups xmmword [edi + 0x6dc], xmm2
movups xmmword [edi + 0x6ec], xmm3
movups xmmword [edi + 0x6fc], xmm4
movups xmmword [edi + 0x70c], xmm5
mov ecx, dword [esi]
mov eax, dword [0x10452dd8]
push dword [ecx + eax]
mov ecx, edi
call fcn.10037690
mov ecx, dword [esi]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
mov ecx, dword [eax]
mov dword [edi + 0x3c8], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 0x3cc], ecx
mov eax, dword [eax + 8]
mov dword [edi + 0x3d0], eax
mov ecx, dword [esi]
mov eax, dword [0x10452dd8]
mov eax, dword [ecx + eax]
mov eax, dword [eax + 0x80]
mov dword [edi + 0x3cc], eax
mov eax, dword [0x10452dbc]
mov ecx, dword [esi]
add eax, ecx
je 0x1003a828
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov eax, dword [0x10452dc8]
mov dword [eax + ecx], 0
mov eax, dword [0x10452dd0]
mov dword [eax + ecx], 0xff7fffff
mov esi, dword [esi]
mov ecx, esi
mov eax, dword [0x1046bc1c]
add eax, 0xffffff71
movss xmm0, dword [edi + 0x3764]
xor eax, 0xe316c729
mov dword [esp + 0x18], esi
movss dword [esp + 0x40], xmm0
mov eax, dword [eax + esi - 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x68]
mov dword [esp + 0x20], eax
mov eax, dword [0x1046baa4]
add eax, 0xffffffcf
xor eax, 0xe316c6cb
mov eax, dword [eax + esi]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xa28]
mov dword [esp + 0xc], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x28]
call eax
mov eax, dword [0x1046bc1c]
add eax, 0xffffff71
movss xmm0, dword [0x10342d44]
xor eax, 0xe316c729
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x2c], xmm0
mov dword [eax + esi - 0x1c], 0
mov eax, dword [0x10452dbc]
mov dword [eax + esi + 8], 0
mov eax, dword [0x10452dc8]
mov dword [eax + esi], 0
and dword [esi + 0xa28], 0xfffffffd
or dword [esi + 0x68], 2
mov dword [esi + 0xa68], 0
mov dword [esi + 0xa24], 0xffffffff
mov eax, dword [0x1046baa4]
add eax, 0xffffffcf
xor eax, 0xe316c6cb
or dword [eax + esi], 8
mov eax, dword [0x10452dc0]
cmp dword [esi + eax + 0xc], 0xc
jl 0x1003a91c
mov eax, dword [esi + eax]
movss xmm0, dword [eax + 0x2c0]
movss dword [esp + 0x2c], xmm0
mov dword [eax + 0x2c0], 0
mov eax, dword [0x10452c74]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + 4]
mov dword [eax + 4], 0xfffffc19
movss xmm0, dword [ecx + 0x3ad4]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [ecx + 0x6f24]
mov dword [ecx + 0x3ad4], 0
mov dword [ecx + 0x6f24], 0
add ecx, 4
mov byte [0x10452e0c], 1
push ecx
movss dword [esp + 0x38], xmm0
mov eax, dword [ecx]
movss xmm0, dword [esp + 0x44]
movss dword [esp], xmm0
push 0x100
mov edx, dword [eax + 0x34]
lea eax, [edi + 0x72c]
push 0x80
push eax
call edx
mov ecx, dword [0x10452c74]
mov dl, al
movss xmm0, dword [esp + 0x10]
mov byte [0x10452e0c], 0
mov dword [ecx + 4], esi
mov ecx, dword [esp + 0x18]
movss dword [ecx + 0x3ad4], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [ecx + 0x6f24], xmm0
mov eax, dword [0x10452dc0]
cmp dword [ecx + eax + 0xc], 0xc
jl 0x1003a9e4
movss xmm1, dword [esp + 0x2c]
xorps xmm0, xmm0
comiss xmm1, xmm0
jb 0x1003a9e4
mov eax, dword [ecx + eax]
movss dword [eax + 0x2c0], xmm1
mov eax, dword [0x1046bc1c]
add eax, 0xffffff71
mov esi, dword [esp + 0x30]
xor eax, 0xe316c729
movss xmm0, dword [esp + 0x44]
mov dword [eax + ecx - 0x1c], esi
mov eax, dword [0x1046baa4]
mov esi, dword [esp + 0x24]
add eax, 0xffffffcf
xor eax, 0xe316c6cb
mov dword [eax + ecx], esi
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x68], eax
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov dword [ecx + 0xa28], eax
mov byte [edi + 0x728], dl
mov ecx, dword [0x1046bb50]
mov eax, dword [esi]
add ecx, 0xffffffa4
xor ecx, 0xe316c6f6
mov eax, dword [ecx + eax + 0xc]
mov dword [edi + 0x372c], eax
mov eax, dword [0x10452c74]
mov ecx, dword [esp + 0x3c]
movss dword [eax], xmm0
mov eax, dword [0x10452c74]
movss xmm0, dword [esp + 0x48]
movss dword [eax + 0x10], xmm0
mov eax, dword [0x10452c74]
movss xmm0, dword [esp + 0x4c]
movss dword [eax + 0x14], xmm0
mov eax, dword [0x10452c74]
movss xmm0, dword [esp + 0x50]
movss dword [eax + 8], xmm0
mov eax, dword [0x10452c74]
movss xmm0, dword [esp + 0x54]
movss dword [eax + 0x24], xmm0
mov eax, dword [0x10452c74]
mov dword [eax + 4], ecx
mov eax, dword [0x10452c74]
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x1c], ecx
mov eax, dword [0x1046ba78]
movss xmm0, dword [esp + 0x60]
add eax, 0xffffffda
xor eax, 0xe316c6c0
add eax, dword [esi]
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x64]
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x68]
movss dword [eax + 8], xmm0
mov eax, dword [0x1046ba80]
movss xmm0, dword [esp + 0x78]
add eax, 0xffffffd8
xor eax, 0xe316c6c2
add eax, dword [esi]
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x7c]
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x80]
movss dword [eax + 8], xmm0
mov eax, dword [0x1046bab0]
movss xmm0, dword [esp + 0x84]
add eax, 0xffffffcc
xor eax, 0xe316c6ce
add eax, dword [esi]
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x88]
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x8c]
movss dword [eax + 8], xmm0
mov edx, dword [0x1046bab8]
mov ecx, dword [esi]
add edx, 0xffffffca
mov eax, dword [esp + 0x90]
xor edx, 0xe316c6d0
mov dword [edx + ecx], eax
mov edx, dword [0x1046bb44]
add edx, 0xffffffa7
mov ecx, dword [esi]
xor edx, 0xe316c6f3
mov eax, dword [esp + 0x94]
mov dword [edx + ecx], eax
mov ecx, dword [0x1046bae4]
mov eax, dword [esi]
add ecx, 0xffffffbf
movss xmm0, dword [esp + 0x98]
xor ecx, 0xe316c6db
movss dword [ecx + eax], xmm0
mov ecx, dword [0x1046baf0]
mov eax, dword [esi]
add ecx, 0xffffffbc
movss xmm0, dword [esp + 0x9c]
xor ecx, 0xe316c6de
movss dword [ecx + eax], xmm0
lea ecx, [esp + 0x6c]
mov eax, dword [0x10452d54]
push ecx
mov ecx, dword [esi]
call eax
mov eax, dword [0x10452dbc]
mov ecx, dword [esi]
add eax, ecx
je 0x1003abf8
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov eax, dword [0x10452dc8]
mov dword [ecx + eax], 0
mov eax, dword [0x10452dd0]
mov dword [ecx + eax], 0xff7fffff
movss xmm0, dword [esp + 0x6c]
movss dword [edi + 0x3b8], xmm0
movss xmm0, dword [esp + 0x70]
movss dword [edi + 0x3bc], xmm0
movss xmm0, dword [esp + 0x74]
movss dword [edi + 0x3c0], xmm0
mov esi, dword [esi]
mov ecx, esi
mov eax, dword [0x1046bc1c]
add eax, 0xffffff71
movss xmm0, dword [edi + 0x364]
xor eax, 0xe316c729
mov dword [esp + 0x18], esi
movss dword [esp + 0x38], xmm0
mov eax, dword [eax + esi - 0x1c]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x68]
mov dword [esp + 0x48], eax
mov eax, dword [0x1046baa4]
add eax, 0xffffffcf
xor eax, 0xe316c6cb
mov eax, dword [eax + esi]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0xa28]
mov dword [esp + 0x44], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x28]
call eax
mov eax, dword [0x1046bc1c]
add eax, 0xffffff71
xor eax, 0xe316c729
mov dword [eax + esi - 0x1c], 0
mov eax, dword [0x10452dbc]
mov dword [eax + esi + 8], 0
mov eax, dword [0x10452dc8]
mov dword [eax + esi], 0
and dword [esi + 0xa28], 0xfffffffd
or dword [esi + 0x68], 2
mov dword [esi + 0xa68], 0
mov dword [esi + 0xa24], 0xffffffff
mov eax, dword [0x1046baa4]
add eax, 0xffffffcf
xor eax, 0xe316c6cb
or dword [eax + esi], 8
mov eax, dword [0x10452dc0]
cmp dword [esi + eax + 0xc], 0xc
jl 0x1003ad02
mov eax, dword [esi + eax]
movss xmm0, dword [eax + 0x2c0]
movss dword [esp + 0x28], xmm0
mov dword [eax + 0x2c0], 0
mov eax, dword [0x10452c74]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + 4]
mov dword [eax + 4], 0xfffffc19
lea eax, [edi + 0x1f2c]
movss xmm0, dword [ecx + 0x3ad4]
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [ecx + 0x6f24]
mov dword [ecx + 0x3ad4], 0
mov dword [ecx + 0x6f24], 0
add ecx, 4
push ecx
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x3c]
movss dword [esp], xmm0
mov byte [0x10452e0c], 1
mov edx, dword [ecx]
push 0x7ff00
push 0x80
push eax
mov eax, dword [edx + 0x34]
call eax
mov eax, dword [0x10452c74]
mov ecx, dword [esp + 0x18]
movss xmm0, dword [esp + 0x3c]
mov byte [0x10452e0c], 0
mov dword [eax + 4], esi
movss dword [ecx + 0x3ad4], xmm0
movss xmm0, dword [esp + 0x54]
movss dword [ecx + 0x6f24], xmm0
mov eax, dword [0x10452dc0]
cmp dword [ecx + eax + 0xc], 0xc
jl 0x1003adc7
movss xmm1, dword [esp + 0x28]
xorps xmm0, xmm0
comiss xmm1, xmm0
jb 0x1003adc7
mov eax, dword [ecx + eax]
movss dword [eax + 0x2c0], xmm1
mov eax, dword [0x1046bc1c]
mov edx, dword [esp + 0x50]
add eax, 0xffffff71
movss xmm0, dword [esp + 0x5c]
xor eax, 0xe316c729
mov dword [eax + ecx - 0x1c], edx
mov eax, dword [0x1046baa4]
mov edx, dword [esp + 0x4c]
add eax, 0xffffffcf
xor eax, 0xe316c6cb
mov dword [eax + ecx], edx
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x68], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 0xa28], eax
mov eax, dword [0x10452c74]
movss dword [eax + 0x10], xmm0
mov eax, dword [0x10452c74]
movss xmm0, dword [esp + 0x58]
movss dword [eax + 0x14], xmm0
mov ecx, dword [esp + 0x4d4]
pop edi
pop esi
xor ecx, esp
call fcn.101d57a0
mov esp, ebp
pop ebp
ret 4