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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xd0
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x20]
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0xfc]
mov dword [ebp - 0xd0], eax
mov eax, dword [esi + 0x100]
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + 0x104]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0x90]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x34], ecx
mov ecx, dword [esi + 0x88]
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc4], ecx
mov ecx, dword [esi + 0x8c]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xb8], ecx
mov ecx, dword [esi + 0x78]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0x110]
push edi
xor edi, edi
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 0x20]
add ebx, 0xb
mov dword [ebp - 0xc0], eax
xor ecx, ecx
push 4
pop edx
mov eax, ebx
mul edx
seto cl
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x88], edi
neg ecx
or ecx, eax
push ecx
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x7c], edi
mov dword [esi + 0xfc], edi
mov dword [esi + 0x104], edi
mov dword [esi + 0x100], edi
mov dword [esi + 0x20], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x58], edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x28], eax
je 0x474d9d
mov ecx, ebx
shl ecx, 2
push ecx
push dword [esi + 0x18]
push eax
call sub.msvcrt.dll_memcpy
mov ebx, dword [ebp + 8]
add esp, 0xc
push edi
push edi
push edi
push 0x405a14
push ebx
mov ecx, esi
call fcn.0044f4d7
push edi
push edi
push edi
push 0x405a0c
push ebx
mov ecx, esi
mov dword [ebp - 0x1c], eax
call fcn.0044f4d7
push edi
push edi
push edi
push 0x4063ac
push ebx
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.0044f4d7
push edi
push edi
push edi
push 0x4063a4
push ebx
mov ecx, esi
mov dword [ebp - 0x70], eax
call fcn.0044f4d7
xor ecx, ecx
cmp eax, edi
setne cl
mov dword [ebp - 0x6c], eax
xor eax, eax
cmp dword [ebp - 0x70], edi
mov dword [ebp - 4], 1
setne al
add ecx, eax
xor eax, eax
cmp dword [ebp - 0x3c], edi
setne al
add ecx, eax
xor eax, eax
cmp dword [ebp - 0x1c], edi
setne al
add eax, ecx
cmp eax, 1
jbe 0x4737cc
push 0x406364
push 0xdc4
push ebx
push esi
call fcn.0044f2af
add esp, 0x10
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x6c], edi
cmp dword [ebp - 0x1c], edi
jne 0x4737d6
cmp dword [ebp - 0x3c], edi
je 0x4737d9
mov dword [ebp - 4], edi
cmp dword [ebp - 0x6c], edi
je 0x4737e4
mov dword [esi + 0x110], edi
lea eax, [ebp - 0xb0]
push eax
push dword [ebp + 0x14]
mov ecx, esi
call fcn.0044e4fb
test eax, eax
jl 0x4737fc
mov dword [ebp - 4], edi
push 1
lea eax, [ebp + 0x14]
push eax
push edi
mov ecx, esi
call fcn.004580fb
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], edi
jmp 0x473884
mov ecx, dword [ebx + 8]
mov eax, dword [ecx + 0x1c]
jmp 0x47382d
inc dword [ebp - 8]
mov eax, dword [eax + 0xc]
cmp eax, edi
jne 0x473827
mov eax, dword [ecx + 0x20]
cmp eax, edi
mov dword [ebp - 0xc], edi
je 0x473868
mov edx, dword [eax + 8]
cmp edx, edi
je 0x47385c
cmp dword [edx + 4], 0xc
jne 0x47385c
mov edx, dword [edx + 0x14]
cmp edx, 1
je 0x473855
cmp edx, 0xa
jne 0x47385c
mov dword [ebp - 0xc], 1
mov eax, dword [eax + 0xc]
cmp eax, edi
jne 0x47383b
cmp dword [ebp - 0xc], edi
jne 0x47387e
push 0x406330
push 0xdcd
push dword [ecx + 0x34]
push esi
call fcn.0044f2af
add esp, 0x10
inc dword [ebp - 0x10]
mov ebx, dword [ebx + 0xc]
cmp ebx, edi
jne 0x47381f
mov eax, dword [ebp - 0x10]
push 4
xor ecx, ecx
pop ebx
inc eax
mov edx, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x80], eax
je 0x474d9d
mov eax, dword [ebp - 8]
xor ecx, ecx
inc eax
mov edx, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x38], eax
je 0x474d9d
mov eax, dword [ebp - 8]
xor ecx, ecx
inc eax
mov edx, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x24], eax
je 0x474d9d
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov edx, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x7c], eax
je 0x474d9d
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov edx, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x88], eax
je 0x474d9d
mov eax, dword [ebp - 8]
xor ecx, ecx
mov edx, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x64], eax
je 0x474d9d
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov edx, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x74], eax
je 0x474d9d
mov eax, dword [ebp - 8]
xor ecx, ecx
mov edx, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x84], eax
je 0x474d9d
cmp dword [ebp - 4], edi
mov ecx, esi
je 0x474afe
call fcn.0044dee9
mov ecx, dword [esi + 0x78]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
push 0x40
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x5c], eax
je 0x474d9d
mov eax, dword [ebp - 0x14]
xor ecx, ecx
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x40], eax
je 0x474d9d
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x58], eax
je 0x474d9d
xor ebx, ebx
cmp dword [ebp - 0x14], edi
mov dword [ebp - 0xc], ebx
jbe 0x473b06
mov eax, dword [ebp - 0x5c]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x58]
mov dword [eax + ebx*4], edi
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ebx*4]
cmp eax, 0xffffffff
je 0x473a57
push dword [ebp + 8]
mov ecx, esi
push eax
call fcn.00452a66
test eax, eax
jge 0x473a99
push edi
fld qword [0x4054e8]
push edi
push edi
mov ecx, dword [ebp + 8]
push edi
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push edi
push 0x7fffffff
push 0xffffffffffffffff
push 0x80000000
push edi
sub esp, 0x10
fstp qword [esp + 8]
fld qword [0x4054e0]
fstp qword [esp]
call fcn.00493945
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov ebx, dword [ebp - 0xc]
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ebx*4]
cmp eax, 0xffffffff
je 0x473ae3
mov ecx, dword [esi + 8]
push edi
push 0x80000000
push eax
call fcn.00490d38
test eax, eax
jne 0x473ae3
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov eax, dword [eax + ebx*4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x40]
and ecx, 0x8000027f
and edx, 0x1c1ff
mov dword [eax + ebx*8], ecx
mov dword [eax + ebx*8 + 4], edx
jmp 0x473af5
mov eax, dword [ebp - 0x40]
mov dword [eax + ebx*8], 0x8000027f
mov dword [eax + ebx*8 + 4], 0x1c1ff
add dword [ebp + 8], 0x40
inc ebx
cmp ebx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ebx
jb 0x473a37
mov edx, dword [ebp + 0xc]
cmp edx, edi
mov eax, dword [esi + 0xe4]
mov dword [ebp - 0x60], eax
mov dword [esi + 0xe4], edi
mov dword [ebp - 0x48], edi
mov ecx, edx
je 0x473b46
mov eax, dword [ecx + 8]
mov eax, dword [eax + 0x1c]
jmp 0x473b3b
mov ebx, dword [eax + 8]
cmp dword [ebx + 0x14], edi
jne 0x473b38
mov dword [ebp - 0x48], 1
mov eax, dword [eax + 0xc]
cmp eax, edi
jne 0x473b29
mov ecx, dword [ecx + 0xc]
cmp ecx, edi
jne 0x473b21
cmp edx, edi
mov dword [ebp - 0x2c], 1
mov eax, edx
mov dword [ebp - 0x54], edx
je 0x473d4a
mov eax, dword [eax + 8]
mov dword [ebp - 0x1c], eax
xor eax, eax
cmp dword [ebp - 0x14], edi
jbe 0x473b79
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + eax*4]
mov ecx, dword [esi + 0x18]
mov dword [ecx + eax*4], edx
inc eax
cmp eax, dword [ebp - 0x14]
jb 0x473b67
or dword [ebp + 8], 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x28], 0xffffffff
je 0x473c4a
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1c]
xor edx, edx
jmp 0x473bd6
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + 0x14]
cmp ecx, edi
jne 0x473bb0
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x20], edi
jmp 0x473bd0
cmp edx, edi
jne 0x473bbd
mov edx, dword [ecx + 0x20]
mov dword [ebp - 4], edx
mov dword [ebp - 0x20], edx
mov ecx, dword [ecx + 0x20]
cmp dword [ebp - 0x20], ecx
jbe 0x473bc8
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 4], ecx
jae 0x473bd0
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0xc]
xor edx, edx
inc edx
cmp eax, edi
jne 0x473b9d
push edi
push edi
push edi
push edi
push edi
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 8]
push eax
mov eax, dword [ebp - 0x1c]
push 0x10000001
push dword [eax + 0x20]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov ecx, dword [esi + 8]
push edi
push dword [ebp - 4]
push edi
push dword [ebp - 0x20]
push dword [ebp + 8]
call fcn.004ad214
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp + 0x14]
mov dword [eax + 0x2c], ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x28]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp + 8]
mov dword [ecx + eax*4], edx
mov ecx, esi
call fcn.0044dee9
mov ecx, dword [esi + 0x78]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov ecx, esi
call fcn.0044decd
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x18]
or dword [ecx + eax*4], 0xffffffff
mov eax, dword [ebp - 0x1c]
push edi
push edi
push edi
push dword [eax + 0x20]
mov ecx, esi
call fcn.00475dd2
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x28]
cmp eax, 0xffffffff
je 0x473cb7
mov edx, dword [esi + 0x18]
lea eax, [edx + eax*4]
mov edx, dword [eax]
cmp edx, dword [ebp + 8]
jne 0x473cb7
mov dword [eax], ecx
xor ecx, ecx
cmp dword [ebp - 0x14], edi
mov dword [ebp - 0xc], ecx
jbe 0x473d07
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x58]
sub eax, ebx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx]
cmp eax, 0xffffffff
je 0x473cf8
mov edx, dword [esi + 0x18]
cmp dword [edx + ecx*4], eax
je 0x473cf8
mov ecx, dword [esi + 8]
push edi
push 0x8000000
push eax
call fcn.00490d38
test eax, eax
jne 0x473cf8
mov eax, dword [ebp - 0x1c]
mov dword [eax + ebx], 1
mov ecx, dword [ebp - 0xc]
inc ecx
add ebx, 4
cmp ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
jb 0x473ccc
cmp dword [ebp - 0x2c], edi
je 0x473d16
cmp dword [ebp - 0x48], edi
je 0x473d16
xor eax, eax
inc eax
jmp 0x473d18
xor eax, eax
push dword [ebp - 0x5c]
mov ecx, esi
push dword [ebp - 0x40]
push dword [esi + 0x18]
push eax
push dword [ebp - 0x14]
call fcn.00453739
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0xc]
cmp eax, edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x54], eax
jne 0x473b5a
mov eax, dword [ebp - 0x60]
mov dword [esi + 0xe4], eax
xor ebx, ebx
xor eax, eax
cmp dword [ebp - 0x14], edi
jbe 0x473d70
mov ecx, dword [ebp - 0x58]
cmp dword [ecx + eax*4], edi
je 0x473d6a
cmp eax, dword [esi + 0x38]
je 0x473d6a
inc ebx
inc eax
cmp eax, dword [ebp - 0x14]
jb 0x473d5c
xor ecx, ecx
push 4
pop edx
mov eax, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [esi + 0xfc], eax
je 0x474d9d
xor ecx, ecx
push 4
pop edx
mov eax, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [esi + 0x104], eax
je 0x474d9d
mov eax, ebx
shl eax, 2
xor ecx, ecx
push 4
pop edx
mov dword [ebp + 8], eax
mul edx
seto cl
mov dword [esi + 0x100], ebx
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0x78], eax
je 0x474d9d
push dword [ebp + 8]
mov ecx, esi
push eax
call fcn.0044dc99
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov ecx, dword [ebp - 0x78]
xor eax, eax
mov dword [ebp + eax*4 - 0xa8], ecx
add ecx, dword [ebp + 8]
inc eax
cmp eax, 4
jb 0x473e02
or dword [ebp - 0x54], 0xffffffff
cmp dword [ebp - 0x14], edi
mov dword [ebp - 4], edi
mov dword [ebp + 8], edi
jbe 0x473ecd
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0xa8]
sub ebx, dword [ebp - 0xa0]
sub eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xa0]
sub eax, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x20], eax
jmp 0x473e58
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
cmp dword [ecx + eax], edi
je 0x473ebf
mov eax, dword [ebp + 8]
cmp eax, dword [esi + 0x38]
je 0x473ebf
mov eax, dword [ebp - 0x20]
add eax, edx
mov edx, dword [ebp + 8]
mov dword [eax + ebx], edx
mov ebx, dword [ecx]
mov edx, dword [ebp - 0xc]
mov dword [edx], ebx
mov ebx, dword [ecx]
mov dword [eax], ebx
mov eax, dword [esi + 0x18]
mov ebx, dword [ebp + 8]
cmp dword [eax + ebx*4], 0xffffffff
je 0x473ea3
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ebx, dword [ecx]
mov ebx, dword [eax + ebx*4]
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x2a50]
cmp eax, dword [ebx + 8]
jne 0x473ea8
mov eax, dword [esi + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 8]
cmp eax, dword [esi + 0x34]
jne 0x473eb6
mov eax, dword [ebp - 4]
mov dword [ebp - 0x54], eax
inc dword [ebp - 4]
add edx, 4
mov dword [ebp - 0xc], edx
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
add ecx, 4
cmp eax, dword [ebp - 0x14]
jb 0x473e55
push dword [ebp - 0x28]
mov eax, dword [ebp - 4]
push dword [ebp - 0x18]
mov ecx, esi
push dword [ebp - 0x34]
mov dword [esi + 0x100], eax
call fcn.0044f1e7
cmp dword [esi + 0x100], edi
mov dword [ebp + 8], edi
jbe 0x473fd8
mov ebx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xa0]
sub eax, ebx
sub ecx, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], ecx
mov eax, dword [esi + 0x48]
cmp dword [ebx], eax
jne 0x473fbf
mov ecx, dword [esi + 8]
test byte [ecx + 0x9c], 2
je 0x473f65
mov edx, dword [ecx + 0x1c]
push dword [edx + eax*4]
call fcn.004912e4
mov dword [ebx], eax
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x1c]
mov eax, dword [edx + eax*4]
mov ecx, dword [ecx + 0x2ad0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebx]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x18], edi
mov eax, dword [esi + 8]
mov ecx, dword [ebx]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x1c], edi
jmp 0x473f81
test dword [ecx + 0x98], 0x200000
jne 0x473f74
mov eax, dword [esi + 0x6c]
mov edx, dword [ecx + 0x1c]
push dword [edx + eax*4]
call fcn.004912e4
mov dword [ebx], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebx + ecx]
push dword [eax + ecx*4]
mov ecx, dword [ebx]
mov ecx, dword [eax + ecx*4]
call fcn.004940b1
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + ebx]
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x28]
mov dword [edx + eax*4], ecx
mov eax, dword [esi + 8]
mov ecx, dword [ebx]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx + ebx]
mov dword [eax + 0x28], ecx
mov ecx, dword [ebp - 0x20]
or dword [ebx + ecx], 0xffffffff
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
add ebx, 4
cmp eax, dword [esi + 0x100]
jb 0x473f11
or dword [ebp - 0x8c], 0xffffffff
push edi
push edi
push edi
push edi
push edi
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x11600001
push dword [ebp + 0x10]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x2a88]
mov edx, dword [ebp - 0x8c]
mov ecx, dword [ecx + edx*4]
push edi
push edi
push edi
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x8c]
push edi
push edi
push dword [ebp - 0xa4]
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x100]
push dword [ebp - 0xa0]
and eax, 0xfffff
or eax, 0x11500000
push eax
push dword [ebp + 0x10]
mov ecx, esi
mov dword [esi + 0x94], 1
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x474da2
cmp dword [esi + 0x100], edi
mov dword [ebp + 8], edi
jbe 0x474148
mov eax, dword [ebp - 0xa8]
sub eax, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0xa0]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0xa4]
sub eax, ebx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 8]
push edi
add eax, ebx
push 0x4000000
push dword [eax]
call fcn.00490d38
test eax, eax
je 0x4740c2
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x2ac4]
jmp 0x4740ef
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 8]
push edi
push 0x200000
add eax, ebx
push dword [eax]
call fcn.00490d38
test eax, eax
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x1c]
je 0x4740e9
mov eax, dword [eax + 0x2ab4]
jmp 0x4740ef
mov eax, dword [eax + 0x2a80]
mov ecx, dword [ebx]
mov ecx, dword [edx + ecx*4]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 4]
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
add ecx, ebx
mov ecx, dword [ecx]
push dword [eax + ecx*4]
mov ecx, dword [ebx]
mov ecx, dword [eax + ecx*4]
call fcn.004940b1
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x30]
mov ecx, dword [esi + 0x104]
add eax, ebx
mov eax, dword [eax + edx]
mov edx, dword [ebp + 8]
inc dword [ebp + 8]
mov dword [ecx + edx*4], eax
mov eax, dword [esi + 0xfc]
mov ecx, dword [ebx]
mov dword [eax + edx*4], ecx
mov eax, dword [ebp + 8]
add ebx, 4
cmp eax, dword [esi + 0x100]
jb 0x47409b
mov ecx, dword [esi + 8]
fldz
push edi
push edi
push ecx
push ecx
fstp qword [esp]
push edi
push edi
push dword [ecx + 0x2aa4]
call fcn.00491133
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
push edi
push edi
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 8]
push dword [ecx + 0x2aa8]
mov ecx, esi
push edi
push edi
push eax
push eax
push 0x11500001
push dword [ebp + 0x10]
call fcn.0044f80e
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [esi + 0x108]
mov dword [ebp - 0xbc], eax
mov eax, dword [esi + 0x10c]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], edi
mov dword [esi + 0x108], 1
mov dword [esi + 0x10c], edi
jmp 0x474648
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 8]
mov ecx, dword [esi + 0x18]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x38]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
cmp dword [ebp - 0x14], edi
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xc], ecx
jbe 0x47420e
mov ebx, dword [ebp - 0x28]
mov edx, dword [esi + 0x18]
shl ecx, 2
mov ebx, dword [ecx + ebx]
mov dword [ecx + edx], ebx
mov ecx, dword [ebp - 0xc]
inc ecx
cmp ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
jb 0x4741f3
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
cmp eax, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], eax
je 0x474332
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 8]
lea ecx, [edx + ecx*4]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x38]
sub ecx, edx
mov dword [ebp - 0xc], ecx
jmp 0x474244
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x14]
cmp eax, edi
mov dword [ebp - 0x4c], eax
je 0x4742c8
mov ecx, dword [esi + 8]
push 8
push 0x800
push edi
push dword [eax + 0x20]
push edi
push edi
push dword [ecx + 0x2a54]
call fcn.004911b2
mov ecx, dword [esi + 0x18]
push edi
push edi
mov dword [ebp - 0x68], eax
mov eax, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 8]
push dword [ecx + 0x2aa8]
lea ecx, [ebp - 0x68]
push edi
push ecx
push eax
push eax
push 0x24400001
push dword [ebp - 0x30]
mov ecx, esi
call fcn.0044f80e
mov ebx, eax
cmp ebx, edi
jl 0x474da2
cmp dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x20]
jne 0x4742b6
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], eax
jmp 0x474300
cmp dword [ebp - 0x1c], eax
jbe 0x4742be
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x3c], eax
jae 0x474300
mov dword [ebp - 0x3c], eax
jmp 0x474300
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
push edi
push edi
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 8]
push dword [ecx + 0x2aa8]
mov ecx, esi
push edi
push eax
push eax
push eax
push 0x24400001
push dword [ebp - 0x30]
call fcn.0044f80e
mov ebx, eax
cmp ebx, edi
jl 0x474da2
or dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0xc]
mov dword [ebx + eax], edx
mov edx, dword [ebp - 8]
inc dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ecx + 0xc]
add eax, 4
cmp ecx, edi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x30], ecx
jne 0x474241
or dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x28], 0xffffffff
je 0x4743b8
push edi
push edi
push edi
push edi
push edi
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push 0x10000001
push dword [eax + 0x20]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov ecx, dword [esi + 8]
push edi
push dword [ebp - 0x3c]
push edi
push dword [ebp - 0x1c]
push dword [ebp - 4]
call fcn.004ad214
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp - 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp + 0x14]
mov dword [eax + 0x2c], ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x28]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 4]
mov dword [ecx + eax*4], edx
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
or dword [ebp - 0x20], 0xffffffff
push edi
push edi
push edi
push edi
push edi
lea eax, [ecx + eax*4]
push eax
lea eax, [ebp - 0x20]
push eax
push 0x11800001
push dword [ebp + 8]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x474da2
cmp dword [ebp - 0x70], edi
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x1c]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ecx + edx*4]
mov eax, dword [eax + 0x2a88]
mov dword [ecx + 8], eax
je 0x474419
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
or dword [eax + 4], 0x20000
mov dword [eax], ecx
cmp dword [ebp - 0x6c], edi
je 0x474435
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
or dword [eax + 4], 0x40000
mov dword [eax], ecx
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 8]
inc dword [ebp - 0x10]
mov dword [ebp - 0x68], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x90], eax
mov eax, dword [ebp - 0x80]
mov dword [esi + 0x94], 1
mov dword [eax + ecx*4], edx
mov ecx, esi
call fcn.0044dee9
mov ecx, dword [esi + 0x78]
mov ebx, dword [esi + 0x18]
mov dword [ebx + ecx*4], eax
mov ecx, esi
call fcn.0044decd
mov ecx, dword [esi + 0x88]
mov ebx, dword [esi + 0x18]
mov dword [ebx + ecx*4], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x8c]
or dword [ecx + eax*4], 0xffffffff
push edi
push edi
push edi
push dword [edx + 0x20]
mov ecx, esi
call fcn.00475dd2
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x28]
xor ebx, ebx
cmp eax, 0xffffffff
mov dword [ebp - 0x4c], edi
je 0x4744d8
mov edx, dword [esi + 0x18]
lea eax, [edx + eax*4]
mov edx, dword [eax]
cmp edx, dword [ebp - 4]
jne 0x4744d8
mov dword [eax], ecx
mov ecx, dword [esi + 0x18]
lea eax, [ebp - 0x60]
push eax
mov eax, dword [esi + 0x88]
push dword [ecx + eax*4]
mov ecx, esi
call fcn.0044f182
test eax, eax
jl 0x4744ff
cmp dword [ebp - 0x60], edi
je 0x4744ff
mov dword [ebp - 0x4c], 1
mov ecx, dword [esi + 0x18]
lea eax, [ebp - 0x60]
push eax
mov eax, dword [esi + 0x80]
push dword [ecx + eax*4]
mov ecx, esi
call fcn.0044f182
test eax, eax
jl 0x474522
cmp dword [ebp - 0x60], edi
je 0x474522
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x4c], edi
jne 0x47454e
cmp ebx, edi
jne 0x474556
mov eax, dword [ebp + 8]
push 0x4062fc
push 0xdd1
push dword [eax + 0x34]
push esi
call fcn.0044f2af
add esp, 0x10
mov ebx, 0x80004005
jmp 0x474da2
cmp ebx, edi
je 0x4745f6
cmp dword [esi + 0x110], edi
je 0x4745da
cmp dword [ebp - 0x54], 0xffffffff
je 0x474544
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x18]
or dword [ebp - 0x18], 0xffffffff
push edi
push edi
push dword [eax + 0x2ab4]
mov eax, dword [esi + 0x34]
push edi
push edi
lea eax, [ecx + eax*4]
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp + 8]
push 0x10000001
push dword [eax + 0x34]
mov ecx, esi
call fcn.0044f80e
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
mov edx, dword [ebp - 0x54]
push edi
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 8]
push edi
push dword [ecx + 0x2aa8]
lea ecx, [ebp - 0x18]
push eax
push ecx
mov ecx, dword [esi + 0xfc]
lea ecx, [ecx + edx*4]
push ecx
push eax
mov eax, dword [ebp + 8]
push 0x50400001
push dword [eax + 0x34]
mov ecx, esi
call fcn.0044f80e
jmp 0x4745ec
cmp dword [ebp - 0x4c], edi
jne 0x4745f6
mov eax, dword [ebp + 8]
push dword [eax + 0x34]
mov ecx, esi
call fcn.0045e726
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [ebp - 0x68]
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x90], eax
mov eax, dword [ebp - 0x34]
push edi
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x38]
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 8]
push edi
push dword [ecx + 0x2aa8]
lea ecx, [ebp - 0x98]
push edi
push ecx
push eax
push eax
mov eax, dword [ebp + 8]
push 0x24500001
push dword [eax + 0x34]
mov ecx, esi
call fcn.0044f80e
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0xc]
cmp eax, edi
mov dword [ebp - 0x2c], eax
jne 0x4741d1
cmp dword [ebp - 0x48], edi
jne 0x47481e
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
cmp dword [ebp - 0x14], edi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], ecx
jbe 0x47468d
mov ebx, dword [ebp - 0x28]
mov edx, dword [esi + 0x18]
shl ecx, 2
mov ebx, dword [ecx + ebx]
mov dword [ecx + edx], ebx
mov ecx, dword [ebp - 0x18]
inc ecx
cmp ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
jb 0x474672
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
push edi
push edi
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 8]
push dword [ecx + 0x2aa8]
mov ecx, esi
push edi
push eax
push eax
push eax
push 0x24400001
push dword [ebp + 0x10]
call fcn.0044f80e
mov ebx, eax
cmp ebx, edi
jl 0x474da2
push 0x18
call fcn.0044764f
cmp eax, edi
je 0x4746db
mov ecx, eax
call fcn.0047c2b3
jmp 0x4746dd
xor eax, eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x38]
or dword [ebp + 8], 0xffffffff
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x24]
push edi
push edi
mov dword [eax + ecx*4], ecx
mov eax, dword [esi + 0x38]
push edi
inc ecx
push edi
mov dword [ebp - 8], ecx
mov ecx, dword [esi + 0x18]
push edi
lea eax, [ecx + eax*4]
push eax
lea eax, [ebp + 8]
push eax
push 0x11800001
push dword [ebp + 0x10]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x474da2
cmp dword [ebp - 0x70], edi
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x1c]
mov edx, dword [ebp + 8]
mov ecx, dword [ecx + edx*4]
mov eax, dword [eax + 0x2a88]
mov dword [ecx + 8], eax
je 0x474751
mov eax, dword [esi + 8]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
or dword [eax + 4], 0x20000
mov dword [eax], ecx
cmp dword [ebp - 0x6c], edi
je 0x47476d
mov eax, dword [esi + 8]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
or dword [eax + 4], 0x40000
mov dword [eax], ecx
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x90], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x94], 1
mov dword [ecx + edx*4], eax
mov ecx, esi
call fcn.0044decd
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x18]
push dword [ebp + 0x10]
mov dword [edx + ecx*4], eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x8c]
or dword [ecx + eax*4], 0xffffffff
mov ecx, esi
call fcn.0045e726
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [ebp - 0x98]
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x90], eax
mov eax, dword [ebp - 0x68]
push edi
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x38]
push edi
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 8]
push dword [ecx + 0x2aa8]
lea ecx, [ebp - 0x34]
push edi
push ecx
push eax
push eax
push 0x24500001
push dword [ebp + 0x10]
mov ecx, esi
call fcn.0044f80e
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x9c]
mov dword [esi + 0x108], eax
mov eax, dword [ebp - 0x90]
mov dword [esi + 0x10c], eax
mov eax, dword [ebp - 0x44]
mov dword [esi + 0x90], eax
mov eax, dword [ebp - 0x50]
mov dword [esi + 0x94], eax
xor eax, eax
cmp dword [esi + 0x100], edi
jbe 0x47486d
mov edx, dword [esi + 0x38]
mov ebx, dword [esi + 0x18]
mov edx, dword [ebx + edx*4]
mov dword [ecx + eax*4], edx
inc eax
cmp eax, dword [esi + 0x100]
jb 0x474858
mov eax, dword [esi + 0x100]
push edi
push edi
push edi
push edi
push ecx
push dword [esi + 0xfc]
and eax, 0xfffff
push dword [ebp - 0xa0]
or eax, 0x24300000
push eax
push dword [ebp + 0x10]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x474da2
cmp dword [esi + 0x100], edi
mov dword [ebp + 0xc], edi
jbe 0x474a56
mov ebx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xa8]
sub eax, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0xfc]
mov ecx, dword [ebp + 0xc]
push edi
push 0x4000000
push dword [eax + ecx*4]
mov ecx, dword [esi + 8]
call fcn.00490d38
test eax, eax
je 0x4748ef
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x2abc]
jmp 0x474921
mov eax, dword [esi + 0xfc]
mov ecx, dword [ebp + 0xc]
push edi
push 0x200000
push dword [eax + ecx*4]
mov ecx, dword [esi + 8]
call fcn.00490d38
test eax, eax
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x1c]
je 0x47491b
mov eax, dword [eax + 0x2aac]
jmp 0x474921
mov eax, dword [eax + 0x2a6c]
mov ecx, dword [ebx]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xfc]
mov ecx, dword [ecx + edx*4]
mov eax, dword [eax + 0x1c]
push dword [eax + ecx*4]
mov ecx, dword [ebx]
mov ecx, dword [eax + ecx*4]
call fcn.004940b1
mov ecx, dword [esi + 0x18]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebx + eax]
mov edx, dword [ebx]
mov dword [ecx + eax*4], edx
mov eax, dword [esi + 8]
mov ecx, dword [ebx]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebx + ecx]
push edi
mov dword [eax + 0x28], ecx
mov ecx, dword [esi + 8]
push 0x4200000
push dword [ebx]
call fcn.00490d38
test eax, eax
jne 0x474a41
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebx + eax]
mov edx, dword [ebp - 0x40]
mov eax, ecx
shl eax, 6
add eax, dword [ebp - 0x5c]
mov dword [ebp + 8], eax
mov eax, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
and eax, 0x80000000
and ecx, 0x1ff
or eax, ecx
jne 0x4749c1
push 0x4062c8
push edi
push edi
push esi
call fcn.0044f2af
add esp, 0x10
jmp 0x474a41
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebx]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebx + ecx]
mov edx, dword [ebp - 0x40]
mov edx, dword [edx + ecx*8]
or dword [eax], edx
mov edx, dword [ebp - 0x40]
mov ecx, dword [edx + ecx*8 + 4]
or dword [eax + 4], ecx
mov eax, dword [esi + 8]
mov ecx, dword [ebx]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax + ecx*4]
push dword [ebp + 8]
mov dword [ebp - 0x18], ecx
call fcn.00493d04
test eax, eax
jge 0x474a0e
push 0x406294
push edi
push edi
push esi
call fcn.0044f2af
add esp, 0x10
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
cmp ecx, dword [eax + 0x38]
jne 0x474a2c
mov ecx, dword [eax + 0x34]
cmp ecx, dword [eax + 0x3c]
jne 0x474a2c
mov eax, dword [ebp - 0x18]
or dword [eax], 0x7800
jmp 0x474a3b
mov eax, dword [ebp - 0x18]
and dword [eax], 0xfffff7ff
or dword [eax], 0x7000
mov ecx, dword [eax + 4]
mov dword [eax + 4], ecx
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
add ebx, 4
cmp eax, dword [esi + 0x100]
jb 0x4748c3
cmp dword [ebp - 0x94], edi
je 0x474d0c
cmp dword [esi + 0x110], edi
jne 0x474d0c
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + eax*4]
cmp eax, 0xffffffff
je 0x474d0c
lea ecx, [ebp + 0xc]
push ecx
push eax
mov ecx, esi
call fcn.0044f182
test eax, eax
jl 0x474a9c
cmp dword [ebp + 0xc], edi
je 0x474d0c
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x74]
push dword [ebp + 0x10]
lea ecx, [eax + ecx*4]
mov edx, dword [ecx]
mov dword [ebp + 0xc], edx
mov edx, dword [esi + 0x80]
mov eax, dword [eax + edx*4]
mov dword [ecx], eax
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x94]
mov ecx, esi
mov dword [esi + 0x110], eax
call fcn.0047311a
mov ebx, eax
cmp ebx, edi
jl 0x474da2
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp + 0xc]
mov dword [ecx + eax*4], edx
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp + 8]
mov dword [ecx + eax*4], edx
mov dword [esi + 0x110], edi
jmp 0x474d0c
push dword [ebp - 0x28]
push dword [ebp - 0x18]
push dword [ebp - 0x34]
call fcn.0044f1e7
mov eax, dword [ebp + 0xc]
mov dword [ebp - 8], edi
jmp 0x474b68
mov ecx, dword [eax + 8]
mov dword [ebp - 0x50], ecx
mov ecx, dword [ecx + 0x1c]
cmp ecx, edi
je 0x474b65
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x64]
lea eax, [eax + edx*4]
mov edx, dword [ebp - 0x38]
sub edx, dword [ebp - 0x24]
sub ebx, dword [ebp - 0x24]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x44], ebx
jmp 0x474b41
mov edx, dword [ebp - 0xc]
mov ebx, dword [ecx + 8]
mov dword [eax + edx], ebx
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 0x44]
inc dword [ebp - 8]
mov dword [eax], edx
mov edx, dword [ebp - 0x50]
mov dword [ebx + eax], edx
mov ecx, dword [ecx + 0xc]
add eax, 4
cmp ecx, edi
jne 0x474b3e
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0xc]
cmp eax, edi
mov dword [ebp + 0xc], eax
jne 0x474b14
push dword [ebp - 0x38]
push dword [ebp - 8]
push dword [ebp - 0x24]
push 0x44d7fe
call fcn.00494707
mov dword [ebp - 0x2c], 1
cmp dword [ebp - 8], edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x48], edi
mov dword [ebp + 0xc], edi
jbe 0x474c69
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x7c]
sub eax, edx
mov dword [ebp - 0xc], edx
sub dword [ebp - 0xc], ecx
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x10]
jae 0x474c69
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0xc]
lea edx, [edx + ebx*4]
mov ebx, dword [ebp - 0x50]
add eax, ecx
mov dword [eax + ebx], edx
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x24]
lea edx, [edx + ebx*4]
mov ebx, dword [ebp - 0x64]
mov dword [ebp - 0x44], edx
mov dword [ecx], edi
mov edx, dword [edx]
mov edx, dword [ebx + edx*4]
mov dword [eax], edx
mov edx, dword [ebp - 0x84]
sub edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x44], edx
jmp 0x474c07
mov eax, dword [ebp - 0x90]
mov edx, dword [eax]
mov ebx, dword [ebp - 0x38]
mov edx, dword [ebx + edx*4]
mov edx, dword [edx + 0x14]
cmp edx, edi
je 0x474c23
mov edx, dword [edx + 0x20]
mov ebx, dword [ebp - 0x44]
mov dword [eax + ebx], edx
inc dword [ecx]
jmp 0x474c2c
xor edx, edx
inc edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x48], edx
inc dword [ebp + 0xc]
mov edx, dword [ebp + 0xc]
add eax, 4
cmp edx, dword [ebp - 8]
mov dword [ebp - 0x90], eax
jae 0x474c50
mov edx, dword [eax - 4]
mov ebx, dword [eax]
mov eax, dword [ebp - 0x64]
mov edx, dword [eax + edx*4]
cmp edx, dword [eax + ebx*4]
je 0x474c01
cmp dword [ebp - 0x18], edi
je 0x474c57
mov dword [ecx], edi
mov eax, dword [ebp + 0xc]
inc dword [ebp - 4]
add ecx, 4
cmp eax, dword [ebp - 8]
jb 0x474bb2
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x10], eax
jne 0x474c79
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 8]
je 0x474c94
xor eax, eax
cmp dword [ebp - 8], edi
jbe 0x474c8c
mov ecx, dword [ebp - 0x24]
mov dword [ecx + eax*4], eax
inc eax
cmp eax, dword [ebp - 8]
jb 0x474c80
mov dword [ebp - 0x2c], edi
jmp 0x474b89
cmp dword [ebp - 0x48], edi
je 0x474c9c
mov dword [ebp - 0x2c], edi
push dword [ebp - 0x48]
mov eax, dword [esi + 0x108]
push dword [ebp - 0x2c]
mov ecx, dword [esi + 0x18]
push dword [ebp - 4]
mov dword [ebp + 0xc], eax
push dword [ebp - 0x88]
mov eax, dword [esi + 0x10c]
push dword [ebp - 0x7c]
mov dword [ebp - 0x50], eax
push dword [ebp - 0x74]
mov eax, dword [esi + 0x8c]
or dword [ecx + eax*4], 0xffffffff
push edi
push edi
push edi
push edi
push dword [ebp + 0x14]
mov ecx, esi
push dword [ebp + 0x10]
mov dword [esi + 0x108], edi
push dword [ebp + 8]
mov dword [esi + 0x10c], edi
call fcn.004588a1
mov ebx, eax
cmp ebx, edi
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x108], eax
mov eax, dword [ebp - 0x50]
mov dword [esi + 0x10c], eax
jl 0x474da2
push dword [ebp - 0x38]
mov ebx, dword [ebp - 8]
push ebx
push dword [ebp - 0x24]
push 0x44d7fe
call fcn.00494707
dec ebx
cmp ebx, edi
mov dword [ebp + 0x10], edi
mov dword [ebp + 0xc], ebx
jbe 0x474d99
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x38]
shl ebx, 2
mov eax, dword [ebx + ecx]
mov ecx, dword [ebx + ecx + 4]
mov eax, dword [edx + eax*4]
mov edx, dword [edx + ecx*4]
mov ecx, dword [eax + 0x14]
cmp ecx, edi
je 0x474d75
mov ebx, dword [edx + 0x14]
cmp ebx, edi
je 0x474d71
mov ecx, dword [ecx + 0x20]
cmp ecx, dword [ebx + 0x20]
jne 0x474d8e
push ecx
push 0x406278
push 0xdcc
push eax
push esi
call fcn.0044f2af
add esp, 0x14
jmp 0x474d8e
cmp ecx, edi
jne 0x474d8e
cmp dword [edx + 0x14], edi
jne 0x474d8e
push 0x406248
push 0xdcc
push eax
push esi
call fcn.0044f2af
add esp, 0x10
inc dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp + 0xc]
jb 0x474d2b
xor ebx, ebx
jmp 0x474da2
mov ebx, 0x8007000e
push dword [esi + 0xfc]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [esi + 0x104]
mov dword [esi + 0xfc], edi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x78]
mov dword [esi + 0x104], edi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x38]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x80]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x24]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x88]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x74]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x84]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x7c]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x64]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x5c]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x40]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x58]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp - 0xd0]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 0xc4]
push dword [ebp - 0x28]
mov dword [esi + 0xfc], eax
mov eax, dword [ebp - 0xb4]
mov dword [esi + 0x100], eax
mov eax, dword [ebp - 0xcc]
mov dword [esi + 0x104], eax
mov eax, dword [esi + 0x88]
mov dword [ecx + eax*4], edx
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 0xb8]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 0xc8]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x78]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0x94]
mov dword [esi + 0x110], eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 0x3c
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret 0x10