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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x108
mov eax, dword [0x57ec74]
xor eax, esp
mov dword [esp + 0x104], eax
cmp dword [0x5955e4], 0
push esi
mov esi, ecx
push edi
mov dword [esp + 0x2c], esi
je 0x499a45
push 0x55ed28
lea eax, [esp + 0x1c]
push 0x55ed2c
push eax
call fcn.0051416c
mov ecx, dword [esp + 0x24]
add esp, 0xc
test ecx, ecx
je 0x499a45
test eax, eax
jne 0x499a45
push str.GroundObjectTiles::GenerateTiles
push ecx
call fcn.00447030
push dword [esp + 0x20]
call fcn.00513a00
add esp, 0xc
call fcn.00496c90
mov eax, dword [ebp + 8]
lea ecx, [eax*4 - 0x40]
mov dword [esp + 0x1c], ecx
mov dword [esi + 0x17c], ecx
test ecx, ecx
jns 0x499a72
xor ecx, ecx
mov dword [esi + 0x17c], 0
mov dword [esp + 0x1c], ecx
cmp ecx, 0x380
jle 0x499a8d
mov ecx, 0x380
mov dword [esi + 0x17c], 0x380
mov dword [esp + 0x1c], ecx
mov eax, dword [ebp + 0xc]
lea eax, [eax*4 - 0x40]
mov dword [esp + 0x14], eax
mov dword [esi + 0x180], eax
test eax, eax
jns 0x499ab5
xor eax, eax
mov dword [esi + 0x180], 0
mov dword [esp + 0x14], eax
cmp eax, 0x380
jle 0x499acf
mov eax, 0x380
mov dword [esi + 0x180], 0x380
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], ecx
sub ecx, 0xffffff80
mov dword [esp + 0x34], eax
sub eax, 0xffffff80
mov dword [esp + 0x38], ecx
mov ecx, dword [esi + 0x1bc0]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x7c], 0x80
mov dword [esp + 0x78], 0x80
test ecx, ecx
je 0x499b1f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x1bc0], 0
lea eax, [esi + 0x1680]
mov dword [esp + 0x24], 4
mov esi, eax
nop
mov eax, 0x10
lea edi, [esi - 0xc0]
mov dword [esp + 0x18], eax
nop
mov ecx, dword [edi]
test ecx, ecx
je 0x499b56
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0x18]
mov dword [edi], 0
add edi, 0xc
sub eax, 1
mov dword [esp + 0x18], eax
jne 0x499b40
mov edi, esi
mov dword [esp + 0x20], 4
nop dword [eax]
mov eax, 4
mov dword [esp + 0x18], eax
nop dword [eax]
mov ecx, dword [edi]
test ecx, ecx
je 0x499b96
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0x18]
mov dword [edi], 0
add edi, 0xc
sub eax, 1
mov dword [esp + 0x18], eax
jne 0x499b80
sub dword [esp + 0x20], 1
jne 0x499b70
add esi, 0x180
sub dword [esp + 0x24], 1
jne 0x499b30
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x20], 0x10
lea eax, [esi + 0x1c4]
nop dword [eax]
mov edx, 0x10
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
nop dword [eax]
mov ecx, dword [eax]
test ecx, ecx
je 0x499bfa
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov dword [eax], 0
add eax, 0x14
sub edx, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
jne 0x499be0
sub dword [esp + 0x20], 1
jne 0x499bd0
mov eax, dword [0x5955f8]
push 0x596618
push 0x14
push 0x81
mov eax, dword [eax + 0x2a3d8]
push 0x81
push eax
mov ecx, dword [eax]
call dword [ecx + 0x6c]
mov eax, dword [0x5955f8]
lea edx, [esi + 0x1bc0]
push edx
push 0x14
push 0x81
mov eax, dword [eax + 0x2a3d8]
push 0x81
push eax
mov ecx, dword [eax]
call dword [ecx + 0x6c]
test eax, eax
js 0x49a2b6
movaps xmm1, xmmword [esp + 0x30]
movaps xmm0, xmmword [esp + 0x70]
mov ecx, dword [esp + 0x38]
movups xmmword [esp + 0x88], xmm1
movups xmmword [esp + 0xc8], xmm0
movups xmmword [esp + 0x98], xmm1
movups xmmword [esp + 0xd8], xmm0
movups xmmword [esp + 0xa8], xmm1
movups xmmword [esp + 0xe8], xmm0
movups xmmword [esp + 0xb8], xmm1
movups xmmword [esp + 0xf8], xmm0
cmp ecx, 0x1ff
jle 0x499ce0
mov eax, 0x280
mov dword [esp + 0x90], 0x200
sub eax, ecx
mov dword [esp + 0xb0], 0x200
mov dword [esp + 0xd0], eax
mov dword [esp + 0xf0], eax
mov edx, dword [esp + 0x1c]
mov ecx, 0x200
cmp edx, ecx
jge 0x499d0d
mov eax, ecx
mov dword [esp + 0x98], ecx
sub eax, edx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xd8], eax
mov dword [esp + 0xf8], eax
mov edx, dword [esp + 0x3c]
cmp edx, 0x1ff
jle 0x499d45
mov eax, ecx
sub eax, edx
add dword [esp + 0x94], eax
mov eax, ecx
sub eax, edx
add dword [esp + 0xd4], eax
mov eax, ecx
sub eax, edx
add dword [esp + 0xa4], eax
mov eax, ecx
sub eax, edx
add dword [esp + 0xe4], eax
mov edx, dword [esp + 0x14]
cmp edx, ecx
jge 0x499d77
mov eax, ecx
sub eax, edx
add dword [esp + 0xac], eax
mov eax, ecx
sub eax, edx
add dword [esp + 0xec], eax
mov eax, ecx
sub eax, edx
sub ecx, edx
add dword [esp + 0xbc], eax
add dword [esp + 0xfc], ecx
mov eax, dword [esi + 0x110]
test eax, eax
jne 0x49a015
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x90]
jge 0x499dcd
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x94]
jge 0x499dcd
push 0
push 0
push 1
lea eax, [esp + 0x94]
push eax
push str.dat_terrain_512.png
lea eax, [esp + 0xdc]
push eax
push 0
push dword [esi + 0x1bc0]
call fcn.00403a73
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0xa0]
jge 0x499e2b
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0xa4]
jge 0x499e2b
sub dword [esp + 0x98], 0x200
lea eax, [esp + 0x98]
sub dword [esp + 0xa0], 0x200
push 0
push 0
push 1
push eax
push str.dat_terrain_512b.png
lea eax, [esp + 0xec]
push eax
push 0
push dword [esi + 0x1bc0]
call fcn.00403a73
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0xb0]
jge 0x499e89
mov eax, dword [esp + 0xac]
cmp eax, dword [esp + 0xb4]
jge 0x499e89
sub dword [esp + 0xac], 0x200
lea eax, [esp + 0xa8]
sub dword [esp + 0xb4], 0x200
push 0
push 0
push 1
push eax
push str.dat_terrain_512c.png
lea eax, [esp + 0xfc]
push eax
push 0
push dword [esi + 0x1bc0]
call fcn.00403a73
mov eax, dword [esp + 0xb8]
cmp eax, dword [esp + 0xc0]
jge 0x499efd
mov eax, dword [esp + 0xbc]
cmp eax, dword [esp + 0xc4]
jge 0x499efd
sub dword [esp + 0xb8], 0x200
lea eax, [esp + 0xb8]
sub dword [esp + 0xc0], 0x200
sub dword [esp + 0xbc], 0x200
sub dword [esp + 0xc4], 0x200
push 0
push 0
push 1
push eax
push str.dat_terrain_512d.png
lea eax, [esp + 0x10c]
push eax
push 0
push dword [esi + 0x1bc0]
call fcn.00403a73
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x90]
jge 0x499f45
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x94]
jge 0x499f45
push 0
push 0
push 1
lea eax, [esp + 0x94]
push eax
push str.dat_roads_512.png
lea eax, [esp + 0xdc]
push eax
push 0
push dword [0x596618]
call fcn.00403a73
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0xa0]
jge 0x499f8d
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0xa4]
jge 0x499f8d
push 0
push 0
push 1
lea eax, [esp + 0xa4]
push eax
push str.dat_roads_512b.png
lea eax, [esp + 0xec]
push eax
push 0
push dword [0x596618]
call fcn.00403a73
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0xb0]
jge 0x499fd5
mov eax, dword [esp + 0xac]
cmp eax, dword [esp + 0xb4]
jge 0x499fd5
push 0
push 0
push 1
lea eax, [esp + 0xb4]
push eax
push str.dat_roads_512c.png
lea eax, [esp + 0xfc]
push eax
push 0
push dword [0x596618]
call fcn.00403a73
mov eax, dword [esp + 0xb8]
cmp eax, dword [esp + 0xc0]
jge 0x49a2b6
mov eax, dword [esp + 0xbc]
cmp eax, dword [esp + 0xc4]
jge 0x49a2b6
push 0
push 0
push 1
lea eax, [esp + 0xc4]
push eax
push str.dat_roads_512d.png
jmp 0x49a2a1
cmp eax, 1
jne 0x49a2b6
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x90]
jge 0x49a066
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x94]
jge 0x49a066
push 0
push 0
push 1
lea eax, [esp + 0x94]
push eax
push str.dat_terrain2_512.png
lea eax, [esp + 0xdc]
push eax
push 0
push dword [esi + 0x1bc0]
call fcn.00403a73
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0xa0]
jge 0x49a0c4
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0xa4]
jge 0x49a0c4
sub dword [esp + 0x98], 0x200
lea eax, [esp + 0x98]
sub dword [esp + 0xa0], 0x200
push 0
push 0
push 1
push eax
push str.dat_terrain2_512b.png
lea eax, [esp + 0xec]
push eax
push 0
push dword [esi + 0x1bc0]
call fcn.00403a73
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0xb0]
jge 0x49a122
mov eax, dword [esp + 0xac]
cmp eax, dword [esp + 0xb4]
jge 0x49a122
sub dword [esp + 0xac], 0x200
lea eax, [esp + 0xa8]
sub dword [esp + 0xb4], 0x200
push 0
push 0
push 1
push eax
push str.dat_terrain2_512c.png
lea eax, [esp + 0xfc]
push eax
push 0
push dword [esi + 0x1bc0]
call fcn.00403a73
mov eax, dword [esp + 0xb8]
cmp eax, dword [esp + 0xc0]
jge 0x49a196
mov eax, dword [esp + 0xbc]
cmp eax, dword [esp + 0xc4]
jge 0x49a196
sub dword [esp + 0xb8], 0x200
lea eax, [esp + 0xb8]
sub dword [esp + 0xc0], 0x200
sub dword [esp + 0xbc], 0x200
sub dword [esp + 0xc4], 0x200
push 0
push 0
push 1
push eax
push str.dat_terrain2_512d.png
lea eax, [esp + 0x10c]
push eax
push 0
push dword [esi + 0x1bc0]
call fcn.00403a73
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x90]
jge 0x49a1de
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x94]
jge 0x49a1de
push 0
push 0
push 1
lea eax, [esp + 0x94]
push eax
push str.dat_roads2_512.png
lea eax, [esp + 0xdc]
push eax
push 0
push dword [0x596618]
call fcn.00403a73
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0xa0]
jge 0x49a226
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0xa4]
jge 0x49a226
push 0
push 0
push 1
lea eax, [esp + 0xa4]
push eax
push str.dat_roads2_512b.png
lea eax, [esp + 0xec]
push eax
push 0
push dword [0x596618]
call fcn.00403a73
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0xb0]
jge 0x49a26e
mov eax, dword [esp + 0xac]
cmp eax, dword [esp + 0xb4]
jge 0x49a26e
push 0
push 0
push 1
lea eax, [esp + 0xb4]
push eax
push str.dat_roads2_512c.png
lea eax, [esp + 0xfc]
push eax
push 0
push dword [0x596618]
call fcn.00403a73
mov eax, dword [esp + 0xb8]
cmp eax, dword [esp + 0xc0]
jge 0x49a2b6
mov eax, dword [esp + 0xbc]
cmp eax, dword [esp + 0xc4]
jge 0x49a2b6
push 0
push 0
push 1
lea eax, [esp + 0xc4]
push eax
push str.dat_roads2_512d.png
lea eax, [esp + 0x10c]
push eax
push 0
push dword [0x596618]
call fcn.00403a73
mov ecx, dword [esi + 0x1bc0]
xor eax, eax
test ecx, ecx
xorps xmm0, xmm0
movss dword [esp + 0x18], xmm0
setne al
cmp dword [0x596618], 0
mov dword [esp + 0x1c], eax
je 0x49a981
test ecx, ecx
je 0x49a981
mov eax, dword [ecx]
lea edx, [esp + 0x60]
push 0x8810
push 0
push edx
push ecx
call dword [eax + 0x24]
xor ecx, ecx
lea edx, [esp + 0x68]
test eax, eax
mov eax, dword [esp + 0x1c]
push 0x8810
cmovs eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [0x596618]
push 0
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
test eax, eax
js 0x49a981
cmp dword [esp + 0x1c], 0
je 0x49a981
mov eax, dword [esp + 0x64]
xor edi, edi
mov edx, dword [esp + 0x6c]
movss xmm4, dword [0x56dbc4]
movss xmm5, dword [0x56daa0]
nop word [eax + eax]
movd xmm3, edi
mov ecx, eax
add eax, dword [esp + 0x60]
xorps xmm2, xmm2
cvtdq2ps xmm3, xmm3
mov dword [esp + 0x58], eax
mov eax, edx
add edx, dword [esp + 0x68]
mov dword [esp + 0x5c], edx
xor edx, edx
mov dword [esp + 0x14], eax
imul esi, edi, 0x81
sub ecx, eax
addss xmm3, xmm3
mov dword [esp + 0x1c], edx
movss dword [esp + 0x28], xmm2
mov dword [esp + 0x54], ecx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x2c]
movss dword [esp + 0x50], xmm3
nop dword [eax]
movzx eax, byte [ecx + eax]
movd xmm0, dword [esi + 0x17c]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
mov eax, dword [esp + 0x24]
mulss xmm0, xmm4
add eax, edx
cvtdq2ps xmm1, xmm1
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
mulss xmm0, xmm5
divss xmm1, dword [0x56dc50]
addss xmm0, xmm2
mulss xmm1, dword [0x56dbf0]
movss dword [esi + ecx*4 + 0x1c50], xmm0
movzx eax, byte [eax]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + 0x24]
add eax, 0xca
add eax, edx
mulss xmm0, dword [0x56da14]
lea eax, [eax + eax*8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
addss xmm0, xmm1
movss dword [esi + ecx*4 + 0x1c54], xmm0
movd xmm0, dword [esi + 0x180]
cvtdq2ps xmm0, xmm0
movss dword [esi + ecx*4 + 0x1c6c], xmm3
mulss xmm0, xmm4
mulss xmm0, xmm5
addss xmm0, dword [esp + 0x18]
movss dword [esi + ecx*4 + 0x1c58], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
addss xmm0, xmm0
movss dword [esi + ecx*4 + 0x1c70], xmm0
mov ecx, esi
movzx eax, byte [eax]
push eax
mov eax, dword [esi + 0x17c]
add eax, edx
push eax
mov eax, dword [esi + 0x180]
add eax, edi
push eax
call fcn.0049b180
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x14], 3
mov dword [esi + ecx*4], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x49a499
cmp dword [esi + 0x17c], eax
je 0x49a4ca
test edi, edi
jne 0x49a4a5
cmp dword [esi + 0x180], edi
je 0x49a4ca
cmp eax, 0x7f
jne 0x49a4b6
cmp dword [esi + 0x17c], 0x380
je 0x49a4ca
cmp edi, 0x80
jne 0x49a515
cmp dword [esi + 0x180], 0x380
jne 0x49a515
mov dword [esi + ecx*4], 0xffffffff
call fcn.0051780c
mov ecx, dword [esp + 0x20]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + 0x1c]
addss xmm0, xmm0
divss xmm0, dword [0x56dc7c]
subss xmm0, dword [0x56daf0]
addss xmm0, dword [0x56dba0]
addss xmm0, dword [esi + ecx*4 + 0x1c54]
movss dword [esi + ecx*4 + 0x1c54], xmm0
jmp 0x49a519
mov ecx, dword [esp + 0x20]
movss xmm5, dword [0x56dcac]
xorps xmm6, xmm6
xorps xmm7, xmm7
xorps xmm3, xmm3
movaps xmm2, xmm5
xorps xmm4, xmm4
test edi, edi
je 0x49a56a
movss xmm5, dword [esi + ecx*4 + 0xa2c]
movss xmm6, dword [esi + ecx*4 + 0xa30]
movss xmm7, dword [esi + ecx*4 + 0xa34]
subss xmm5, dword [esi + ecx*4 + 0x1c50]
subss xmm6, dword [esi + ecx*4 + 0x1c54]
subss xmm7, dword [esi + ecx*4 + 0x1c58]
test eax, eax
je 0x49a5a4
movss xmm3, dword [esi + ecx*4 + 0x1c2c]
movss xmm2, dword [esi + ecx*4 + 0x1c30]
movss xmm4, dword [esi + ecx*4 + 0x1c34]
subss xmm3, dword [esi + ecx*4 + 0x1c50]
subss xmm2, dword [esi + ecx*4 + 0x1c54]
subss xmm4, dword [esi + ecx*4 + 0x1c58]
movaps xmm0, xmm2
movaps xmm1, xmm4
mulss xmm0, xmm7
add ecx, 0x717
mulss xmm1, xmm6
mulss xmm2, xmm5
subss xmm1, xmm0
mulss xmm4, xmm5
movaps xmm0, xmm3
mulss xmm3, xmm6
mulss xmm0, xmm7
subss xmm2, xmm3
subss xmm0, xmm4
movss dword [esp + 0x38], xmm2
mov eax, dword [esp + 0x38]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x70]
push eax
lea eax, [esi + ecx*4]
unpcklps xmm1, xmm0
push eax
movq qword [esp + 0x78], xmm1
call fcn.00404e16
movss xmm2, dword [esp + 0x28]
movss xmm1, dword [0x56db68]
mov edx, dword [esp + 0x1c]
addss xmm2, xmm1
movss xmm3, dword [esp + 0x50]
inc edx
movss xmm4, dword [0x56dbc4]
movss xmm5, dword [0x56daa0]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x54]
movss dword [esp + 0x28], xmm2
mov dword [esp + 0x1c], edx
cmp edx, 0x81
jl 0x49a3a0
movss xmm0, dword [esp + 0x18]
inc edi
mov eax, dword [esp + 0x58]
addss xmm0, xmm1
mov edx, dword [esp + 0x5c]
movss dword [esp + 0x18], xmm0
cmp edi, 0x81
jl 0x49a350
mov eax, dword [0x596618]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov ecx, dword [0x596618]
lea edi, [esi + 0x1c4]
test ecx, ecx
je 0x49a697
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x596618], 0
mov eax, dword [esi + 0x1bc0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
xor eax, eax
lea ecx, [esi + 0x6570]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
nop dword [eax]
nop word [eax + eax]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], 0x10
mov eax, dword [0x5955f8]
push edi
push 1
mov dword [edi - 4], 3
mov dword [edi], 0
mov eax, dword [eax + 0x2a3d8]
push 0x152
push 8
push 0xb64
mov ecx, dword [eax]
push eax
call dword [ecx + 0x5c]
test eax, eax
js 0x49a93f
mov eax, dword [edi]
lea edx, [esp + 0x14]
push 0x800
push edx
push 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x2c]
test eax, eax
js 0x49a93f
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x18], eax
nop dword [eax]
add eax, dword [esp + 0x20]
lea edx, [eax + eax*8]
movups xmm0, xmmword [esi + edx*4 + 0x1c50]
movups xmmword [ecx], xmm0
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x1c60]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + edx*4 + 0x1c70]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x2e74]
add eax, 0x24
mov dword [esp + 0x14], eax
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x2e84]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + edx*4 + 0x2e94]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x4098]
add eax, 0x24
mov dword [esp + 0x14], eax
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x40a8]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + edx*4 + 0x40b8]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x52bc]
add eax, 0x24
mov dword [esp + 0x14], eax
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x52cc]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + edx*4 + 0x52dc]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, 0x24
cmp dword [esp + 0x18], 4
mov dword [esp + 0x14], ecx
jne 0x49a821
mov eax, dword [esp + 0x1c]
movq xmm0, qword [eax]
movq qword [edi + 4], xmm0
mov eax, dword [eax + 8]
mov dword [edi + 0xc], eax
movups xmm0, xmmword [esi + edx*4 + 0x64e0]
movups xmmword [ecx], xmm0
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x64f0]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + edx*4 + 0x6500]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x7704]
add eax, 0x24
mov dword [esp + 0x14], eax
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x7714]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + edx*4 + 0x7724]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x8928]
add eax, 0x24
mov dword [esp + 0x14], eax
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x8938]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + edx*4 + 0x8948]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x9b4c]
add eax, 0x24
mov dword [esp + 0x14], eax
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0x9b5c]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + edx*4 + 0x9b6c]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0xad70]
add eax, 0x24
mov dword [esp + 0x14], eax
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [esi + edx*4 + 0xad80]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + edx*4 + 0xad90]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
inc eax
add ecx, 0x24
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
cmp eax, 9
jl 0x49a730
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
add dword [esp + 0x20], 0x408
add edi, 0x14
add dword [esp + 0x1c], 0x9120
sub dword [esp + 0x28], 1
jne 0x49a6d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
add eax, 8
add ecx, 0x120
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
cmp eax, 0x80
jl 0x49a6c0
call fcn.00496d80
cmp dword [0x5955e4], 0
je 0x49a9c9
push 0x55ed28
lea eax, [esp + 0x2c]
push 0x55ed2c
push eax
call fcn.0051416c
mov ecx, dword [esp + 0x34]
add esp, 0xc
test ecx, ecx
je 0x49a9c9
test eax, eax
jne 0x49a9c9
push str._Done_n
push ecx
call fcn.00447030
push dword [esp + 0x30]
call fcn.00513a00
add esp, 0xc
mov ecx, dword [esp + 0x10c]
pop edi
pop esi
xor ecx, esp
call fcn.004cb96a
mov esp, ebp
pop ebp
ret 8