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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x104
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0xd0]
mov dword [ebp - 0xac], eax
mov eax, dword [esi + 0xd4]
mov edx, dword [esi + 0x88]
mov dword [ebp - 0xe8], eax
mov eax, dword [esi + 0xd8]
mov dword [ebp - 0xb0], eax
mov eax, dword [esi + 0xe8]
mov dword [ebp - 0xb8], eax
mov eax, dword [esi + 0xbc]
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 0x90]
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0xcc]
mov dword [ebp - 0xa8], eax
mov eax, dword [esi + 0x130]
mov dword [ebp - 0xd8], eax
mov eax, dword [esi + 0x134]
push edi
xor edi, edi
mov dword [esi + 0xbc], 1
mov dword [esi + 0xe8], edi
mov dword [ebp - 0xe0], eax
mov eax, dword [esi + 0x18]
mov edx, dword [eax + edx*4]
mov dword [ebp - 0xec], edx
mov edx, dword [esi + 0x8c]
mov edx, dword [eax + edx*4]
mov dword [ebp - 0xe4], edx
mov edx, dword [esi + 0x78]
mov edx, dword [eax + edx*4]
xor ebx, ebx
mov dword [ebp - 0xd0], edx
mov edx, dword [ebp + 0xc]
cmp edx, edi
setne bl
cmp ecx, edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x44], ebx
jne 0x46071c
or dword [esi + 0xec], 8
mov ecx, dword [ebp + 0x14]
cmp ecx, edi
jne 0x460726
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x34]
cmp ecx, edi
jne 0x46074b
cmp edx, edi
je 0x46073f
mov dword [ebp - 0x1c], edx
jmp 0x46074e
cmp ebx, edi
je 0x460748
mov dword [ebp - 0x1c], ebx
jmp 0x46074e
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xac]
cmp edx, dword [ecx + 0x7c]
jb 0x460776
add esi, 0xec
mov eax, dword [esi]
and eax, 0xfffffff9
or eax, 1
mov dword [esi], eax
mov eax, 0x80004005
jmp 0x46281d
inc edx
mov dword [esi + 0xac], edx
mov edx, dword [esi + 4]
mov ebx, dword [edx + 0x20]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [esi + 0xfc]
mov dword [ebp - 0xcc], ecx
mov ecx, dword [esi + 0x100]
mov dword [ebp - 0xd4], ecx
mov ecx, dword [esi + 0x104]
mov dword [ebp - 0xf4], ecx
mov ecx, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xdc], ecx
mov ecx, dword [esi + 0x80]
mov eax, dword [eax + ecx*4]
add ebx, 0xb
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x58], eax
xor ecx, ecx
push 4
pop edx
mov eax, ebx
mul edx
seto cl
mov dword [ebp - 0x40], ebx
mov dword [esi + 0xfc], edi
mov dword [esi + 0x104], edi
mov dword [esi + 0x100], edi
mov dword [esi + 0xd0], edi
mov dword [esi + 0xd4], edi
neg ecx
or ecx, eax
push ecx
mov dword [esi + 0xd8], edi
mov dword [esi + 0xcc], 1
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebp - 0xbc], eax
je 0x4626db
xor ecx, ecx
push 8
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 [ebp - 0x34], eax
je 0x4626db
xor ecx, ecx
push 8
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 [ebp - 0x54], eax
je 0x4626db
xor ecx, ecx
push 0x40
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 [ebp - 0x50], eax
je 0x4626db
xor ecx, ecx
push 0x40
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 [ebp - 0x68], eax
je 0x4626db
cmp ebx, edi
jbe 0x460964
mov eax, dword [ebp - 0x50]
mov dword [ebp + 0xc], eax
mov ebx, edi
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ebx*4]
cmp eax, 0xffffffff
je 0x4608d6
push dword [ebp + 0xc]
mov ecx, esi
push eax
call fcn.00452a66
test eax, eax
jge 0x46090b
push edi
fld qword [0x4054e8]
push edi
push edi
mov ecx, dword [ebp + 0xc]
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 eax, dword [esi + 0x18]
mov eax, dword [eax + ebx*4]
cmp eax, 0xffffffff
je 0x460948
mov ecx, dword [esi + 8]
push edi
push 0x80000000
push eax
call fcn.00490d38
test eax, eax
jne 0x460948
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 eax, dword [ebp - 0x34]
and ecx, 0x27f
mov dword [eax + ebx*8], ecx
jmp 0x460952
mov eax, dword [ebp - 0x34]
mov dword [eax + ebx*8], 0x27f
add dword [ebp + 0xc], 0x40
mov dword [eax + ebx*8 + 4], edi
inc ebx
cmp ebx, dword [ebp - 0x40]
jb 0x4608bc
mov ebx, dword [ebp - 0x40]
mov eax, ebx
shl eax, 3
push eax
push dword [ebp - 0x34]
push dword [ebp - 0x54]
call sub.msvcrt.dll_memcpy
shl ebx, 6
push ebx
push dword [ebp - 0x50]
push dword [ebp - 0x68]
call sub.msvcrt.dll_memcpy
add esp, 0x18
mov ecx, esi
call fcn.0044dee9
or dword [ebp - 0xc8], 0xffffffff
or dword [ebp - 0xa0], 0xffffffff
mov ecx, dword [esi + 8]
mov dword [ebp - 0x24], eax
mov ecx, dword [ecx + 0x88]
xor eax, eax
inc eax
cmp ecx, edi
mov dword [ebp - 0x28], eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], ecx
jne 0x4609c8
mov dword [ebp - 4], 0xff
mov edx, dword [esi + 0xb0]
lea ecx, [edx + edx]
shr dword [ebp - 4], cl
push 4
pop ecx
cmp dword [ebp - 4], ecx
jae 0x4609df
mov dword [ebp - 4], ecx
inc edx
mov ecx, esi
mov dword [esi + 0xb0], edx
mov dword [ebp - 0xa4], eax
call fcn.0044decd
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x8c]
mov ecx, dword [eax + ecx*4]
mov edx, dword [esi + 0x88]
mov dword [eax + edx*4], ecx
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.0044dee9
mov ecx, dword [esi + 0x7c]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov ecx, esi
mov dword [esi + 0x108], edi
mov dword [esi + 0x10c], edi
call fcn.0044d873
cmp dword [ebp - 4], edi
mov dword [ebp - 0x10], edi
jbe 0x460e90
cmp dword [ebp + 0xc], edi
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 1]
mov dword [esi + 0x130], eax
mov dword [esi + 0x134], ecx
je 0x460a90
mov ecx, dword [esi + 8]
test byte [ecx + 0x9c], 8
je 0x460a90
cmp dword [esi + 0xe8], edi
jne 0x460a90
mov ecx, dword [ebp - 4]
dec ecx
cmp eax, ecx
jne 0x460a90
mov dword [esi + 0xe8], 1
cmp dword [ebp + 0x14], edi
jne 0x460a9a
cmp dword [ebp + 0x18], edi
je 0x460ac3
cmp dword [ebp - 0x44], edi
je 0x460ac3
push edi
push 1
push edi
push dword [ebp + 0x14]
mov ecx, esi
call fcn.00475dd2
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [esi + 0xd0], edi
jne 0x460e32
mov eax, dword [ebp - 0x40]
shl eax, 2
push eax
push dword [esi + 0x18]
push dword [ebp - 0xbc]
call sub.msvcrt.dll_memcpy
mov ecx, dword [esi + 0x18]
or eax, 0xffffffff
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x60], eax
mov eax, dword [esi + 0x88]
add esp, 0xc
lea eax, [ecx + eax*4]
push eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 0x10]
mov ecx, esi
call fcn.0045592b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x80]
lea eax, [ecx + eax*4]
push eax
lea eax, [ebp - 0x60]
push eax
push dword [ebp + 0x10]
mov ecx, esi
call fcn.0045592b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 0x10]
mov ecx, esi
call fcn.004557ff
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 0x10]
mov ecx, esi
call fcn.004557ff
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [ebp + 0x10], edi
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x24], eax
je 0x460bc6
or dword [ebp - 0x30], 0xffffffff
push edi
push edi
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 0x10]
mov ecx, esi
call fcn.004787a6
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x24]
push eax
push eax
push dword [ebp + 0x10]
mov ecx, esi
call fcn.004557ff
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [esi + 0xd0], edi
jne 0x460e32
cmp dword [ebp - 0x20], edi
je 0x460c13
mov ecx, dword [esi + 0x18]
lea eax, [ebp - 0x28]
push eax
mov eax, dword [esi + 0x88]
push dword [ecx + eax*4]
mov ecx, esi
call fcn.0044f182
test eax, eax
jl 0x460c13
cmp dword [ebp - 0x28], edi
jne 0x460c13
mov ecx, dword [esi + 0x18]
lea eax, [ebp - 0x28]
push eax
mov eax, dword [esi + 0x80]
push dword [ecx + eax*4]
mov ecx, esi
call fcn.0044f182
test eax, eax
jl 0x460c13
cmp dword [ebp - 0x28], edi
jne 0x460c13
xor ebx, ebx
inc ebx
mov dword [ebp - 0x20], ebx
jmp 0x460c19
xor ebx, ebx
mov dword [ebp - 0x20], edi
inc ebx
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x24]
mov ecx, esi
call fcn.0044f182
xor ecx, ecx
test eax, eax
setge cl
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x48], ecx
je 0x460c3d
cmp ecx, edi
mov dword [ebp + 0xc], ebx
jne 0x460c40
mov dword [ebp + 0xc], edi
cmp dword [ebp - 0x10], edi
jbe 0x460c83
cmp dword [ebp + 0xc], edi
jne 0x460c83
mov eax, dword [esi + 8]
test dword [eax + 0x98], 0x200000
jne 0x460c5e
cmp dword [ebp - 8], edi
je 0x460c83
test byte [eax + 0x9c], 8
je 0x460c83
cmp dword [esi + 0xe8], edi
jne 0x460c83
mov eax, dword [ebp - 4]
add eax, 0xfffffffe
cmp dword [ebp - 0x10], eax
mov dword [esi + 0xe8], ebx
jae 0x460c83
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x64], eax
mov eax, dword [esi + 8]
test byte [eax + 0x9c], 8
je 0x460cb3
test dword [eax + 0x98], 0x200000
jne 0x460cb0
cmp dword [ebp + 0xc], edi
jne 0x460cb3
cmp dword [ebp - 0x20], edi
jne 0x460cb3
cmp dword [ebp - 8], edi
jne 0x460cb3
mov dword [ebp - 0x64], ebx
push dword [ebp - 0x68]
mov ecx, esi
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push dword [ebp - 0x34]
push dword [ebp + 0x1c]
push dword [ebp - 0x64]
push dword [ebp + 0xc]
push dword [ebp - 0x48]
push dword [ebp - 0x40]
call fcn.00453165
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [ebp - 0x48], edi
je 0x460ced
cmp dword [ebp - 0x28], edi
je 0x460e8b
cmp dword [ebp - 8], edi
je 0x460d28
cmp dword [ebp + 0xc], edi
jne 0x460d25
cmp dword [esi + 0xe8], edi
jne 0x460d25
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0x10]
mov ecx, esi
push dword [ebp - 0x30]
call fcn.00458334
test eax, eax
mov dword [ebp - 8], 1
jne 0x460d28
mov dword [ebp - 8], edi
cmp dword [ebp - 0x20], edi
je 0x460d39
cmp dword [ebp - 8], edi
mov dword [ebp - 0x20], 1
jne 0x460d3c
mov dword [ebp - 0x20], edi
cmp dword [ebp + 0x14], edi
jne 0x460d4a
cmp dword [ebp + 0x18], edi
je 0x460e21
cmp dword [ebp - 0x44], edi
jne 0x460e21
mov ecx, esi
mov dword [esi + 0x114], edi
call fcn.0044decd
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x18]
push edi
push edi
push edi
push dword [ebp + 0x14]
mov dword [edx + ecx*4], eax
mov ecx, esi
call fcn.00475dd2
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
push dword [ebp - 0x68]
mov ecx, esi
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push dword [ebp - 0x34]
push dword [ebp + 0x1c]
push dword [ebp - 0x64]
push dword [ebp + 0xc]
push dword [ebp - 0x48]
push dword [ebp - 0x40]
call fcn.00453165
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov ecx, dword [esi + 0x18]
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x88]
push dword [ecx + eax*4]
mov ecx, esi
call fcn.0044f182
test eax, eax
jl 0x460dcf
cmp dword [ebp - 0xc], edi
jne 0x460e3e
mov ecx, dword [esi + 0x18]
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x80]
push dword [ecx + eax*4]
mov ecx, esi
call fcn.0044f182
test eax, eax
jl 0x460def
cmp dword [ebp - 0xc], edi
jne 0x460e3e
mov ecx, esi
call fcn.0044decd
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x18]
push edi
push edi
push edi
push dword [ebp + 0x18]
mov dword [edx + ecx*4], eax
mov ecx, esi
call fcn.00475dd2
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [esi + 0xd0], edi
jne 0x460e4d
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 4]
jb 0x460a53
jmp 0x460e8b
cmp dword [ebp - 0x4c], edi
jne 0x460e8b
cmp dword [ebp + 0xc], edi
je 0x460e93
jmp 0x460e57
mov ecx, esi
call fcn.0044decd
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edi
jmp 0x460e8b
cmp dword [ebp - 0x4c], edi
jne 0x460e8b
cmp dword [ebp + 0xc], edi
je 0x460e9e
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x38]
mov eax, dword [esi + 0x24]
test byte [eax + ecx*4], 0x20
jne 0x460e8b
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x38]
push 0x4060a0
lea eax, [eax + ecx*4]
or dword [eax], 0x20
push 0xdb0
push dword [esi + 0xd8]
push esi
call fcn.0044f2af
add esp, 0x10
cmp dword [ebp + 0xc], edi
je 0x460e93
mov dword [ebp - 8], edi
cmp dword [ebp - 0x44], edi
je 0x460e9e
mov eax, dword [ebp - 0x10]
inc eax
jmp 0x460ea1
mov eax, dword [ebp - 0x10]
xor ebx, ebx
inc ebx
cmp eax, ebx
ja 0x460ecd
cmp dword [ebp + 0x20], edi
je 0x460fbb
cmp dword [ebp - 0x4c], edi
jne 0x460ecd
push eax
push 0x406058
push 0xde5
push dword [ebp - 0x1c]
push esi
call fcn.0044f329
add esp, 0x14
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 4]
jae 0x460f06
test byte [esi + 0xec], 7
je 0x460ee7
cmp dword [ebp + 0x20], edi
je 0x462694
test word [esi + 0x14], 0x200
je 0x460ef8
cmp dword [ebp + 0x20], edi
je 0x462694
cmp dword [esi + 0xd0], edi
jne 0x460f03
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x5c], ebx
mov eax, dword [esi + 8]
test byte [eax + 0x98], 0x20
mov dword [ebp - 0x30], edi
jne 0x460f38
mov ecx, dword [esi + 0x18]
lea eax, [ebp - 0x28]
push eax
mov eax, dword [esi + 0x88]
push dword [ecx + eax*4]
mov ecx, esi
call fcn.0044f182
test eax, eax
jl 0x460f35
cmp dword [ebp - 0x28], edi
je 0x460f38
mov dword [ebp - 0x30], ebx
cmp dword [ebp - 0x4c], edi
jne 0x460f6d
cmp dword [ebp - 0x5c], edi
jne 0x460f6d
cmp dword [ebp - 8], edi
jne 0x460f6d
cmp dword [ebp + 0xc], edi
jne 0x46103e
cmp dword [esi + 0xe8], edi
je 0x460f76
mov eax, dword [esi + 8]
test dword [eax + 0x98], 0x200000
jne 0x460f76
mov dword [ebp - 0xc4], ebx
cmp dword [ebp + 0xc], edi
jne 0x46103e
cmp dword [ebp - 0x20], edi
jne 0x46103e
cmp dword [ebp - 0x5c], edi
je 0x460f8d
cmp dword [ebp - 0x30], edi
jne 0x46100f
cmp dword [ebp - 8], edi
jne 0x46100f
mov eax, dword [esi + 8]
test byte [eax + 0x98], 0x20
jne 0x46100f
cmp dword [ebp + 0x20], edi
je 0x460fe0
push 0x406010
push 0xdc5
push dword [ebp - 0x1c]
push esi
call fcn.0044f2af
jmp 0x4615a4
cmp dword [ebp - 0x4c], edi
jne 0x462694
push eax
push 0x405fcc
push 0xde5
push dword [ebp - 0x1c]
push esi
call fcn.0044f329
add esp, 0x14
jmp 0x462694
lea ebx, [esi + 0x190]
cmp dword [ebx], edi
jne 0x462694
push 0x405f90
push 0xde0
push dword [ebp - 0x1c]
push esi
call fcn.0044f329
add esp, 0x10
mov dword [ebx], 1
jmp 0x462694
mov eax, dword [esi + 8]
test dword [eax + 0x98], 0x800000
jne 0x46103e
mov ebx, dword [ebp - 0x2c]
jmp 0x461039
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + ebx*4]
call fcn.004922b1
test eax, eax
jne 0x46106e
mov eax, dword [esi + 8]
inc ebx
cmp ebx, dword [eax + 0x10]
jb 0x461023
mov eax, dword [ebp - 0x10]
dec dword [esi + 0xb0]
xor ebx, ebx
cmp eax, dword [ebp - 4]
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x64], edi
jae 0x4610c8
xor eax, eax
inc eax
cmp dword [ebp - 0x20], edi
mov dword [ebp - 0x64], eax
jne 0x46106a
cmp dword [ebp + 0xc], edi
je 0x4610e5
mov ebx, eax
jmp 0x4610e2
cmp dword [ebp + 0x20], edi
je 0x46108e
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x20]
mov eax, dword [eax + ebx*4]
push 0x405f5c
push 0xdc6
push dword [eax + 0x40]
jmp 0x460fb0
cmp dword [esi + 0x190], edi
jne 0x462694
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x20]
mov eax, dword [eax + ebx*4]
push 0x405f10
push 0xde1
push dword [eax + 0x40]
push esi
call fcn.0044f329
add esp, 0x10
mov dword [esi + 0x190], 1
jmp 0x462694
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x24]
mov ecx, esi
call fcn.0044f182
test eax, eax
jl 0x4610e5
cmp dword [ebp - 0x28], edi
jne 0x4610e5
xor ebx, ebx
inc ebx
mov dword [ebp - 0x38], ebx
mov eax, dword [esi + 0xd0]
cmp eax, edi
je 0x461106
mov ecx, dword [esi + 8]
mov cl, byte [ecx + 0x98]
not cl
movsx ebx, cl
and ebx, 0x20
shr ebx, 5
mov dword [ebp - 0x38], ebx
mov ecx, dword [esi + 8]
test dword [ecx + 0x98], 0x200000
je 0x461125
cmp eax, edi
je 0x461125
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov dword [esi + 0xd0], edi
cmp dword [ebp - 0x20], edi
jne 0x46112f
cmp dword [ebp - 8], edi
je 0x461165
cmp ebx, edi
jne 0x461169
test byte [ecx + 0x98], 0x20
je 0x461145
test byte [ecx + 0x9c], 8
jne 0x461170
cmp dword [ebp - 0x5c], edi
jne 0x46115a
lea eax, [esi + 0xec]
mov edx, dword [eax]
and edx, 0xfffffffb
or edx, 3
mov dword [eax], edx
cmp dword [ebp - 0x20], edi
je 0x461170
xor ebx, ebx
inc ebx
mov dword [ebp - 0x38], ebx
cmp ebx, edi
je 0x461170
mov dword [ebp - 0x64], 1
cmp dword [ebp - 0x5c], edi
je 0x461243
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 4]
jae 0x461243
cmp dword [ebp + 0xc], edi
jne 0x461193
cmp eax, 0x10
jae 0x461243
test word [esi + 0x14], 0x400
jne 0x461243
cmp dword [ebp + 0x20], edi
jne 0x461243
mov eax, dword [ebp - 0x2c]
mov edx, dword [ecx + 0x10]
cmp eax, edx
mov ebx, eax
mov dword [ebp + 0xc], edx
jae 0x461227
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + eax*4]
mov edx, 0x20100000
mov eax, dword [ecx]
mov eax, dword [eax]
and eax, 0xfff00000
cmp eax, edx
ja 0x4611f8
je 0x46121b
cmp eax, edi
je 0x46121b
cmp eax, 0x10000000
je 0x46121b
cmp eax, 0x10100000
je 0x46121b
cmp eax, 0x10200000
je 0x46121b
cmp eax, 0x10400000
je 0x46121b
cmp eax, 0x20000000
jmp 0x461219
cmp eax, 0x20200000
je 0x46121b
cmp eax, 0x20300000
je 0x46121b
cmp eax, 0x20400000
je 0x46121b
cmp eax, 0x20500000
je 0x46121b
cmp eax, 0x30000000
jne 0x461227
mov eax, dword [esi + 8]
inc ebx
add ecx, 4
cmp ebx, dword [eax + 0x10]
jb 0x4611c2
cmp ebx, dword [ebp + 0xc]
jne 0x461243
mov eax, dword [esi + 0xec]
and eax, 7
cmp eax, 3
je 0x461243
cmp eax, 4
jne 0x462694
mov eax, dword [esi + 0x74]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x18]
shl eax, 2
mov edx, dword [eax + edx]
xor ebx, ebx
cmp dword [ebp - 0x40], edi
mov dword [eax + ecx], edx
mov dword [ebp + 0xc], edi
jbe 0x4612a5
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + ebx*4]
cmp eax, 0xffffffff
je 0x46129a
mov ecx, dword [esi + 0x18]
cmp dword [ecx + ebx*4], eax
je 0x46129a
mov ecx, dword [esi + 8]
push edi
push 0x8000000
push eax
call fcn.00490d38
test eax, eax
jne 0x46129a
cmp ebx, dword [esi + 0x8c]
je 0x46129a
cmp ebx, dword [esi + 0x7c]
je 0x46129a
cmp ebx, dword [esi + 0x38]
je 0x46129a
inc dword [ebp + 0xc]
inc ebx
cmp ebx, dword [ebp - 0x40]
jb 0x46125f
cmp dword [ebp + 0xc], edi
jne 0x4612c4
cmp dword [ebp + 0x20], edi
je 0x461571
push 0x405ed4
push 0xde5
push dword [ebp - 0x1c]
push esi
call fcn.0044f329
add esp, 0x10
cmp dword [ebp + 0xc], edi
mov dword [esi + 0xd4], 1
mov dword [esi + 0xd8], edi
mov dword [esi + 0xd0], edi
jne 0x4612fa
cmp dword [ebp - 0x38], edi
jne 0x4612fa
push 0x405ebc
push 0xddf
push dword [ebp - 0x1c]
push esi
call fcn.0044f329
add esp, 0x10
cmp dword [ebp - 0x30], edi
je 0x461302
inc dword [ebp + 0xc]
mov ebx, dword [ebp + 0xc]
imul ebx, ebx, 0xb
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 [ebp - 0x70], eax
je 0x4626db
push ebx
push eax
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x70]
xor eax, eax
shl edx, 2
mov dword [ebp + eax*4 - 0x9c], ecx
inc eax
add ecx, edx
cmp eax, 0xb
jb 0x461348
mov ebx, dword [ebp + 0xc]
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 0x4626db
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 0x4626db
cmp dword [ebp - 0x40], edi
mov dword [esi + 0x100], ebx
mov ebx, dword [ebp - 0x98]
mov dword [ebp + 0xc], edi
mov dword [ebp - 4], edi
jbe 0x46147f
mov eax, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x94]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x94]
sub eax, ebx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 4]
lea ebx, [eax + ecx*4]
mov eax, dword [ebx]
cmp eax, 0xffffffff
je 0x46146a
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 4]
cmp dword [ecx + edx*4], eax
je 0x46146a
mov ecx, edx
cmp ecx, dword [esi + 0x38]
je 0x46146a
mov ecx, dword [esi + 8]
push edi
push 0x8000000
push eax
call fcn.00490d38
test eax, eax
jne 0x46146a
mov ecx, dword [ebp - 4]
cmp ecx, dword [esi + 0x8c]
je 0x46146a
cmp ecx, dword [esi + 0x7c]
je 0x46146a
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x3c]
add eax, edx
mov edx, dword [ebp - 0x60]
mov dword [eax + edx], ecx
mov edx, dword [ebx]
mov ecx, dword [ebp - 0xc]
mov dword [ecx], edx
mov edx, dword [ebx]
mov dword [eax], edx
mov eax, dword [esi + 0x18]
mov edx, dword [ebp - 4]
cmp dword [eax + edx*4], 0xffffffff
je 0x46145c
mov eax, dword [esi + 8]
mov edx, dword [ebx]
mov ebx, dword [eax + 0x1c]
mov edx, dword [ebx + edx*4]
mov eax, dword [eax + 0x2a50]
cmp eax, dword [edx + 8]
jne 0x461461
mov eax, dword [esi + 0x48]
mov dword [ecx], eax
inc dword [ebp + 0xc]
add ecx, 4
mov dword [ebp - 0xc], ecx
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x40]
jb 0x4613dc
mov ebx, dword [ebp - 0x98]
cmp dword [ebp - 0x30], edi
je 0x4615b5
mov ecx, esi
call fcn.0044d968
cmp dword [ebp - 0x5c], edi
jne 0x4614d0
cmp dword [ebp - 0x4c], edi
jne 0x4614d0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [esi + 0x24]
test byte [ecx + eax*4], 0x80
jne 0x4614d0
push 0x405e68
push 0xdee
push dword [ebp - 0x1c]
push esi
call fcn.0044f329
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + eax*4]
add esp, 0x10
or dword [eax], 0x80
mov edx, dword [ebp + 0xc]
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 0x9c]
shl edx, 2
mov dword [edx + ecx], eax
mov ecx, esi
call fcn.0044dee9
mov dword [edx + ebx], eax
call fcn.0044dee9
fld qword [0x4054e8]
mov ecx, dword [ebp - 0x94]
push edi
push edi
push edi
mov ebx, dword [ebp - 0x50]
push edi
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push edi
push 0x7fffffff
push 0xffffffffffffffff
push 0x80000000
mov dword [edx + ecx], eax
mov ecx, dword [esi + 0x7c]
push edi
sub esp, 0x10
fstp qword [esp + 8]
shl ecx, 6
fld qword [0x4054e0]
add ecx, ebx
fstp qword [esp]
call fcn.00493945
mov eax, dword [esi + 0x7c]
fldz
mov ecx, dword [ebp - 0x34]
shl eax, 6
fstp qword [eax + ebx]
mov eax, dword [esi + 0x7c]
fld1
shl eax, 6
fstp qword [eax + ebx + 8]
mov eax, dword [esi + 8]
test dword [eax + 0x98], 0x200000
mov eax, dword [esi + 0x7c]
lea eax, [ecx + eax*8]
mov ecx, dword [eax + 4]
mov dword [eax + 4], ecx
jne 0x4615ac
or dword [eax], 0x17
jmp 0x4615b2
push dword [ebp + 0x1c]
lea eax, [esi + 0xec]
mov ecx, dword [eax]
push dword [ebp - 0x2c]
and ecx, 0xfffffffd
push dword [ebp - 0x14]
or ecx, 5
mov dword [eax], ecx
mov ecx, esi
call fcn.0044f1e7
push 0x405e28
push 0xde5
push dword [ebp - 0x1c]
push esi
call fcn.0044f329
add esp, 0x10
jmp 0x462694
or dword [eax], 0x80000000
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp dword [esi + 0x100], eax
jne 0x462694
push dword [ebp + 0x1c]
mov ecx, esi
push dword [ebp - 0x2c]
push dword [ebp - 0x14]
call fcn.0044f1e7
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x134], eax
mov eax, dword [ebp - 0xb8]
mov ecx, esi
mov dword [esi + 0x130], edi
mov dword [esi + 0xe8], eax
call fcn.0044decd
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov ecx, esi
call fcn.0044decd
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov ecx, esi
call fcn.0044dee9
cmp dword [ebp - 0x44], edi
mov ecx, dword [esi + 0x78]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp + 0x18]
mov dword [esi + 0x114], eax
je 0x46164b
push edi
push 1
push edi
push dword [ebp + 0x14]
mov ecx, esi
call fcn.00475dd2
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [esi + 0x100], edi
mov dword [ebp - 0xc], edi
jbe 0x461761
mov ebx, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x98]
sub ecx, ebx
sub eax, ebx
mov dword [ebp + 0xc], ecx
mov dword [ebp - 4], eax
jmp 0x46167e
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + ebx]
cmp eax, dword [esi + 0x48]
jne 0x4616dc
cmp dword [ecx + ebx], 0xffffffff
je 0x4616dc
mov eax, dword [ebx]
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + eax*4]
cmp eax, 0xffffffff
je 0x4616ac
mov ecx, dword [esi + 8]
push edi
push 0x80000000
push eax
call fcn.00490d38
test eax, eax
je 0x4616dc
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0x6c]
mov edx, dword [ecx + 0x1c]
push dword [edx + eax*4]
call fcn.004912e4
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
mov dword [ecx + ebx], eax
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [edx + ebx]
push dword [ecx + edx*4]
mov ecx, dword [ecx + eax*4]
call fcn.004940b1
jmp 0x46174c
mov eax, dword [ebp - 4]
mov edx, dword [eax + ebx]
mov ecx, esi
call fcn.0044dee9
cmp edx, eax
jne 0x461739
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 0x1c]
push dword [eax + edx*4]
call fcn.004912e4
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
mov dword [ecx + ebx], eax
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [edx + ebx]
push dword [ecx + edx*4]
mov ecx, dword [ecx + eax*4]
call fcn.004940b1
mov ecx, dword [esi + 8]
mov eax, dword [ebp - 4]
mov edx, dword [eax + ebx]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ebx]
mov dword [ecx + 0x28], edx
mov ecx, dword [ebx]
mov edx, dword [esi + 0x18]
mov eax, dword [eax + ebx]
mov dword [edx + ecx*4], eax
jmp 0x46174c
mov eax, dword [ebx]
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + eax*4]
cmp eax, 0xffffffff
je 0x46174c
mov ecx, dword [ebp - 4]
mov dword [ecx + ebx], eax
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add ebx, 4
cmp eax, dword [esi + 0x100]
jb 0x461678
mov ecx, esi
call fcn.0044decd
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
cmp dword [esi + 0x110], edi
je 0x46178b
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 0x58]
mov dword [ecx + eax*4], edx
mov eax, dword [esi + 8]
add eax, 0x98
mov ecx, dword [eax]
shl ecx, 0x1a
sar ecx, 0x1f
mov dword [esi + 0x108], ecx
mov eax, dword [eax]
shl eax, 0x19
sar eax, 0x1f
mov ecx, esi
mov dword [esi + 0x10c], eax
call fcn.0044d873
fild dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
test eax, eax
mov ecx, dword [esi + 8]
push edi
push edi
jge 0x4617cb
fadd qword [0x4057a8]
push ecx
push ecx
fstp qword [esp]
push edi
push edi
push dword [ecx + 0x2a54]
call fcn.00491133
or dword [ebp - 0x6c], 0xffffffff
cmp dword [ebp - 8], edi
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0xa0]
jne 0x4617f8
lea eax, [ebp - 0xf0]
push edi
push edi
push edi
push edi
push edi
push eax
lea eax, [ebp - 0x6c]
push eax
push 0x11000001
push dword [ebp - 0x1c]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x2a8c]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ecx + edx*4]
push edi
push edi
push edi
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x6c]
push edi
push edi
push dword [ebp - 0x98]
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x100]
push dword [ebp - 0x94]
and eax, 0xfffff
or eax, 0x11100000
push eax
push dword [ebp - 0x1c]
mov ecx, esi
mov dword [esi + 0x94], 1
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
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]
or dword [ebp + 0xc], 0xffffffff
push edi
mov dword [edx + ecx*4], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x18]
push edi
push dword [eax + 0x2aa8]
mov eax, dword [esi + 0x38]
push edi
push edi
lea eax, [ecx + eax*4]
push eax
lea eax, [ebp + 0xc]
push eax
push 0x11100001
push dword [ebp - 0x1c]
mov ecx, esi
call fcn.0044f80e
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov eax, dword [esi + 0x38]
mov edx, dword [ebp + 0xc]
mov ecx, dword [esi + 0x18]
mov dword [ecx + eax*4], edx
mov eax, dword [esi + 8]
cmp dword [eax + 0xc], edi
mov dword [ebp + 0xc], edi
jbe 0x46191d
mov ecx, dword [eax + 0x2a80]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax]
mov edx, dword [ebp - 0x3c]
cmp dword [ecx + 8], edx
jne 0x461915
mov ecx, dword [ecx + 0x18]
cmp ecx, dword [ebp + 0xc]
jb 0x461915
inc ecx
mov dword [ebp + 0xc], ecx
add eax, 4
dec dword [ebp - 0x14]
jne 0x4618ff
cmp dword [esi + 0x100], edi
mov dword [ebp - 0x48], edi
jbe 0x461a5f
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x94]
sub eax, ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0xc]
mov ecx, dword [eax + ecx]
mov eax, dword [eax]
mov edx, dword [esi + 8]
mov edx, dword [edx + 0x1c]
mov ecx, dword [edx + ecx*4]
mov edx, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ecx]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ecx + 4]
shl edx, 6
add edx, dword [ebp - 0x50]
and eax, 0x80000000
and ecx, 0x1ff
or eax, ecx
mov dword [ebp - 0xc], edx
je 0x461a49
cmp dword [ebp - 0x64], edi
jne 0x4619e9
mov eax, dword [ebp - 0x14]
cmp eax, dword [esi + 0x80]
je 0x4619e9
mov eax, dword [edx + 0x30]
cmp eax, dword [edx + 0x38]
jne 0x46199d
mov eax, dword [edx + 0x34]
cmp eax, dword [edx + 0x3c]
je 0x4619e9
push edi
fld qword [0x4054e8]
push edi
push edi
mov ecx, dword [ebp - 0xc]
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 eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
lea eax, [ecx + eax*8]
mov ecx, dword [eax + 4]
and dword [eax], 0xfffff582
mov dword [eax + 4], ecx
push dword [ebp - 0xc]
mov ecx, dword [ebp - 0x44]
call fcn.00493d04
test eax, eax
jl 0x4626e0
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x30]
cmp ecx, dword [eax + 0x38]
jne 0x461a1a
mov ecx, dword [eax + 0x34]
cmp ecx, dword [eax + 0x3c]
jne 0x461a1a
mov eax, dword [ebp - 0x44]
or dword [eax], 0x7800
jmp 0x461a29
mov eax, dword [ebp - 0x44]
and dword [eax], 0xfffff7ff
or dword [eax], 0x7000
mov ecx, dword [eax + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x14], edx
mov edx, dword [ecx + edx*8]
or dword [eax], edx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ecx + edx*8 + 4]
or dword [eax + 4], ecx
inc dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
add dword [ebp - 0x2c], 4
cmp eax, dword [esi + 0x100]
jb 0x461940
cmp dword [esi + 0x100], edi
mov dword [ebp + 0xc], edi
jbe 0x461b76
mov eax, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x98]
mov ebx, dword [ebp - 0x94]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x98]
sub eax, ebx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 8]
push edi
add eax, ebx
push 0x4000000
push dword [eax]
call fcn.00490d38
test eax, eax
je 0x461ab5
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x2ac4]
jmp 0x461ae2
mov eax, dword [ebp - 8]
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 0x461adc
mov eax, dword [eax + 0x2ab4]
jmp 0x461ae2
mov eax, dword [eax + 0x2a80]
mov ecx, dword [ebx]
mov ecx, dword [edx + ecx*4]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 8]
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 - 8]
mov edx, dword [ebp - 0x14]
mov ecx, dword [esi + 0x104]
add eax, ebx
mov eax, dword [eax + edx]
mov edx, dword [ebp + 0xc]
mov dword [ecx + edx*4], eax
mov eax, dword [esi + 0x104]
mov ecx, edx
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebx]
mov dword [ecx + eax*4], edx
mov eax, dword [esi + 0xfc]
mov ecx, dword [ebx]
mov edx, dword [ebp + 0xc]
mov dword [eax + edx*4], ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebx]
mov ecx, dword [eax + ecx*4]
cmp dword [ecx + 0x28], 0xffffffff
jne 0x461b61
mov edx, dword [ebx]
mov eax, dword [eax + edx*4]
mov ecx, dword [esi + 0x104]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ecx + edx*4]
mov dword [eax + 0x28], ecx
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
add ebx, 4
cmp eax, dword [esi + 0x100]
jb 0x461a8e
cmp dword [ebp + 0x10], edi
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x80]
mov edx, dword [ebp - 0x58]
mov dword [ecx + eax*4], edx
mov ecx, esi
je 0x461ba9
or dword [ebp - 0x24], 0xffffffff
push edi
push edi
lea eax, [ebp - 0x24]
push eax
push dword [ebp + 0x10]
call fcn.004787a6
mov ebx, eax
cmp ebx, edi
jge 0x461bb1
jmp 0x4626e0
call fcn.0044dee9
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x100], edi
mov dword [ebp + 0xc], edi
jbe 0x461be6
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x9c]
sub ecx, eax
mov edx, dword [eax + ecx]
mov ebx, dword [esi + 0x18]
mov edx, dword [ebx + edx*4]
inc dword [ebp + 0xc]
mov dword [eax], edx
mov edx, dword [ebp + 0xc]
add eax, 4
cmp edx, dword [esi + 0x100]
jb 0x461bca
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x10]
or dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x10]
cmp eax, edi
jne 0x461c03
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x14]
push ecx
push eax
mov ecx, esi
call fcn.0045592b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [esi + 0x108], edi
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], ecx
jne 0x461c65
cmp dword [ebp - 0x30], edi
je 0x461c5d
mov ecx, dword [ebp + 0x10]
cmp ecx, edi
jne 0x461c3a
mov ecx, dword [ebp - 0x18]
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x7c]
lea eax, [edx + eax*4]
lea edx, [ebp - 0x3c]
push edx
push eax
push eax
push ecx
mov ecx, esi
call fcn.004557ff
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
jmp 0x461c95
mov eax, dword [esi + 0x7c]
mov edx, dword [ebp - 0x3c]
jmp 0x461c8f
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x78]
lea eax, [edx + eax*4]
mov edx, dword [eax]
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
cmp eax, edi
mov dword [ebp - 0xc], edx
jne 0x461c7f
mov eax, dword [ebp - 0x18]
push eax
mov ecx, esi
call fcn.0045e726
mov edx, dword [ebp - 0xc]
mov ebx, eax
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x18]
mov dword [ecx + eax*4], edx
cmp ebx, edi
jl 0x4626e0
mov eax, dword [ebp - 0x6c]
mov ecx, dword [esi + 0x100]
mov edx, dword [ebp - 0x70]
mov dword [esi + 0x90], eax
xor eax, eax
mov dword [esi + 0x94], 1
mov dword [esi + 0xe0], edi
shl ecx, 2
mov dword [ebp + eax*4 - 0x9c], edx
inc eax
add edx, ecx
cmp eax, 4
jb 0x461cc4
mov eax, dword [ebp + 0x10]
or dword [ebp + 0xc], 0xffffffff
cmp eax, edi
jne 0x461ce1
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x18]
push edi
push edi
push edi
push edi
push edi
lea ecx, [edx + ecx*4]
push ecx
lea ecx, [ebp + 0xc]
push ecx
push 0x11300001
push eax
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x2a88]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ecx + edx*4]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0xc]
mov ecx, esi
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], 1
call fcn.0044decd
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], eax
mov ecx, esi
call fcn.0044decd
cmp dword [ebp + 0x14], edi
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x8c]
mov dword [edx + ecx*4], eax
mov eax, dword [esi + 0x7c]
mov edx, dword [esi + 0x18]
lea ebx, [edx + eax*4]
mov eax, dword [ebx]
mov dword [ebp - 0x60], eax
jne 0x461d75
cmp dword [ebp + 0x18], edi
je 0x461df6
cmp dword [esi + 0x108], edi
mov eax, dword [ebp + 0x18]
mov dword [esi + 0x114], eax
mov ecx, esi
jne 0x461de0
call fcn.0044dee9
mov dword [ebp - 0x104], eax
call fcn.0044decd
mov dword [ebp - 0x100], eax
mov eax, dword [esi + 0x80]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xfc], eax
call fcn.0044decd
mov dword [ebp - 0xf8], eax
call fcn.0044dee9
push edi
push edi
push edi
push edi
push edi
push edi
mov dword [ebx], eax
lea eax, [ebp - 0x104]
push eax
push 1
push edi
push dword [ebp + 0x14]
push dword [ebp - 0x60]
push dword [ebp + 0x14]
push edi
call fcn.004588a1
jmp 0x461dec
push edi
push 1
push edi
push dword [ebp + 0x14]
call fcn.00475dd2
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [ebp - 0x30], edi
je 0x461e26
mov ecx, dword [ebp + 0x10]
cmp ecx, edi
jne 0x461e05
mov ecx, dword [ebp - 0x18]
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x7c]
lea eax, [edx + eax*4]
lea edx, [ebp - 0x60]
push edx
push eax
push eax
push ecx
mov ecx, esi
call fcn.004557ff
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [esi + 0xbc], edi
jne 0x461f53
cmp dword [ebp - 0x30], edi
mov dword [esi + 0xbc], 1
je 0x461edf
or dword [ebp + 0x14], 0xffffffff
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 8]
test dword [ecx + 0x98], 0x200000
mov eax, dword [esi + 0x80]
mov eax, dword [edx + eax*4]
mov edx, dword [ecx + 0x1c]
mov eax, dword [edx + eax*4]
jne 0x461e9f
mov ecx, dword [eax + 4]
fld1
or dword [eax], 0x17
sub esp, 0x10
fstp qword [esp + 8]
mov dword [eax + 4], ecx
fldz
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x80]
fstp qword [esp]
push dword [ecx + eax*4]
mov ecx, dword [esi + 8]
call fcn.004acb66
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x80]
lea eax, [ecx + eax*4]
push eax
lea eax, [ebp + 0x14]
push eax
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0045592b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x7c]
lea eax, [ecx + eax*4]
lea ecx, [ebp + 0x14]
push ecx
push eax
push eax
push dword [ebp - 0x18]
mov ecx, esi
call fcn.004557ff
jmp 0x461f49
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x78]
push dword [ebp - 0x18]
lea ecx, [eax + ecx*4]
mov edx, dword [ecx]
mov dword [ebp + 0x14], edx
mov edx, dword [esi + 0x88]
mov edx, dword [eax + edx*4]
mov dword [ebp + 0x18], edx
mov edx, dword [esi + 0x80]
mov eax, dword [eax + edx*4]
mov dword [ecx], eax
mov ecx, esi
call fcn.0045e726
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp + 0x14]
mov dword [ecx + eax*4], edx
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x80]
lea ecx, [eax + ecx*4]
push ecx
lea ecx, [ebp + 0x18]
push ecx
mov ecx, dword [esi + 0x88]
lea eax, [eax + ecx*4]
push eax
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0045586b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [esi + 0x110], edi
jne 0x461f8c
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + eax*4]
cmp eax, 0xffffffff
je 0x461f8c
cmp eax, dword [ebp - 0x58]
je 0x461f8c
lea ecx, [ebp - 0x28]
push ecx
push eax
mov ecx, esi
call fcn.0044f182
test eax, eax
jl 0x461f86
cmp dword [ebp - 0x28], edi
je 0x461f8c
mov dword [ebp - 0xc0], edi
mov eax, dword [ebp - 0x88]
xor ecx, ecx
cmp dword [esi + 0x100], edi
jbe 0x461fed
mov edx, dword [ebp - 0x8c]
sub edx, eax
mov dword [ebp + 0x14], edx
mov edx, dword [ebp - 0x84]
sub edx, eax
mov dword [ebp + 0x18], edx
mov edx, dword [esi + 0xfc]
mov edx, dword [edx + ecx*4]
mov ebx, dword [ebp + 0x14]
mov dword [ebx + eax], edx
mov edx, dword [esi + 0x104]
mov edx, dword [edx + ecx*4]
mov ebx, dword [esi + 0x18]
mov edx, dword [ebx + edx*4]
mov dword [eax], edx
mov ebx, dword [esi + 0x18]
mov edx, dword [esi + 0x38]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp + 0x18]
mov dword [ebx + eax], edx
inc ecx
add eax, 4
cmp ecx, dword [esi + 0x100]
jb 0x461fb2
push dword [esi + 0x100]
mov ecx, esi
push dword [ebp - 0x80]
call fcn.0044dc99
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov eax, dword [ebp + 0x10]
cmp eax, edi
jne 0x462011
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + 0x100]
push edi
push edi
push edi
push edi
push edi
push dword [ebp - 0x88]
and ecx, 0xfffff
push dword [ebp - 0x80]
or ecx, 0x10000000
push ecx
push eax
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [esi + 0x100], edi
mov dword [ebp + 0x18], edi
jbe 0x4620eb
mov ebx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x88]
sub eax, ebx
mov dword [ebp + 0x14], eax
jmp 0x462066
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 8]
push edi
push 0x4000000
push dword [eax + ebx]
call fcn.00490d38
test eax, eax
je 0x462089
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x2ac4]
jmp 0x4620b5
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 8]
push edi
push 0x200000
push dword [eax + ebx]
call fcn.00490d38
test eax, eax
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x1c]
je 0x4620af
mov eax, dword [eax + 0x2ab4]
jmp 0x4620b5
mov eax, dword [eax + 0x2a80]
mov ecx, dword [ebx]
mov ecx, dword [edx + ecx*4]
mov dword [ecx + 8], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + ebx]
push dword [eax + ecx*4]
mov ecx, dword [ebx]
mov ecx, dword [eax + ecx*4]
call fcn.004940b1
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
add ebx, 4
cmp eax, dword [esi + 0x100]
jb 0x462063
mov eax, dword [ebp - 0x6c]
mov dword [esi + 0x90], eax
mov eax, dword [ebp + 0x10]
cmp eax, edi
mov dword [esi + 0x94], 1
jne 0x462108
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + 0x100]
push edi
push edi
push edi
push edi
push edi
push dword [ebp - 0x80]
and ecx, 0xfffff
push dword [ebp - 0x78]
or ecx, 0x11400000
push ecx
push eax
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [esi + 0x100], edi
mov dword [ebp + 0x18], edi
jbe 0x4621ff
mov eax, dword [ebp - 0x80]
sub eax, dword [ebp - 0x88]
mov ebx, dword [ebp - 0x78]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x88]
sub eax, ebx
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 8]
push edi
add eax, ebx
push 2
push dword [eax]
call fcn.00490d38
test eax, eax
jne 0x462185
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x2a6c]
jmp 0x4621aa
mov eax, dword [ebp + 0x14]
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]
je 0x4621b4
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x2aac]
mov ecx, dword [ebx]
mov ecx, dword [edx + ecx*4]
mov dword [ecx + 8], eax
jmp 0x4621cc
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebx]
add ecx, ebx
mov ecx, dword [ecx]
mov ecx, dword [eax + ecx*4]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi + 8]
mov edx, dword [ebp - 0x58]
mov eax, dword [eax + 0x1c]
add ecx, ebx
mov ecx, dword [ecx + edx]
push dword [eax + ecx*4]
mov ecx, dword [ebx]
mov ecx, dword [eax + ecx*4]
call fcn.004940b1
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
add ebx, 4
cmp eax, dword [esi + 0x100]
jb 0x462161
push dword [esi + 0x100]
mov ecx, esi
push dword [ebp - 0x74]
call fcn.0044dc99
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov eax, dword [ebp + 0x10]
cmp eax, edi
jne 0x462223
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + 0x100]
push edi
push edi
push edi
push edi
push edi
push dword [ebp - 0x78]
and ecx, 0xfffff
push dword [ebp - 0x74]
or ecx, 0x10000000
push ecx
push eax
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
cmp dword [esi + 0x100], edi
mov dword [ebp + 0x14], edi
jbe 0x4622bd
mov eax, dword [ebp - 0x80]
sub eax, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x74]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x78]
sub eax, ebx
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp - 0x58]
lea ecx, [eax + ebx]
mov ecx, dword [ecx + edx]
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 8]
mov edx, dword [ebx]
mov eax, dword [eax + edx*4]
mov dword [eax + 8], ecx
mov ecx, dword [ebp + 0x18]
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
inc dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
add ebx, 4
cmp eax, dword [esi + 0x100]
jb 0x462272
mov eax, dword [esi + 0x100]
or dword [ebp + 0x14], 0xffffffff
cmp eax, edi
je 0x46231c
mov ecx, dword [ebp + 0x10]
cmp ecx, edi
jne 0x4622d5
mov ecx, dword [ebp - 0x18]
mov edx, dword [esi + 8]
push edi
push edi
push dword [edx + 0x2aa8]
lea edx, [ebp + 0x14]
push dword [ebp - 0x84]
and eax, 0xfffff
push dword [ebp - 0x74]
or eax, 0x50500000
push dword [ebp - 0x8c]
push edx
push eax
push ecx
mov ecx, esi
call fcn.0044f80e
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp + 0x14]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0xb4]
mov dword [esi + 0x90], eax
mov eax, dword [ebp - 0xa8]
mov dword [esi + 0x94], eax
xor eax, eax
cmp dword [esi + 0x100], edi
jbe 0x462359
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x38]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ebp - 0x84]
mov dword [edx + eax*4], ecx
inc eax
cmp eax, dword [esi + 0x100]
jb 0x46233e
mov eax, dword [ebp + 0x10]
cmp eax, edi
jne 0x462363
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + 0x100]
push edi
push edi
push edi
push edi
push dword [ebp - 0x84]
and ecx, 0xfffff
push dword [ebp - 0x8c]
or ecx, 0x24200000
push dword [ebp - 0x94]
push ecx
push eax
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
xor eax, eax
cmp dword [ebp - 0x40], edi
jbe 0x4623b7
mov edx, dword [ebp + 0x1c]
mov edx, dword [edx + eax*4]
mov ecx, dword [esi + 0x18]
mov dword [ecx + eax*4], edx
inc eax
cmp eax, dword [ebp - 0x40]
jb 0x4623a5
cmp dword [esi + 0x100], edi
mov dword [ebp + 0x14], edi
jbe 0x462479
mov ebx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x98]
sub eax, ebx
mov dword [ebp - 8], eax
jmp 0x4623dc
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 8]
push edi
push 0x4000000
push dword [eax + ebx]
call fcn.00490d38
test eax, eax
je 0x462405
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x1c]
mov ecx, dword [ebx]
mov ecx, dword [edx + ecx*4]
mov eax, dword [eax + 0x2abc]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 8]
push edi
push 0x200000
push dword [eax + ebx]
call fcn.00490d38
test eax, eax
je 0x462431
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x1c]
mov ecx, dword [ebx]
mov ecx, dword [edx + ecx*4]
mov eax, dword [eax + 0x2aac]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x104]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebx]
mov dword [ecx + eax*4], edx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xfc]
mov edx, dword [ebp + 0x14]
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
inc dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
add ebx, 4
cmp eax, dword [esi + 0x100]
jb 0x4623d9
cmp dword [esi + 0x100], edi
mov dword [ebp + 0x18], edi
jbe 0x46259d
mov ebx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x94]
sub eax, ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [ebx + eax]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx]
mov ecx, dword [ebx]
mov dword [ebp + 0x14], edx
mov edx, dword [edx + 4]
shl ecx, 6
add ecx, dword [ebp - 0x68]
and eax, 0x80000000
and edx, 0x1ff
or eax, edx
mov dword [ebp - 0x14], ecx
je 0x462585
cmp dword [ebp - 0x38], edi
jne 0x462526
mov eax, dword [ebx]
cmp eax, dword [esi + 0x80]
je 0x462526
push edi
fld qword [0x4054e8]
push edi
push edi
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 eax, dword [ebx]
mov ecx, dword [ebp - 0x54]
lea eax, [ecx + eax*8]
mov ecx, dword [eax + 4]
and dword [eax], 0xfffff582
mov dword [eax + 4], ecx
push dword [ebp - 0x14]
mov ecx, dword [ebp + 0x14]
call fcn.00493d04
mov ebx, eax
cmp ebx, edi
jl 0x4626e0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x30]
cmp ecx, dword [eax + 0x38]
jne 0x462559
mov ecx, dword [eax + 0x34]
cmp ecx, dword [eax + 0x3c]
jne 0x462559
mov eax, dword [ebp + 0x14]
or dword [eax], 0x7800
jmp 0x462568
mov eax, dword [ebp + 0x14]
and dword [eax], 0xfffff7ff
or dword [eax], 0x7000
mov ecx, dword [eax + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x54]
mov ebx, dword [ecx + edx*8]
or dword [eax], ebx
mov ecx, dword [ecx + edx*8 + 4]
or dword [eax + 4], ecx
mov ebx, dword [ebp + 0x1c]
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
add ebx, 4
cmp eax, dword [esi + 0x100]
mov dword [ebp + 0x1c], ebx
jb 0x46249c
cmp dword [ebp - 0x10], edi
je 0x4625e1
cmp dword [ebp - 0x20], edi
je 0x4625e1
mov eax, dword [ebp - 0xc8]
cmp eax, 0xffffffff
je 0x4625e1
mov ecx, dword [esi + 0x18]
lea eax, [ecx + eax*4]
cmp dword [eax], 0xffffffff
je 0x4625e1
push edi
push edi
push edi
push edi
push edi
lea ecx, [ebp - 0xa0]
push ecx
push eax
push 0x10000001
push dword [ebp + 0x10]
mov ecx, esi
call fcn.0044fa2b
test eax, eax
jl 0x462694
mov ebx, dword [ebp - 0x2c]
jmp 0x4625f3
push ebx
mov ecx, esi
call fcn.00452f36
test eax, eax
jne 0x4625fd
inc ebx
mov eax, dword [esi + 8]
cmp ebx, dword [eax + 0x10]
jb 0x4625e6
jmp 0x46263a
cmp dword [ebp + 0x20], edi
je 0x462633
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x20]
mov eax, dword [eax + ebx*4]
push 0x405de8
push 0xdc7
push dword [eax + 0x40]
push esi
call fcn.0044f2af
lea eax, [esi + 0xec]
mov ecx, dword [eax]
and ecx, 0xfffffffc
add esp, 0x10
or ecx, 4
mov dword [eax], ecx
jmp 0x462694
mov ecx, esi
call fcn.0044d994
cmp dword [esi + 0xd0], edi
je 0x462668
mov eax, dword [esi + 0xd8]
mov dword [ebp - 0xb0], eax
lea eax, [esi + 0xec]
mov ecx, dword [eax]
and ecx, 0xfffffffc
or ecx, 4
mov dword [ebp - 0xac], 1
mov dword [eax], ecx
cmp dword [ebp - 0x5c], edi
je 0x462687
mov eax, dword [esi + 0xec]
and eax, 7
cmp al, 2
jne 0x462687
test word [esi + 0x14], 0x400
jne 0x462687
cmp dword [ebp + 0x20], edi
je 0x462694
mov eax, dword [esi + 0xec]
and eax, 7
cmp al, 1
jne 0x46269b
mov ebx, 0x80004005
jmp 0x4626e0
cmp dword [ebp - 0xc4], edi
je 0x4626d7
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x38]
mov ecx, dword [esi + 0x24]
test byte [ecx + eax*4], 0x80
jne 0x4626d7
push 0x405d98
push 0xded
push dword [ebp - 0x1c]
push esi
call fcn.0044f329
mov eax, dword [ebx + 0x38]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + eax*4]
add esp, 0x10
or dword [eax], 0x80
xor ebx, ebx
jmp 0x4626e0
mov ebx, 0x8007000e
push dword [esi + 0xfc]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [esi + 0x104]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp - 0xcc]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 0xdc]
push dword [ebp - 0xbc]
mov dword [esi + 0xfc], eax
mov eax, dword [ebp - 0xd4]
mov dword [esi + 0x100], eax
mov eax, dword [ebp - 0xf4]
mov dword [esi + 0x104], eax
mov eax, dword [esi + 0x38]
mov dword [ecx + eax*4], edx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x34]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x54]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x50]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x68]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x70]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp - 0xb4]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 0xec]
mov dword [esi + 0x90], eax
mov eax, dword [ebp - 0xa8]
mov dword [esi + 0x94], 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 - 0xe4]
mov dword [ecx + eax*4], edx
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 0xd0]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0xd8]
add esp, 0x20
dec dword [esi + 0xac]
cmp dword [ebp - 0xa4], edi
mov dword [esi + 0x130], eax
mov eax, dword [ebp - 0xe0]
mov dword [esi + 0x134], eax
je 0x4627d6
dec dword [esi + 0xb0]
mov eax, dword [ebp - 0x4c]
mov dword [esi + 0xcc], eax
mov eax, dword [ebp - 0xac]
mov dword [esi + 0xd0], eax
mov eax, dword [ebp - 0xe8]
mov dword [esi + 0xd4], eax
mov eax, dword [ebp - 0xb0]
mov dword [esi + 0xd8], eax
mov eax, dword [ebp - 0xb8]
mov dword [esi + 0xe8], eax
mov eax, dword [ebp - 0xc0]
mov dword [esi + 0xbc], eax
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret 0x1c