Function at 0x4e9ae0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push esi
mov esi, ecx
push edi
or ecx, 0xffffffff
lea edi, [esi + 4]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
mov ecx, esi
call fcn.004eb4f0
push 3
lea eax, [edi + esi + 1]
push 0x5c9f44
push eax
call fcn.00515d80
add esp, 0xc
mov ecx, esi
test eax, eax
pop edi
jne 0x4e9b22
mov dword [esi + 0x44], 1
pop esi
jmp 0x4eb690
pop esi
jmp 0x4e9f40
push 0xffffffffffffffff
push 0x5a3d7e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb94
push ebx
push ebp
push esi
push 0x18
mov ebx, ecx
call fcn.00509a33
add esp, 4
mov dword [esp + 0x40], eax
xor esi, esi
cmp eax, esi
mov dword [esp + 0xba8], esi
je 0x4e9f8a
lea ecx, [ebx + 4]
push ecx
mov ecx, eax
call fcn.004a0b90
mov ebp, eax
jmp 0x4e9f8c
xor ebp, ebp
mov eax, dword [ebp]
mov dword [esp + 0xba8], 0xffffffff
cmp eax, 0xffffffff
mov ecx, ebp
je 0x4eb06d
mov dword [esp + 0x30], esi
mov dword [esp + 0x70], 0
mov dword [ebx + 0x64], esi
mov dword [ebx + 0x6c], esi
mov dword [ebx + 0x80], esi
call fcn.004a0cb0
test eax, eax
jle 0x4eb06b
push edi
push 1
mov ecx, ebp
call fcn.004a0d30
lea edx, [esp + 0x54]
push 2
push edx
mov ecx, ebp
call fcn.004a0f60
push 9
lea eax, [esp + 0x58]
push str.BeginBase
push eax
call fcn.00515d80
add esp, 0xc
test eax, eax
jne 0x4ea059
mov ecx, ebp
call fcn.004a0d90
lea ecx, [ebx + 0x70]
push 2
push ecx
mov ecx, ebp
call fcn.004a0e20
lea edx, [ebx + 0x54]
push 2
push edx
mov ecx, ebp
call fcn.004a0f60
lea eax, [esp + 0x78]
push 2
push eax
mov ecx, ebp
call fcn.004a0e20
lea ecx, [esp + 0x54]
push 2
push ecx
mov ecx, ebp
call fcn.004a0f60
lea edx, [esp + 0x74]
push 0
push edx
mov ecx, ebp
call fcn.004a0ec0
push 0x40800000
mov ecx, ebx
call fcn.004e9b30
mov dword [ebx + 0x7c], eax
jmp 0x4eb05b
push 0xb
lea eax, [esp + 0x58]
push str.BeginObject
push eax
call fcn.00515d80
add esp, 0xc
test eax, eax
jne 0x4ea9b7
lea ecx, [esp + 0x20]
push 2
xor esi, esi
push ecx
mov ecx, ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], esi
call fcn.004a0e20
mov edx, dword [esp + 0x20]
push esi
dec edx
mov ecx, ebp
mov dword [esp + 0x24], edx
lea edx, [esp + 0xe4]
push edx
call fcn.004a0f60
lea eax, [esp + 0x54]
push 2
push eax
mov ecx, ebp
call fcn.004a0f60
push 5
lea ecx, [esp + 0x58]
push str.Morph
push ecx
call fcn.00515d80
mov edi, eax
mov eax, dword [esp + 0x2c]
add esp, 0xc
neg edi
sbb edi, edi
inc edi
mov dword [esp + 0x38], edi
je 0x4ea0e7
mov dl, byte [ebx + 0x6c]
mov byte [esp + eax*2 + 0x7c], 1
mov byte [esp + eax*2 + 0x7d], dl
jmp 0x4ea0f3
mov cl, byte [ebx + 0x64]
mov byte [esp + eax*2 + 0x7c], 0
mov byte [esp + eax*2 + 0x7d], cl
mov eax, dword [esp + 0x34]
push 5
lea edx, [esp + 0x58]
inc eax
push str.Dummy
push edx
mov dword [esp + 0x40], eax
call fcn.00515d80
add esp, 0xc
mov ecx, ebp
test eax, eax
jne 0x4ea139
push esi
call fcn.004a0d30
push 0x40800000
push 0x40800000
push 0x40800000
mov ecx, ebx
call fcn.004e9d80
mov esi, eax
jmp 0x4ea7b7
call fcn.004a0d90
lea eax, [esp + 0x18]
push 2
push eax
mov ecx, ebp
call fcn.004a0e20
mov ecx, ebp
call fcn.004a0d90
lea ecx, [esp + 0x1c]
push esi
push ecx
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], esi
cmp eax, esi
jle 0x4ea4cc
mov ecx, ebp
call fcn.004a0d90
mov ecx, ebp
call fcn.004a0d90
mov eax, dword [esp + 0x10]
push 2
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea ecx, [esp + eax*8 + 0x158]
push ecx
mov ecx, ebp
call fcn.004a0f60
lea edx, [esp + 0x14]
push 2
push edx
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x10]
push 2
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov al, byte [esp + 0x18]
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebp
mov byte [esp + edx*8 + 0x16c], al
call fcn.004a0e20
mov eax, dword [esp + 0x10]
mov cl, byte [esp + 0x14]
push 2
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea edx, [esp + 0x18]
push edx
mov byte [esp + eax*8 + 0x16d], cl
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x10]
mov dl, byte [esp + 0x14]
lea ecx, [eax + eax*4]
lea eax, [eax + ecx*2]
shl eax, 3
mov byte [esp + eax + 0x166], dl
mov al, byte [esp + eax + 0x154]
cmp al, 0x6b
je 0x4ea218
cmp al, 0x4b
je 0x4ea218
xor esi, esi
jmp 0x4ea21d
mov esi, 1
lea eax, [esp + 0x14]
push 2
push eax
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x10]
xor edi, edi
push edi
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov al, byte [esp + 0x18]
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebp
mov byte [esp + edx*8 + 0x171], al
call fcn.004a0e20
mov eax, dword [esp + 0x10]
mov cl, byte [esp + 0x14]
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
shl eax, 3
cmp esi, edi
mov byte [esp + eax + 0x16a], cl
je 0x4ea280
cmp dword [esp + eax + 0x164], 0xff0000
jne 0x4ea280
mov dword [esp + 0x24], 1
mov ecx, dword [esp + 0x1c]
cmp ecx, edi
mov byte [esp + eax + 0x168], cl
je 0x4ea355
mov ecx, ebp
call fcn.004a0d90
mov eax, dword [esp + 0x10]
push edi
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea ecx, [esp + eax*8 + 0x170]
push ecx
mov ecx, ebp
call fcn.004a0ec0
mov ecx, ebp
call fcn.004a0d90
mov eax, dword [esp + 0x10]
push edi
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea ecx, [esp + eax*8 + 0x174]
push ecx
mov ecx, ebp
call fcn.004a0ec0
mov ecx, ebp
call fcn.004a0d90
mov eax, dword [esp + 0x10]
push 2
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea ecx, [esp + eax*8 + 0x178]
push ecx
mov ecx, ebp
call fcn.004a0ec0
mov eax, dword [esp + 0x10]
push edi
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea ecx, [esp + eax*8 + 0x17c]
push ecx
mov ecx, ebp
call fcn.004a0e20
mov ecx, ebp
call fcn.004a0d90
mov eax, dword [esp + 0x10]
push edi
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea ecx, [esp + eax*8 + 0x180]
push ecx
mov ecx, ebp
call fcn.004a0ec0
mov ecx, ebp
call fcn.004a0d90
mov eax, dword [esp + 0x10]
push edi
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea ecx, [esp + eax*8 + 0x184]
push ecx
mov ecx, ebp
call fcn.004a0e20
jmp 0x4ea38f
mov dword [esp + eax + 0x16c], 0x3e800000
mov dword [esp + eax + 0x170], 0x3d4ccccd
mov dword [esp + eax + 0x174], 0x3f800000
mov dword [esp + eax + 0x178], 2
mov dword [esp + eax + 0x17c], edi
mov dword [esp + eax + 0x180], edi
mov ecx, ebp
call fcn.004a0d90
mov eax, dword [esp + 0x10]
push 3
push edi
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea ecx, [esp + eax*8 + 0x18c]
push ecx
mov ecx, ebp
call fcn.004a0ef0
mov ecx, ebp
call fcn.004a0d90
mov eax, dword [esp + 0x10]
push 3
push edi
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea ecx, [esp + eax*8 + 0x198]
push ecx
mov ecx, ebp
call fcn.004a0ef0
mov ecx, ebp
call fcn.004a0d90
mov eax, dword [esp + 0x10]
push 3
push edi
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea ecx, [esp + eax*8 + 0x1a4]
push ecx
mov ecx, ebp
call fcn.004a0ef0
mov eax, dword [ebx]
cmp eax, edi
mov eax, dword [esp + 0x10]
je 0x4ea41d
lea edx, [eax + eax*4]
lea ecx, [eax + edx*2]
fld dword [esp + ecx*8 + 0x17c]
fst dword [esp + 0x50]
fst dword [esp + 0x4c]
fstp dword [esp + 0x48]
jmp 0x4ea435
mov dword [esp + 0x50], 0x3f800000
mov dword [esp + 0x4c], 0x3f800000
mov dword [esp + 0x48], 0x3f800000
lea edx, [eax + eax*4]
mov ecx, 0x3f800000
lea eax, [eax + edx*2]
shl eax, 3
lea edi, [esp + eax + 0x184]
mov dword [esp + eax + 0x18c], ecx
mov dword [esp + eax + 0x188], ecx
mov dword [edi], ecx
mov cl, byte [esp + eax + 0x166]
mov dl, byte [esp + eax + 0x165]
push ecx
mov cl, byte [esp + eax + 0x168]
push edx
movsx edx, byte [esp + eax + 0x171]
push ecx
push esi
push edx
mov edx, dword [esp + eax + 0x180]
lea ecx, [esp + eax + 0x168]
push ecx
push edx
lea ecx, [esp + 0x64]
lea edx, [esp + eax + 0x1b8]
push ecx
lea eax, [esp + eax + 0x1b0]
push edx
push eax
push edi
call fcn.0040eca0
mov ecx, dword [esp + 0x3c]
add esp, 0x2c
lea edx, [ecx + ecx*4]
lea edx, [ecx + edx*2]
inc ecx
mov dword [esp + 0x10], ecx
mov dword [esp + edx*8 + 0x1a8], eax
mov eax, dword [esp + 0x18]
cmp ecx, eax
jl 0x4ea170
mov ecx, ebp
call fcn.004a0d90
lea eax, [esp + 0x2c]
push 2
push eax
mov ecx, ebp
call fcn.004a0e20
lea ecx, [esp + 0x54]
push 2
push ecx
mov ecx, ebp
call fcn.004a0f60
lea edx, [esp + 0x40]
push 2
push edx
mov ecx, ebp
call fcn.004a0e20
lea eax, [esp + 0x30]
push 2
push eax
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4ea56c
mov eax, dword [ebx + 0x80]
test al, 3
jne 0x4ea54b
mov edx, dword [ebx + 0x84]
lea ecx, [eax + eax*2 + 0xc]
shl ecx, 2
push ecx
push edx
call fcn.0050a997
add esp, 8
mov dword [ebx + 0x84], eax
test eax, eax
jne 0x4ea54b
push str.moveUV_alloc_error_
call fcn.00555a80
add esp, 4
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x84]
push 2
push 0
lea eax, [eax + eax*2]
lea edx, [ecx + eax*4 + 4]
mov ecx, ebp
push edx
call fcn.004a0ef0
jmp 0x4ea575
push 0
mov ecx, ebp
call fcn.004a0d30
mov eax, dword [esp + 0x2c]
shl eax, 5
push eax
call fcn.0050a4f5
mov ecx, dword [esp + 0x30]
mov esi, eax
xor edi, edi
add esp, 4
xor eax, eax
cmp ecx, edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x1c], eax
jle 0x4ea61a
shl eax, 3
push 3
push 2
lea ecx, [esi + eax*4]
mov dword [esp + 0x18], eax
push ecx
mov ecx, ebp
call fcn.004a0ef0
cmp byte [esp + 0x54], 0x54
jne 0x4ea5cc
mov edx, dword [esp + 0x10]
push 2
push 2
mov ecx, ebp
lea eax, [esi + edx*4 + 0x18]
push eax
call fcn.004a0ef0
cmp dword [esp + 0x40], edi
je 0x4ea5e8
mov ecx, dword [esp + 0x10]
push 3
push 2
lea edx, [esi + ecx*4 + 0xc]
mov ecx, ebp
push edx
call fcn.004a0ef0
jmp 0x4ea600
mov eax, dword [esp + 0x10]
mov dword [esi + eax*4 + 0x14], edi
mov ecx, dword [esp + 0x10]
mov dword [esi + ecx*4 + 0x10], edi
mov edx, dword [esp + 0x10]
mov dword [esi + edx*4 + 0xc], edi
push 1
mov ecx, ebp
call fcn.004a0d30
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x4ea59b
mov ecx, ebp
call fcn.004a0d90
lea eax, [esp + 0x28]
push 0
push eax
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x28]
lea ecx, [eax + eax*2]
shl ecx, 3
push ecx
call fcn.0050a4f5
mov ecx, dword [esp + 0x2c]
mov edi, eax
add esp, 4
xor eax, eax
test ecx, ecx
mov dword [esp + 0x1c], eax
jle 0x4ea6e5
lea edx, [eax + eax*2]
mov ecx, ebp
add edx, edx
mov dword [esp + 0x10], edx
call fcn.004a0d90
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push 2
push ecx
mov ecx, ebp
mov dword [edi + eax*4], 1
call fcn.004a0e20
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
jne 0x4ea68e
xor eax, eax
mov dword [esp + 0x18], eax
lea edx, [eax + eax*4]
push 3
push 0
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + eax*8 + 0x1b0]
mov dword [edi + edx*4 + 4], ecx
mov eax, dword [esp + 0x20]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + edx*8 + 0x188]
mov dword [edi + ecx*4 + 8], eax
mov edx, dword [esp + 0x18]
mov ecx, ebp
lea eax, [edi + edx*4 + 0xc]
push eax
call fcn.004a0e50
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x4ea656
push 6
call fcn.00405900
mov eax, dword [esp + 0x44]
add esp, 4
test eax, eax
je 0x4ea703
push 1
push 0
call fcn.00406440
add esp, 8
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
push 1
push eax
lea ecx, [eax + eax*2]
add ecx, ecx
push ecx
push edi
push edx
push esi
push 0
call fcn.0040c820
mov eax, dword [esp + 0x4c]
add esp, 0x1c
test eax, eax
jne 0x4ea737
push 2
push 0xa
push 0
call fcn.00405400
add esp, 0xc
push 0
call fcn.00405d10
mov esi, eax
mov eax, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [esp + edx*8 + 0x178]
push eax
push esi
call fcn.00405580
mov eax, dword [ebx]
add esp, 0xc
test eax, eax
je 0x4ea77b
mov eax, dword [esp + 0x18]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov ecx, ebx
mov eax, dword [esp + edx*8 + 0x178]
push eax
push esi
call fcn.004ec9d0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4ea790
push 0
push 3
push esi
call fcn.00405400
add esp, 0xc
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.0050a62f
push edi
call fcn.0050a62f
push 1
push esi
call fcn.004064e0
push 2
push esi
call fcn.004064e0
mov edi, dword [esp + 0x50]
add esp, 0x18
test edi, edi
je 0x4ea90a
mov eax, dword [ebx + 0x6c]
test al, 3
jne 0x4ea7f2
mov ecx, dword [ebx + 0x4c]
lea edx, [eax + eax*4 + 0x14]
lea eax, [eax + edx*2 + 4]
shl eax, 2
push eax
push ecx
call fcn.0050a997
add esp, 8
mov dword [ebx + 0x4c], eax
test eax, eax
jne 0x4ea7f2
push str._VApart_memory_alloc_error_
call fcn.00555a80
add esp, 4
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ebx + 0x4c]
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
lea edx, [ecx + eax*4]
lea ecx, [esp + 0xe0]
mov dword [esp + 0x24], edx
lea eax, [esp + 0xe0]
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4ea815
mov edi, dword [esp + 0x24]
mov dword [edi + 0x10], esi
mov edx, dword [ebx + 0x70]
mov dword [edi + 0x14], edx
mov eax, dword [ebx + 0x70]
shl eax, 2
push eax
call fcn.0050a4f5
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x30]
push ecx
push 0
push edx
push esi
mov dword [edi + 0x28], eax
call fcn.0040ba40
mov esi, eax
mov eax, dword [esp + 0x3c]
imul eax, dword [esp + 0x40]
shl eax, 2
push eax
mov dword [esp + 0x28], eax
call fcn.0050a4f5
mov ecx, dword [edi + 0x28]
mov dword [ecx], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [edi + 0x28]
mov eax, ecx
shr ecx, 2
mov edi, dword [edx]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x70]
shl ecx, 2
push ecx
call fcn.0050a4f5
mov edx, dword [esp + 0x40]
add esp, 0x1c
mov dword [edx + 0x24], eax
mov ecx, dword [ebx + 0x70]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x1c], eax
jle 0x4ea8c0
mov ecx, edx
fild dword [esp + 0x1c]
mov edx, dword [ecx + 0x24]
fstp dword [edx + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [ebx + 0x70]
inc eax
cmp eax, edx
mov dword [esp + 0x1c], eax
jl 0x4ea8a6
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4ea902
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x84]
lea eax, [eax + eax*2]
mov word [ecx + eax*4], 1
mov eax, dword [ebx + 0x80]
mov cx, word [ebx + 0x6c]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x84]
mov word [eax + edx*4 + 2], cx
mov eax, dword [ebx + 0x80]
inc eax
mov dword [ebx + 0x80], eax
inc dword [ebx + 0x6c]
jmp 0x4eb05b
mov eax, dword [ebx + 0x64]
test al, 3
jne 0x4ea93d
mov ecx, dword [ebx + 0x48]
lea edx, [eax + eax*4 + 0x14]
lea eax, [eax + edx*2 + 4]
shl eax, 2
push eax
push ecx
call fcn.0050a997
add esp, 8
mov dword [ebx + 0x48], eax
test eax, eax
jne 0x4ea93d
push str._Spart_memory_alloc_error_
call fcn.00555a80
add esp, 4
mov eax, dword [ebx + 0x64]
lea ecx, [esp + 0xe0]
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov edx, dword [ebx + 0x48]
lea edx, [edx + eax*4]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x4ea953
mov eax, dword [ebx + 0x64]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [ebx + 0x48]
mov dword [eax + edx*4 + 0x10], esi
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4ea9af
mov eax, dword [ebx + 0x80]
mov edx, dword [ebx + 0x84]
lea ecx, [eax + eax*2]
mov word [edx + ecx*4], 0
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x84]
mov dx, word [ebx + 0x64]
lea eax, [eax + eax*2]
mov word [ecx + eax*4 + 2], dx
mov eax, dword [ebx + 0x80]
inc eax
mov dword [ebx + 0x80], eax
inc dword [ebx + 0x64]
jmp 0x4eb05b
push 0x11
lea eax, [esp + 0x58]
push str.BeginRelationship
push eax
call fcn.00515d80
add esp, 0xc
test eax, eax
jne 0x4eabc6
xor esi, esi
lea ecx, [esp + 0x1c]
push esi
push ecx
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], esi
cmp eax, esi
jle 0x4eaa1f
mov ecx, ebp
call fcn.004a0d90
lea edx, [esp + 0x18]
push esi
push edx
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
mov byte [esp + eax + 0x120], 0
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4ea9ee
mov ecx, dword [esp + 0x34]
xor eax, eax
cmp ecx, esi
mov dword [esp + 0x14], eax
jle 0x4eb05b
xor edi, edi
xor ecx, ecx
mov cl, byte [esp + eax + 0x120]
mov esi, ecx
mov cl, byte [esp + eax*2 + 0x7c]
test cl, cl
mov dword [esp + 0x18], esi
je 0x4eaafa
cmp esi, edi
jne 0x4eaa87
xor edx, edx
mov dl, byte [esp + eax*2 + 0x7d]
mov eax, edx
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [ebx + 0x4c]
mov dword [eax + edx*4 + 0x1c], 1
mov ecx, dword [esp + 0x14]
xor eax, eax
mov al, byte [esp + ecx*2 + 0x7d]
mov ecx, dword [ebx + 0x4c]
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov edx, dword [ebx + 0x7c]
mov dword [ecx + eax*4 + 0x18], edx
jmp 0x4eaad7
mov dl, byte [esp + esi*2 + 0x7a]
xor ecx, ecx
mov cl, byte [esp + esi*2 + 0x7b]
test dl, dl
lea edx, [ecx + ecx*4]
mov dword [esp + 0x10], ecx
lea ecx, [ecx + edx*2]
je 0x4eaaa4
mov edx, dword [ebx + 0x4c]
jmp 0x4eaaa7
mov edx, dword [ebx + 0x48]
mov esi, dword [edx + ecx*4 + 0x10]
xor ecx, ecx
mov cl, byte [esp + eax*2 + 0x7d]
mov eax, ecx
mov ecx, dword [ebx + 0x4c]
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov dword [ecx + eax*4 + 0x18], esi
mov edx, dword [esp + 0x14]
xor eax, eax
mov al, byte [esp + edx*2 + 0x7d]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [ebx + 0x4c]
mov dword [eax + edx*4 + 0x1c], edi
mov ecx, dword [esp + 0x14]
xor eax, eax
mov al, byte [esp + ecx*2 + 0x7d]
mov ecx, dword [ebx + 0x4c]
mov dword [esp + 0x18], eax
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov edx, dword [ecx + eax*4 + 0x18]
lea eax, [ecx + eax*4]
jmp 0x4eab9f
xor ecx, ecx
cmp esi, edi
jne 0x4eab33
mov cl, byte [esp + eax*2 + 0x7d]
mov eax, ecx
mov ecx, dword [ebx + 0x48]
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov dword [ecx + eax*4 + 0x24], 1
mov edx, dword [esp + 0x14]
xor eax, eax
mov al, byte [esp + edx*2 + 0x7d]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x7c]
mov dword [eax + edx*4 + 0x20], ecx
jmp 0x4eab81
mov cl, byte [esp + esi*2 + 0x7b]
mov dl, byte [esp + esi*2 + 0x7a]
test dl, dl
lea edx, [ecx + ecx*4]
mov dword [esp + 0x10], ecx
lea ecx, [ecx + edx*2]
je 0x4eab4e
mov edx, dword [ebx + 0x4c]
jmp 0x4eab51
mov edx, dword [ebx + 0x48]
mov esi, dword [edx + ecx*4 + 0x10]
xor ecx, ecx
mov cl, byte [esp + eax*2 + 0x7d]
mov eax, ecx
mov ecx, dword [ebx + 0x48]
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov dword [ecx + eax*4 + 0x20], esi
mov edx, dword [esp + 0x14]
xor eax, eax
mov al, byte [esp + edx*2 + 0x7d]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [ebx + 0x48]
mov dword [eax + edx*4 + 0x24], edi
mov ecx, dword [esp + 0x14]
xor eax, eax
mov al, byte [esp + ecx*2 + 0x7d]
mov ecx, dword [ebx + 0x48]
mov dword [esp + 0x18], eax
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov edx, dword [ecx + eax*4 + 0x20]
lea eax, [ecx + eax*4]
mov eax, dword [eax + 0x10]
push edx
push eax
call fcn.0040b020
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
add esp, 8
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x4eaa33
jmp 0x4eb05b
push 9
lea ecx, [esp + 0x58]
push str.BeginPose
push ecx
call fcn.00515d80
add esp, 0xc
test eax, eax
jne 0x4eacc2
lea edi, [ebx + 0x68]
push eax
push edi
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [edi]
lea edx, [eax + eax*2]
shl edx, 3
push edx
call fcn.0050a4f5
mov dword [ebx + 0x50], eax
mov eax, dword [edi]
add esp, 4
mov dword [esp + 0x10], 0
test eax, eax
jle 0x4eb05b
mov ecx, ebp
call fcn.004a0d90
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x50]
push 2
lea eax, [eax + eax*2]
lea edx, [ecx + eax*8 + 4]
mov ecx, ebp
push edx
call fcn.004a0e20
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x50]
push 2
lea eax, [eax + eax*2]
lea edx, [ecx + eax*8 + 8]
mov ecx, ebp
push edx
call fcn.004a0e20
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x50]
push 2
lea eax, [eax + eax*2]
lea edx, [ecx + eax*8 + 0xc]
mov ecx, ebp
push edx
call fcn.004a0e20
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x50]
push 2
lea eax, [eax + eax*2]
lea edx, [ecx + eax*8 + 0x10]
mov ecx, ebp
push edx
call fcn.004a0e20
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x50]
push 0
lea eax, [eax + eax*2]
lea edx, [ecx + eax*8 + 0x14]
mov ecx, ebp
push edx
call fcn.004a0e20
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x50]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8 + 8]
lea eax, [ecx + eax*8]
sub edx, dword [eax + 4]
inc edx
mov dword [eax], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [edi]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4eac14
jmp 0x4eb05b
push 9
lea eax, [esp + 0x58]
push str.BeginMove
push eax
call fcn.00515d80
add esp, 0xc
test eax, eax
jne 0x4ead45
mov eax, dword [ebx + 0x70]
mov dword [esp + 0x18], eax
lea ecx, [eax + eax*2]
shl ecx, 2
push ecx
call fcn.0050a4f5
add esp, 4
mov ecx, ebp
mov dword [ebx + 0x74], eax
mov edi, eax
push 0
call fcn.004a0d30
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], 0
test eax, eax
jle 0x4eb05b
lea edx, [esp + 0x10]
push 2
push edx
mov ecx, ebp
call fcn.004a0e20
push 3
push 0
push edi
mov ecx, ebp
call fcn.004a0ef0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
add edi, 0xc
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x4ead12
jmp 0x4eb05b
push 0xa
lea eax, [esp + 0x58]
push str.BeginFrame
push eax
call fcn.00515d80
add esp, 0xc
test eax, eax
jne 0x4eae3e
lea ecx, [esp + 0x20]
push 2
push ecx
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x20]
xor edx, edx
dec eax
push 3
mov dword [esp + 0x24], eax
push 2
mov dl, byte [esp + eax*2 + 0x85]
mov eax, edx
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [ebx + 0x48]
lea edi, [eax + edx*4]
lea ecx, [edi + 0x14]
push ecx
mov ecx, ebp
call fcn.004a0ef0
lea esi, [edi + 0x24]
push 2
push esi
mov ecx, ebp
call fcn.004a0e20
lea edx, [esp + 0x44]
push 0
push edx
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], 0xc
test eax, eax
je 0x4eadcf
mov eax, dword [esi]
or al, 0x80
mov dword [esi], eax
mov eax, dword [ebx + 0x70]
imul eax, dword [esp + 0x18]
shl eax, 2
push eax
call fcn.0050a4f5
mov dword [edi + 0x28], eax
mov ecx, dword [ebx + 0x70]
xor eax, eax
add esp, 4
cmp ecx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], eax
jle 0x4eb05b
mov ecx, ebp
call fcn.004a0d90
mov ecx, dword [esp + 0x18]
mov edx, dword [edi + 0x28]
mov eax, dword [esp + 0x10]
push ecx
push 0
lea ecx, [edx + eax*4]
push ecx
mov ecx, ebp
call fcn.004a0ef0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [ebx + 0x70]
inc eax
add esi, edx
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], esi
jl 0x4eadfb
jmp 0x4eb05b
push 0xe
lea eax, [esp + 0x58]
push str.BeginMorphdata
push eax
call fcn.00515d80
add esp, 0xc
test eax, eax
jne 0x4eb052
lea ecx, [esp + 0x20]
push 2
push ecx
mov ecx, ebp
call fcn.004a0e20
mov eax, dword [esp + 0x20]
xor edx, edx
dec eax
push 0
mov dword [esp + 0x24], eax
mov dl, byte [esp + eax*2 + 0x81]
mov eax, edx
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [ebx + 0x4c]
mov ecx, ebp
lea edi, [eax + edx*4]
lea esi, [edi + 0x14]
push esi
call fcn.004a0e20
lea ecx, [esp + 0x54]
push 2
push ecx
mov ecx, ebp
call fcn.004a0f60
push 0xb
lea edx, [esp + 0x58]
push str.FrameWeight
push edx
call fcn.00515d80
add esp, 0xc
test eax, eax
jne 0x4eaedb
push eax
mov ecx, ebp
call fcn.004a0d30
mov eax, dword [ebx + 0x70]
mov ecx, dword [edi + 0x24]
push eax
push 2
push ecx
mov ecx, ebp
call fcn.004a0ef0
mov ecx, ebp
call fcn.004a0d90
lea edx, [esp + 0x18]
push 2
push edx
mov ecx, ebp
call fcn.004a0e20
lea eax, [esp + 0x54]
push 0
push eax
mov ecx, ebp
call fcn.004a0f60
mov dl, byte [esp + 0x54]
xor ecx, ecx
cmp dl, 0x54
mov edx, dword [edi + 0x10]
mov dword [esp + 0x1c], 1
mov eax, dword [esi]
sete cl
cmp eax, 1
mov dword [esp + 0x38], ecx
mov dword [esp + 0x24], edx
jle 0x4eb05b
mov eax, dword [esp + 0x18]
shl eax, 5
push eax
call fcn.0050a4f5
mov ecx, dword [edi + 0x28]
mov edx, dword [esp + 0x20]
add esp, 4
mov esi, eax
mov dword [ecx + edx*4], esi
mov ecx, ebp
push 0
call fcn.004a0d30
mov ecx, dword [esp + 0x18]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x10], eax
jle 0x4eafff
shl eax, 3
mov dword [esp + 0x14], eax
push 3
lea eax, [esi + eax*4]
push 2
push eax
mov ecx, ebp
call fcn.004a0ef0
mov ecx, dword [edi + 0x28]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx]
mov ecx, dword [edx + eax*4 + 0xc]
mov dword [esi + eax*4 + 0xc], ecx
mov edx, dword [edi + 0x28]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx]
mov edx, dword [ecx + eax*4 + 0x10]
mov dword [esi + eax*4 + 0x10], edx
mov ecx, dword [edi + 0x28]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx]
mov ecx, dword [edx + eax*4 + 0x14]
mov dword [esi + eax*4 + 0x14], ecx
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4eafbf
mov edx, dword [esp + 0x14]
push 2
push 2
mov ecx, ebp
lea eax, [esi + edx*4 + 0x18]
push eax
call fcn.004a0ef0
jmp 0x4eafe1
mov ecx, dword [edi + 0x28]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx]
mov ecx, dword [edx + eax*4 + 0x18]
mov dword [esi + eax*4 + 0x18], ecx
mov edx, dword [edi + 0x28]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx]
mov edx, dword [ecx + eax*4 + 0x1c]
mov dword [esi + eax*4 + 0x1c], edx
push 1
mov ecx, ebp
call fcn.004a0d30
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4eaf58
mov eax, dword [esp + 0x24]
push 0
push 0
push 0
push eax
call fcn.0040ba40
push esi
mov esi, dword [esp + 0x38]
push esi
mov dword [esp + 0x54], eax
call fcn.0040bab0
push 1
push esi
call fcn.004064e0
push 2
push esi
call fcn.004064e0
mov ecx, dword [esp + 0x64]
push ecx
push esi
call fcn.0040bab0
mov eax, dword [esp + 0x4c]
add esp, 0x30
inc eax
mov dword [esp + 0x1c], eax
mov ecx, dword [edi + 0x14]
cmp eax, ecx
jl 0x4eaf21
jmp 0x4eb05b
push 0
mov ecx, ebp
call fcn.004a0d30
mov ecx, ebp
call fcn.004a0cb0
test eax, eax
jg 0x4e9fcb
pop edi
mov ecx, ebp
call fcn.004a0be0
push ebp
call fcn.005087f0
mov ecx, dword [esp + 0xba4]
add esp, 4
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
add esp, 0xba0
ret
sub esp, 0xa0
push ebp
mov ebp, ecx
push esi
push edi
lea esi, [ebp + 4]
push 0x8000
push esi
call fcn.0050ce29
mov edi, eax
add esp, 8
cmp edi, 0xffffffff
mov dword [esp + 0x1c], edi
jne 0x4eb6cf
push esi
push str.file__s_open_error
call fcn.00555a80
add esp, 8
pop edi
pop esi
pop ebp
add esp, 0xa0
ret
lea eax, [esp + 0x54]
push 0x58
push eax
push edi
call fcn.0050c92f
mov ecx, ebp
lea edx, [esp + 0x78]
add esp, 0xc
sub ecx, edx
lea eax, [esp + 0x6c]
lea edx, [ecx + 0x54]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4eb6ee
movsx eax, word [esp + 0x8e]
movsx ecx, word [esp + 0x88]
movsx edx, word [esp + 0x8a]
mov esi, dword [esp + 0x98]
mov dword [ebp + 0x70], eax
movsx eax, word [esp + 0x8c]
push ebx
mov ebx, dword [esp + 0x98]
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0x64], edx
movsx ecx, word [esp + 0x94]
mov dx, word [esp + 0x88]
mov dword [ebp + 0x6c], eax
mov ax, word [esp + 0x8a]
sub esi, ebx
push esi
mov dword [ebp + 0x80], ecx
mov word [ebp + 0x88], dx
mov word [ebp + 0x8a], ax
call fcn.0050a4f5
push esi
push eax
push edi
mov dword [ebp + 0x50], eax
call fcn.0050c92f
mov esi, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
sub esi, eax
push esi
call fcn.0050a4f5
push esi
push eax
push edi
mov dword [ebp + 0x74], eax
call fcn.0050c92f
add esp, 0x20
mov ecx, ebp
push 0x40800000
call fcn.004e9b30
mov dword [ebp + 0x7c], eax
mov eax, dword [ebp + 0x80]
test eax, eax
je 0x4eb7d6
mov esi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
sub esi, ebx
push esi
call fcn.0050a4f5
push esi
push eax
push edi
mov dword [ebp + 0x84], eax
call fcn.0050c92f
add esp, 0x10
mov ecx, dword [ebp + 0x6c]
mov eax, dword [ebp + 0x64]
add ecx, eax
shl ecx, 2
push ecx
call fcn.0050a4f5
mov ebx, dword [ebp + 0x6c]
mov edx, dword [ebp + 0x64]
add ebx, edx
mov dword [ebp + 0x78], eax
lea edi, [ebx + ebx*4]
shl edi, 3
push edi
call fcn.0050a4f5
mov edx, dword [esp + 0x28]
push edi
push eax
push edx
mov dword [esp + 0x4c], eax
call fcn.0050c92f
mov esi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
sub esi, ecx
sub esi, edi
push esi
call fcn.0050a4f5
push esi
mov dword [esp + 0x50], eax
push eax
mov eax, dword [esp + 0x40]
push eax
call fcn.0050c92f
lea esi, [ebx + ebx]
push esi
call fcn.0050a4f5
mov ecx, esi
mov edi, eax
mov edx, ecx
xor eax, eax
shr ecx, 2
mov dword [esp + 0x54], edi
add esp, 0x28
rep stosd dword es:[edi], eax
mov ecx, edx
xor edx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor ecx, ecx
test ebx, ebx
jle 0x4eb8a5
mov eax, dword [esp + 0x38]
lea esi, [eax + 0x14]
mov eax, dword [esi - 4]
cmp eax, 1
jne 0x4eb887
mov eax, dword [esi]
mov edi, dword [ebp + 0x64]
add eax, edi
mov edi, dword [esp + 0x2c]
add eax, eax
mov byte [eax + edi], dl
mov byte [eax + edi + 1], cl
jmp 0x4eb89a
test eax, eax
jne 0x4eb89d
mov edi, dword [esi]
mov eax, dword [esp + 0x2c]
add edi, edi
mov byte [edi + eax], dl
mov byte [edi + eax + 1], cl
add ecx, dword [esi + 4]
inc edx
add esi, 0x28
cmp edx, ebx
jl 0x4eb869
test ecx, ecx
jle 0x4eb94d
mov edx, dword [esp + 0x34]
mov edi, ecx
mov ebx, 0x3f800000
lea esi, [edx + 0x34]
cmp dword [ebp], 0
je 0x4eb8db
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
jmp 0x4eb8f3
mov dword [esp + 0x4c], 0x3f800000
mov dword [esp + 0x48], 0x3f800000
mov dword [esp + 0x44], 0x3f800000
mov dl, byte [esi - 0x34]
lea eax, [esi - 0x34]
lea ecx, [esi - 4]
cmp dl, 0x6b
mov dword [esi + 4], ebx
mov dword [esi], ebx
mov dword [ecx], ebx
jne 0x4eb90b
mov byte [eax], 0x4b
mov dl, byte [esi - 0x22]
push edx
mov dl, byte [esi - 0x23]
push edx
mov dl, byte [esi - 0x24]
push edx
xor edx, edx
cmp byte [eax], 0x4b
sete dl
push edx
movsx edx, byte [esi - 0x1f]
push edx
push eax
mov eax, dword [esi - 0x1c]
lea edx, [esp + 0x5c]
push eax
push edx
lea eax, [esi + 0x14]
lea edx, [esi + 8]
push eax
push edx
push ecx
call fcn.0040eca0
mov dword [esi + 0x20], eax
add esp, 0x2c
add esi, 0x58
dec edi
jne 0x4eb8bb
mov eax, dword [ebp + 0x64]
xor edi, edi
cmp eax, edi
je 0x4ebfb5
lea ecx, [eax + eax*4]
lea esi, [eax + ecx*2]
shl esi, 2
push esi
call fcn.0050a4f5
mov edx, dword [esp + 0x24]
push esi
push eax
push edx
mov dword [ebp + 0x48], eax
call fcn.0050c92f
mov eax, dword [ebp + 0x64]
add esp, 0x10
cmp eax, edi
mov dword [esp + 0x1c], edi
jle 0x4ebe7f
xor esi, esi
mov dword [esp + 0x28], esi
mov eax, dword [ebp + 0x48]
add eax, esi
mov cl, byte [eax + 0x24]
test cl, cl
jns 0x4eb9d2
push 0x40800000
push 0x40800000
push 0x40800000
mov ecx, ebp
call fcn.004e9d80
mov ecx, dword [ebp + 0x48]
mov dword [esi + ecx + 0x10], eax
mov eax, dword [ebp + 0x48]
mov edx, dword [ebp + 0x7c]
mov ecx, dword [esi + eax + 0x10]
push edx
push ecx
call fcn.0040b020
add esp, 8
jmp 0x4ebe62
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x10]
mov ebx, eax
mov dword [esp + 0x24], eax
shl ebx, 5
push ebx
call fcn.0050a4f5
mov cl, byte [esp + 0x86]
add esp, 4
test cl, 1
mov dword [esp + 0x18], eax
je 0x4ebc80
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
shl eax, 4
sub esi, eax
push eax
add esi, ebx
push esi
push edx
call fcn.0050c92f
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
add esp, 0xc
movsx eax, byte [eax + ecx*2]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + edx*8 + 0x24]
test ecx, ecx
je 0x4ebb52
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x4ebc8f
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 8]
mov ecx, dword [esp + 0x24]
movsx edx, word [esi]
mov dword [esp + 0x10], edx
add esi, 2
movsx edx, word [esp + 0x84]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
add esi, 2
fidiv dword [esp + 0x10]
add esi, 2
add eax, 0x20
add esi, 2
add esi, 2
add esi, 2
add esi, 2
add esi, 2
dec ecx
fstp dword [eax - 0x28]
movsx edx, word [esi - 0xe]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x84]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0x24]
movsx edx, word [esi - 0xc]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x84]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0x20]
movsx edx, word [esi - 0xa]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul dword [0x5a8454]
fstp dword [eax - 0x1c]
movsx edx, word [esi - 8]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul dword [0x5a8454]
fstp dword [eax - 0x18]
movsx edx, word [esi - 6]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul dword [0x5a8454]
fstp dword [eax - 0x14]
movsx edx, word [esi - 4]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x8a]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0x10]
movsx edx, word [esi - 2]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x8a]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0xc]
jne 0x4eba52
jmp 0x4ebc8f
mov ecx, dword [esp + 0x24]
test ecx, ecx
jle 0x4ebc8f
mov eax, dword [esp + 0x18]
add eax, 8
movsx edx, word [esi]
mov dword [esp + 0x10], edx
add esi, 2
movsx edx, word [esp + 0x84]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
add esi, 2
fidiv dword [esp + 0x10]
add esi, 2
add eax, 0x20
add esi, 2
add esi, 2
add esi, 2
add esi, 2
add esi, 2
dec ecx
fstp dword [eax - 0x28]
movsx edx, word [esi - 0xe]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x84]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0x24]
movsx edx, word [esi - 0xc]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x84]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0x20]
movsx edx, word [esi - 0xa]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x8a]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0x1c]
movsx edx, word [esi - 8]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x8a]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0x18]
movsx edx, word [esi - 6]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x8a]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0x14]
movsx edx, word [esi - 4]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x8a]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0x10]
movsx edx, word [esi - 2]
mov dword [esp + 0x10], edx
movsx edx, word [esp + 0x8a]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [eax - 0xc]
jne 0x4ebb65
jmp 0x4ebc8f
push ebx
push eax
mov eax, dword [esp + 0x28]
push eax
call fcn.0050c92f
add esp, 0xc
lea ebx, [edi + edi*2]
shl ebx, 3
push ebx
call fcn.0050a4f5
lea ecx, [edi + edi*4]
mov esi, eax
add ecx, ecx
mov dword [esp + 0x18], eax
sub esi, ecx
push ecx
mov ecx, dword [esp + 0x28]
add esi, ebx
push esi
push ecx
call fcn.0050c92f
add esp, 0x10
test edi, edi
jle 0x4ebd04
mov eax, dword [esp + 0x14]
mov ecx, edi
movsx edx, word [esi]
add esi, 2
mov dword [eax], edx
add eax, 4
movsx edx, byte [esi]
inc esi
mov dword [eax], edx
add eax, 4
movsx edx, byte [esi]
inc esi
mov dword [eax], edx
add eax, 4
movsx edx, word [esi]
add esi, 2
mov dword [eax], edx
add eax, 4
movsx edx, word [esi]
add esi, 2
mov dword [eax], edx
add eax, 4
movsx edx, word [esi]
mov dword [eax], edx
add esi, 2
add eax, 4
dec ecx
jne 0x4ebcc3
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1c]
test edi, edi
movsx eax, byte [esi + ebx*2 + 1]
mov dword [esp + 0x30], eax
jle 0x4ebd45
mov ecx, dword [esp + 0x14]
mov edx, edi
add ecx, 4
mov eax, dword [ecx]
mov esi, dword [esp + 0x30]
add eax, esi
add ecx, 0x18
dec edx
lea esi, [eax + eax*4]
lea eax, [eax + esi*2]
mov esi, dword [esp + 0x34]
mov eax, dword [esi + eax*8 + 0x54]
mov dword [ecx - 0x18], eax
jne 0x4ebd22
mov esi, dword [esp + 0x2c]
push 6
call fcn.00405900
movsx eax, byte [esi + ebx*2]
mov edx, dword [esp + 0x3c]
add esp, 4
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8 + 0x24]
test eax, eax
je 0x4ebd6e
push 1
push 0
call fcn.00406440
add esp, 8
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
lea eax, [edi + edi*2]
push 1
add eax, eax
push edi
push eax
mov eax, dword [esp + 0x24]
push ecx
push edx
push eax
push 0
call fcn.0040c820
add esp, 0x1c
lea ecx, [esp + 0x50]
lea edx, [esp + 0x54]
push ecx
push edx
push ebx
push 0
mov ecx, ebp
call fcn.004ec890
test eax, eax
jne 0x4ebdb5
push 2
push 0xa
push eax
call fcn.00405400
add esp, 0xc
movsx eax, byte [esi + ebx*2 + 1]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + edx*8 + 0x20]
lea esi, [eax + edx*8]
push ecx
push 0
call fcn.00405580
mov edx, dword [ebp + 0x78]
mov eax, dword [esi + 0x20]
add esp, 8
mov dword [edx + ebx*4], eax
mov al, byte [esi]
cmp al, 0x4b
jne 0x4ebdfc
cmp dword [esi + 0x10], 0xff0000
jne 0x4ebdfc
push 0
push 3
push 0
call fcn.00405400
add esp, 0xc
push 0
call fcn.00405d10
mov ecx, dword [ebp + 0x48]
mov edi, dword [esp + 0x2c]
add esp, 4
mov dword [edi + ecx + 0x10], eax
mov eax, dword [ebp]
test eax, eax
je 0x4ebe2b
mov eax, dword [ebp + 0x48]
mov edx, dword [esi + 0x24]
push edx
mov ecx, dword [edi + eax + 0x10]
push ecx
mov ecx, ebp
call fcn.004ec9d0
mov edx, dword [ebp + 0x48]
mov dword [edi + edx + 0x20], 0
mov ecx, dword [ebp + 0x48]
mov eax, dword [ebp + 0x7c]
mov edx, dword [edi + ecx + 0x10]
push eax
push edx
call fcn.0040b020
mov eax, dword [esp + 0x1c]
push eax
call fcn.0050a62f
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0050a62f
mov esi, dword [esp + 0x38]
add esp, 0x10
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x64]
inc eax
add esi, 0x2c
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], esi
jl 0x4eb990
xor edi, edi
mov eax, dword [ebp + 0x70]
mov dword [esp + 0x1c], edi
lea ebx, [eax + eax*2]
mov eax, dword [ebp + 0x64]
shl ebx, 4
cmp eax, edi
jle 0x4ebfb5
mov dword [esp + 0x28], edi
push ebx
call fcn.0050a4f5
mov edx, dword [ebp + 0x48]
mov edi, eax
mov eax, dword [esp + 0x2c]
add esp, 4
mov dword [eax + edx + 0x28], edi
mov al, byte [esp + 0x82]
test al, 1
je 0x4ebf87
mov eax, dword [ebp + 0x70]
mov ecx, dword [esp + 0x20]
mov esi, edi
lea eax, [eax + eax*2]
shl eax, 3
sub esi, eax
push eax
add esi, ebx
push esi
push ecx
call fcn.0050c92f
mov eax, dword [ebp + 0x70]
add esp, 0xc
xor ecx, ecx
test eax, eax
jle 0x4ebf96
mov eax, 9
movsx edx, word [esi]
mov dword [esp + 0x10], edx
add esi, 2
fild dword [esp + 0x10]
add edi, 4
dec eax
fmul dword [0x5ab184]
fstp dword [edi - 4]
jne 0x4ebef0
movsx eax, word [esi]
movsx edx, word [esp + 0x86]
mov dword [esp + 0x10], eax
add esi, 2
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
add edi, 4
add esi, 2
add edi, 4
fidiv dword [esp + 0x10]
add esi, 2
add edi, 4
inc ecx
fstp dword [edi - 0xc]
movsx eax, word [esi - 4]
movsx edx, word [esp + 0x86]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [edi - 8]
movsx eax, word [esi - 2]
movsx edx, word [esp + 0x86]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [edi - 4]
cmp ecx, dword [ebp + 0x70]
jl 0x4ebeeb
jmp 0x4ebf96
mov eax, dword [esp + 0x20]
push ebx
push edi
push eax
call fcn.0050c92f
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov ecx, dword [ebp + 0x64]
inc eax
add edx, 0x2c
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], edx
jl 0x4ebe9b
mov eax, dword [ebp + 0x6c]
test eax, eax
je 0x4ec646
lea ecx, [eax*4]
push ecx
call fcn.0050a4f5
mov edx, dword [ebp + 0x6c]
mov dword [esp + 0x14], eax
shl edx, 2
push edx
call fcn.0050a4f5
mov esi, dword [ebp + 0x6c]
mov dword [esp + 0x44], eax
lea eax, [esi + esi*4]
lea esi, [esi + eax*2]
shl esi, 2
push esi
call fcn.0050a4f5
mov ecx, dword [esp + 0x2c]
push esi
push eax
push ecx
mov dword [ebp + 0x4c], eax
call fcn.0050c92f
mov eax, dword [ebp + 0x6c]
add esp, 0x18
test eax, eax
mov dword [esp + 0x1c], 0
jle 0x4ec2b4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
sub eax, ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], eax
mov edx, dword [ebp + 0x4c]
mov eax, dword [esp + 0x30]
add eax, edx
mov dl, byte [esp + 0x82]
test dl, 2
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x24], ecx
je 0x4ec1ad
mov esi, dword [eax + 0x20]
neg esi
sbb esi, esi
and esi, 0xfffffffd
add esi, 5
imul esi, ecx
lea ebx, [esi*4]
push ebx
call fcn.0050a4f5
mov edx, dword [esp + 0x1c]
mov edi, eax
lea eax, [esi + esi]
mov esi, edi
sub esi, eax
push eax
mov eax, dword [esp + 0x28]
add esi, ebx
push esi
push eax
mov dword [edx], edi
call fcn.0050c92f
mov ecx, dword [ebp + 0x4c]
mov edx, dword [esp + 0x40]
add esp, 0x10
mov eax, dword [ecx + edx + 0x20]
test eax, eax
mov eax, dword [esp + 0x24]
je 0x4ec102
test eax, eax
jle 0x4ec1ce
movsx ecx, word [esi]
movsx edx, word [esp + 0x8a]
mov dword [esp + 0x14], ecx
add esi, 2
fild dword [esp + 0x14]
mov dword [esp + 0x14], edx
add edi, 4
add esi, 2
add edi, 4
fidiv dword [esp + 0x14]
dec eax
fstp dword [edi - 8]
movsx ecx, word [esi - 2]
movsx edx, word [esp + 0x8a]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
mov dword [esp + 0x14], edx
fidiv dword [esp + 0x14]
fstp dword [edi - 4]
jne 0x4ec0b1
jmp 0x4ec1ce
test eax, eax
jle 0x4ec1ce
movsx ecx, word [esi]
mov dword [esp + 0x14], ecx
add esi, 2
fild dword [esp + 0x14]
add edi, 4
add esi, 2
add edi, 4
add esi, 2
fmul dword [0x5a8454]
add edi, 4
add esi, 2
add edi, 4
add esi, 2
fstp dword [edi - 0x10]
movsx edx, word [esi - 8]
mov dword [esp + 0x14], edx
add edi, 4
fild dword [esp + 0x14]
dec eax
fmul dword [0x5a8454]
fstp dword [edi - 0x10]
movsx ecx, word [esi - 6]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul dword [0x5a8454]
fstp dword [edi - 0xc]
movsx edx, word [esi - 4]
movsx ecx, word [esp + 0x8a]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov dword [esp + 0x14], ecx
fidiv dword [esp + 0x14]
fstp dword [edi - 8]
movsx edx, word [esi - 2]
movsx ecx, word [esp + 0x8a]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov dword [esp + 0x14], ecx
fidiv dword [esp + 0x14]
fstp dword [edi - 4]
jne 0x4ec10a
jmp 0x4ec1ce
lea esi, [ecx + ecx*4]
shl esi, 2
push esi
call fcn.0050a4f5
mov edx, dword [esp + 0x1c]
push esi
push eax
mov dword [edx], eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.0050c92f
add esp, 0x10
mov ebx, dword [esp + 0x40]
lea edi, [ebx + ebx*2]
shl edi, 3
push edi
call fcn.0050a4f5
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov esi, eax
lea eax, [ebx + ebx*4]
add eax, eax
mov dword [esp + 0x18], esi
mov dword [ecx + edx], esi
sub esi, eax
add esi, edi
push eax
mov eax, dword [esp + 0x28]
push esi
push eax
call fcn.0050c92f
add esp, 0x10
test ebx, ebx
jle 0x4ec252
mov eax, dword [esp + 0x14]
mov ecx, ebx
movsx edx, word [esi]
add esi, 2
mov dword [eax], edx
add eax, 4
movsx edx, byte [esi]
inc esi
mov dword [eax], edx
add eax, 4
movsx edx, byte [esi]
inc esi
mov dword [eax], edx
add eax, 4
movsx edx, word [esi]
add esi, 2
mov dword [eax], edx
add eax, 4
movsx edx, word [esi]
add esi, 2
mov dword [eax], edx
add eax, 4
movsx edx, word [esi]
mov dword [eax], edx
add esi, 2
add eax, 4
dec ecx
jne 0x4ec211
mov eax, dword [ebp + 0x64]
mov ecx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x2c]
test ebx, ebx
movsx edx, byte [ecx + eax*2 + 1]
jle 0x4ec28a
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
lea ecx, [eax + 4]
mov eax, dword [ecx]
add ecx, 0x18
add eax, edx
dec ebx
lea edi, [eax + eax*4]
lea eax, [eax + edi*2]
mov eax, dword [esi + eax*8 + 0x54]
mov dword [ecx - 0x18], eax
jne 0x4ec273
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov ecx, dword [ebp + 0x6c]
inc eax
add esi, 0x2c
add edx, 4
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x18], edx
jl 0x4ec032
mov edi, dword [ebp + 0x70]
mov eax, dword [ebp + 0x6c]
shl edi, 2
xor ebx, ebx
test eax, eax
jle 0x4ec2f3
xor esi, esi
push edi
call fcn.0050a4f5
mov ecx, dword [ebp + 0x4c]
push edi
mov dword [ecx + esi + 0x24], eax
mov edx, dword [ebp + 0x4c]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + esi + 0x24]
push eax
push ecx
call fcn.0050c92f
mov eax, dword [ebp + 0x6c]
add esp, 0x10
inc ebx
add esi, 0x2c
cmp ebx, eax
jl 0x4ec2c5
mov eax, dword [ebp + 0x6c]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x1c], edi
jle 0x4ec62f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
sub eax, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x64]
mov esi, dword [esp + 0x1c]
mov edx, dword [ebp + 0x4c]
add eax, esi
add eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [edx + edi + 0x14]
shl eax, 2
push eax
call fcn.0050a4f5
mov ecx, dword [ebp + 0x4c]
add esp, 4
mov dword [ecx + edi + 0x28], eax
mov edx, dword [ebp + 0x4c]
mov ecx, dword [edx + edi + 0x10]
lea eax, [edx + edi]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 0x18]
mov dword [esp + 0x40], edx
mov dl, byte [esp + 0x82]
test dl, 2
je 0x4ec3a3
mov edx, dword [eax + 0x20]
lea ebx, [ecx + ecx*4]
test edx, edx
jne 0x4ec36d
lea ebx, [ecx + ecx*2]
mov ecx, dword [eax + 0x14]
add ebx, ebx
xor esi, esi
test ecx, ecx
jle 0x4ec3e9
push ebx
call fcn.0050a4f5
mov ecx, dword [ebp + 0x4c]
push ebx
push eax
mov edx, dword [ecx + edi + 0x28]
mov dword [edx + esi*4], eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.0050c92f
mov ecx, dword [ebp + 0x4c]
add esp, 0x10
inc esi
cmp esi, dword [ecx + edi + 0x14]
jl 0x4ec378
jmp 0x4ec3e9
mov ebx, dword [esp + 0x24]
mov ecx, dword [eax + 0x14]
xor esi, esi
lea ebx, [ebx + ebx*2]
shl ebx, 3
test ecx, ecx
jle 0x4ec3e9
push ebx
call fcn.0050a4f5
mov edx, dword [ebp + 0x4c]
push ebx
mov ecx, dword [edx + edi + 0x28]
mov dword [ecx + esi*4], eax
mov edx, dword [ebp + 0x4c]
mov eax, dword [edx + edi + 0x28]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + esi*4]
push ecx
push edx
call fcn.0050c92f
mov eax, dword [ebp + 0x4c]
add esp, 0x10
inc esi
cmp esi, dword [eax + edi + 0x14]
jl 0x4ec3b6
push 6
call fcn.00405900
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add esp, 4
movsx eax, byte [edx + ecx]
mov ecx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 0x24]
test edx, edx
je 0x4ec41a
push 1
push 0
call fcn.00406440
add esp, 8
mov ebx, dword [esp + 0x24]
mov edx, ebx
shl edx, 5
push edx
call fcn.0050a4f5
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
add esp, 4
mov esi, dword [eax]
mov al, byte [esp + 0x82]
test al, 2
je 0x4ec469
mov ecx, dword [ebp + 0x4c]
mov edx, dword [ecx + edi + 0x20]
lea eax, [ecx + edi]
push edx
mov dx, word [ebp + 0x88]
mov eax, dword [eax + 0x28]
push ebx
mov ecx, dword [eax]
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.004ec700
jmp 0x4ec47d
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ebx
push 0
push ecx
push edx
mov ecx, ebp
call fcn.004ec6b0
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + edi + 0x20]
test ecx, ecx
je 0x4ec4b8
test byte [esp + 0x82], 2
je 0x4ec4b8
mov eax, dword [esp + 0x18]
test ebx, ebx
jle 0x4ec4fa
mov ecx, ebx
mov edx, dword [esi]
add eax, 0x18
add esi, 4
mov dword [eax], edx
add eax, 4
mov edx, dword [esi]
add esi, 4
mov dword [eax], edx
add eax, 4
dec ecx
jne 0x4ec49c
jmp 0x4ec4fa
mov eax, dword [esp + 0x18]
test ebx, ebx
jle 0x4ec4fa
mov ecx, ebx
mov edx, dword [esi]
add eax, 0xc
add esi, 4
mov dword [eax], edx
add eax, 4
mov edx, dword [esi]
add esi, 4
mov dword [eax], edx
add eax, 4
mov edx, dword [esi]
add esi, 4
mov dword [eax], edx
add eax, 4
mov edx, dword [esi]
add esi, 4
mov dword [eax], edx
add eax, 4
mov edx, dword [esi]
add esi, 4
mov dword [eax], edx
add eax, 4
dec ecx
jne 0x4ec4c2
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
push 1
push eax
lea eax, [eax + eax*2]
add eax, eax
push eax
mov eax, dword [ecx + edx]
mov ecx, dword [esp + 0x24]
push eax
push ebx
push ecx
push 0
call fcn.0040c820
mov ecx, dword [esp + 0x38]
add esp, 0x1c
lea edx, [esp + 0x50]
lea eax, [esp + 0x54]
push edx
push eax
push ecx
push 1
mov ecx, ebp
call fcn.004ec890
test eax, eax
jne 0x4ec54c
push 2
push 0xa
push eax
call fcn.00405400
add esp, 0xc
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
movsx eax, byte [eax + edx + 1]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + edx*8 + 0x20]
lea esi, [eax + edx*8]
push ecx
push 0
call fcn.00405580
mov edx, dword [ebp + 0x64]
mov ecx, dword [esp + 0x24]
mov eax, dword [ebp + 0x78]
add edx, ecx
mov ecx, dword [esi + 0x20]
add esp, 8
mov dword [eax + edx*4], ecx
mov al, byte [esi]
cmp al, 0x4b
jne 0x4ec5a4
cmp dword [esi + 0x10], 0xff0000
jne 0x4ec5a4
push 0
push 3
push 0
call fcn.00405400
add esp, 0xc
push 0
call fcn.00405d10
mov edx, dword [ebp + 0x4c]
mov ebx, dword [esp + 0x18]
mov dword [edx + edi + 0x10], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebx + eax]
push ecx
call fcn.0050a62f
mov edx, dword [ebx]
push edx
call fcn.0050a62f
mov eax, dword [esp + 0x24]
push eax
call fcn.0050a62f
mov ecx, dword [ebp + 0x4c]
add esp, 0x10
mov dword [ecx + edi + 0x18], 0
mov eax, dword [ebp]
test eax, eax
je 0x4ec5fd
mov eax, dword [ebp + 0x4c]
mov edx, dword [esi + 0x24]
push edx
mov ecx, dword [eax + edi + 0x10]
push ecx
mov ecx, ebp
call fcn.004ec9d0
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x7c]
push edx
mov ecx, dword [eax + edi + 0x10]
push ecx
call fcn.0040b020
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x6c]
add esp, 8
inc eax
add ebx, 4
add edi, 0x2c
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebx
jl 0x4ec316
mov edx, dword [esp + 0x3c]
push edx
call fcn.0050a62f
mov eax, dword [esp + 0x14]
push eax
call fcn.0050a62f
add esp, 8
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0050a62f
mov edx, dword [esp + 0x38]
push edx
call fcn.0050a62f
mov eax, dword [esp + 0x34]
push eax
call fcn.0050a62f
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.0050c65f
add esp, 0x10
pop ebx
pop edi
pop esi
pop ebp
add esp, 0xa0
ret