Function at 0x44fa2b
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc0
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 0x14]
xor eax, eax
mov dword [ebp - 4], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x80], eax
mov eax, ecx
and eax, 0xfff00000
cmp eax, 0x20500000
push edi
jne 0x44facc
mov eax, dword [ebp + 0x1c]
and eax, 4
xor edx, edx
or eax, edx
je 0x44facc
mov edx, ecx
and edx, 0xfffff
mov dword [ebp - 0x2c], 0
jbe 0x44fab6
mov edi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x18]
sub ebx, edi
mov dword [ebp - 0xc], ebx
jmp 0x44fa90
mov ebx, dword [ebp - 0xc]
mov eax, dword [edi]
cmp eax, dword [ebx + edi]
jne 0x44fab6
mov ebx, dword [esi + 8]
mov ebx, dword [ebx + 0x1c]
mov eax, dword [ebx + eax*4]
mov eax, dword [eax]
and eax, 1
xor ebx, ebx
or eax, ebx
je 0x44fab6
inc dword [ebp - 0x2c]
add edi, 4
cmp dword [ebp - 0x2c], edx
jb 0x44fa8d
cmp dword [ebp - 0x2c], edx
jne 0x44facc
and edx, 0xfffff
or edx, 0x10000000
mov ecx, edx
mov dword [ebp + 0xc], ecx
cmp ecx, 0x50000001
jne 0x44fb05
push 0
push 0
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x20500001
push dword [ebp + 8]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
jmp 0x451ea2
cmp ecx, 0x50000002
jne 0x44fbad
mov eax, dword [esi + 8]
test byte [eax + 0x94], 0x80
jne 0x44fbad
or eax, 0xffffffff
lea edi, [ebp - 0x44]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp + 0x1c]
xor eax, eax
push eax
push eax
push eax
and edi, 0x8180
push edi
push dword [ebp + 0x18]
lea eax, [ebp - 0x44]
push dword [ebp + 0x14]
mov ecx, esi
push eax
push 0x20500001
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push 0
push 0
xor eax, eax
push eax
mov eax, dword [ebp + 0x18]
push edi
add eax, 4
push eax
mov eax, dword [ebp + 0x14]
add eax, 4
push eax
lea eax, [ebp - 0x40]
push eax
push 0x20500001
push dword [ebp + 8]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push 0
push 0
push dword [ebp + 0x20]
lea eax, [ebp - 0x40]
push dword [ebp + 0x1c]
push eax
lea eax, [ebp - 0x44]
push eax
push dword [ebp + 0x10]
push 0x20400001
jmp 0x44faec
mov ebx, dword [esi + 8]
test word [ebx + 0x94], 0x200
je 0x44fd86
mov eax, ecx
and eax, 0xfff00000
cmp eax, 0x20000000
mov dword [ebp - 0x2c], eax
je 0x44fbe9
cmp eax, 0x20100000
je 0x44fbe9
cmp eax, 0x20200000
je 0x44fbe9
cmp eax, 0x20300000
jne 0x44fd86
and ecx, 0xfffff
mov ebx, ecx
mov edi, ebx
shl edi, 2
xor ecx, ecx
push 4
pop edx
mov eax, edi
mul edx
seto cl
mov dword [ebp + 0xc], ebx
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov ecx, eax
test ecx, ecx
mov dword [ebp + 0x28], ecx
je 0x450353
xor eax, eax
mov dword [ebp + eax*4 - 0x4c], ecx
inc eax
add ecx, edi
cmp eax, 4
jb 0x44fc1f
test ebx, ebx
jbe 0x44fc9b
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x40]
sub edx, eax
sub edi, eax
sub ecx, eax
mov dword [ebp + 0x24], ebx
mov ebx, dword [ebp - 0x2c]
cmp ebx, 0x20000000
je 0x44fc85
cmp ebx, 0x20100000
je 0x44fc7b
cmp ebx, 0x20200000
je 0x44fc71
cmp ebx, 0x20300000
jne 0x44fc90
mov ebx, dword [esi + 0x68]
mov dword [eax], ebx
mov ebx, dword [esi + 0x6c]
jmp 0x44fc8d
mov ebx, dword [esi + 0x6c]
mov dword [eax], ebx
mov ebx, dword [esi + 0x68]
jmp 0x44fc8d
mov ebx, dword [edi + eax]
mov dword [eax], ebx
mov ebx, dword [edx + eax]
jmp 0x44fc8d
mov ebx, dword [edx + eax]
mov dword [eax], ebx
mov ebx, dword [edi + eax]
mov dword [ecx + eax], ebx
add eax, 4
dec dword [ebp + 0x24]
jne 0x44fc44
mov ebx, dword [ebp + 0xc]
push ebx
push dword [ebp - 0x4c]
mov ecx, esi
call fcn.0044dc99
mov edi, eax
test edi, edi
jl 0x44fd76
push ebx
push dword [ebp - 0x48]
mov ecx, esi
call fcn.0044dc99
mov edi, eax
test edi, edi
jl 0x44fd76
mov edi, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0xc]
xor eax, eax
push eax
push eax
push eax
and edi, 0x8180
push edi
push eax
push dword [ebp + 0x18]
and ebx, 0xfffff
push dword [ebp - 0x4c]
mov eax, ebx
or eax, 0x10100000
push eax
push dword [ebp + 8]
mov ecx, esi
call fcn.0044fa2b
test eax, eax
mov dword [ebp + 0x18], eax
jl 0x44fd65
push 0
push 0
xor eax, eax
push eax
push edi
push dword [ebp - 0x4c]
mov eax, ebx
push dword [ebp + 0x14]
or eax, 0x20400000
push dword [ebp - 0x48]
mov ecx, esi
push eax
push dword [ebp + 8]
call fcn.0044fa2b
test eax, eax
mov dword [ebp + 0x18], eax
jl 0x44fd65
mov edi, dword [ebp + 0x28]
mov eax, dword [ebp + 0xc]
push 0
push 0
push dword [ebp + 0x20]
lea eax, [edi + eax*8]
push dword [ebp + 0x1c]
or ebx, 0x30000000
push eax
push dword [ebp - 0x48]
mov ecx, esi
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
call fcn.0044fa2b
test eax, eax
mov dword [ebp + 0x18], eax
jl 0x44fd65
push edi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x451ea2
push dword [ebp + 0x28]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 0x18]
pop ecx
jmp 0x451ec1
push dword [ebp + 0x28]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov eax, edi
jmp 0x451ec1
push ecx
mov dword [ebp - 0x30], ecx
call fcn.0044dcba
or dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x34], eax
xor eax, eax
test dword [ebx + 0x98], 0x200000
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], eax
je 0x450706
mov edi, dword [ebp + 0xc]
and edi, 0xfff00000
cmp edi, 0x10000000
je 0x450706
cmp edi, 0x11d00000
je 0x450706
cmp edi, 0x20700000
je 0x450706
cmp edi, 0x11400000
je 0x450706
cmp edi, 0x11900000
je 0x450706
cmp edi, 0x11c00000
je 0x450706
cmp edi, 0x11100000
je 0x450706
cmp edi, 0x24200000
je 0x450706
cmp edi, 0x11500000
je 0x450706
cmp edi, 0x24300000
je 0x450706
cmp edi, 0x50700000
je 0x450706
cmp edi, 0x50400000
je 0x450706
cmp edi, 0x50500000
je 0x450706
mov eax, dword [ebp + 0xc]
and eax, 0xf0000000
cmp eax, 0x60000000
je 0x450706
cmp eax, 0x90000000
je 0x450706
mov ebx, dword [ebp + 0xc]
and ebx, 0xfffff
cmp dword [ebp + 0x14], 0
mov dword [ebp - 8], ebx
je 0x44feb4
cmp edi, 0x30100000
je 0x44feb4
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x14]
mov ecx, esi
push ebx
call fcn.0044df05
test eax, eax
jge 0x44feb4
mov dword [ebp - 0xc], 1
cmp dword [ebp + 0x18], 0
je 0x44fed4
lea eax, [ebp - 0x28]
push eax
push dword [ebp + 0x18]
mov ecx, esi
push ebx
call fcn.0044df05
test eax, eax
jge 0x44fed4
mov dword [ebp - 0xc], 1
cmp edi, 0x23000000
jne 0x45003b
cmp dword [ebp + 0x14], 0
jne 0x44feed
mov dword [ebp - 0xc], 1
cmp dword [ebp + 0x18], 0
je 0x45001a
mov ecx, dword [ebp - 0x14]
mov ebx, 0x92
and ecx, ebx
xor eax, eax
or eax, ecx
mov edx, 0x80000000
je 0x44ff11
mov dword [ebp - 0x40], ebx
jmp 0x44ff24
mov ecx, dword [ebp - 0x14]
and ecx, 0x49
xor eax, eax
or eax, ecx
je 0x44ff2f
mov dword [ebp - 0x40], 0x49
and dword [ebp - 0x44], 0
mov edi, 0x124
jmp 0x44ff5e
mov eax, dword [ebp - 0x18]
and eax, edx
xor ecx, ecx
or eax, ecx
mov edi, 0x124
je 0x44ff47
and dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], edx
jmp 0x44ff5e
mov ecx, dword [ebp - 0x14]
xor eax, eax
and dword [ebp - 0x44], eax
and ecx, edi
or eax, ecx
je 0x44ff5a
mov dword [ebp - 0x40], edi
jmp 0x44ff5e
and dword [ebp - 0x40], 0
mov ecx, dword [ebp - 0x24]
and ecx, ebx
xor eax, eax
or eax, ecx
jne 0x44ff75
mov ecx, dword [ebp - 0x24]
push 0x49
pop ebx
and ecx, ebx
or eax, ecx
je 0x44ff79
xor eax, eax
jmp 0x44ff9d
mov eax, dword [ebp - 0x28]
and eax, edx
xor ecx, ecx
or eax, ecx
je 0x44ff88
mov eax, edx
jmp 0x44ff9b
mov ecx, dword [ebp - 0x24]
and ecx, edi
xor eax, eax
or eax, ecx
je 0x44ff99
xor eax, eax
mov ebx, edi
jmp 0x44ff9d
xor eax, eax
xor ebx, ebx
cmp dword [ebp - 0x44], eax
jne 0x44ffa7
cmp dword [ebp - 0x40], ebx
je 0x45001a
mov ebx, dword [ebp - 0x14]
mov eax, 0xdb
and ebx, eax
xor ecx, ecx
or ecx, ebx
je 0x44ffd3
mov ebx, dword [ebp - 0x24]
and ebx, eax
xor ecx, ecx
or ecx, ebx
je 0x44ffd3
mov ecx, dword [ebp - 0x24]
or ecx, dword [ebp - 0x14]
and ecx, 0x92
jmp 0x450171
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
and ecx, edx
and ebx, eax
or ecx, ebx
je 0x44fff3
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
and ecx, edx
and ebx, eax
or ecx, ebx
jne 0x450169
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
and eax, edx
and ecx, edi
or eax, ecx
je 0x450013
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
and eax, edx
and ecx, edi
or eax, ecx
jne 0x450131
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0
je 0x450190
push 0x40540c
push 0
push 0
push esi
call fcn.0044f2af
add esp, 0x10
jmp 0x450e70
cmp edi, 0x30100000
je 0x450184
cmp dword [ebp + 0x14], 0
jne 0x450054
mov dword [ebp - 0xc], 1
cmp dword [ebp + 0x18], 0
je 0x45001a
mov ecx, dword [ebp - 0x14]
mov edi, 0x92
and ecx, edi
xor eax, eax
or eax, ecx
mov edx, 0x80000000
je 0x450076
xor ebx, ebx
mov dword [ebp - 0x40], edi
jmp 0x4500ba
mov ecx, dword [ebp - 0x14]
and ecx, 0x49
xor eax, eax
or eax, ecx
je 0x45008d
xor ebx, ebx
mov dword [ebp - 0x40], 0x49
jmp 0x4500ba
mov eax, dword [ebp - 0x18]
and eax, edx
xor ecx, ecx
or eax, ecx
je 0x45009f
and dword [ebp - 0x40], ecx
mov ebx, edx
jmp 0x4500ba
mov ecx, dword [ebp - 0x14]
and ecx, 0x124
xor eax, eax
xor ebx, ebx
or eax, ecx
mov dword [ebp - 0x40], 0x124
jne 0x4500ba
mov dword [ebp - 0x40], ebx
mov ecx, dword [ebp - 0x24]
and ecx, edi
xor eax, eax
or eax, ecx
je 0x4500cb
xor eax, eax
mov ecx, edi
jmp 0x450109
mov ecx, dword [ebp - 0x24]
and ecx, 0x49
xor eax, eax
or eax, ecx
je 0x4500de
push 0x49
xor eax, eax
pop ecx
jmp 0x450109
mov eax, dword [ebp - 0x28]
and eax, edx
xor ecx, ecx
or eax, ecx
je 0x4500ed
mov eax, edx
jmp 0x450107
mov ecx, dword [ebp - 0x24]
and ecx, 0x124
xor eax, eax
or eax, ecx
je 0x450105
xor eax, eax
mov ecx, 0x124
jmp 0x450109
xor eax, eax
xor ecx, ecx
cmp ebx, eax
jne 0x450116
cmp dword [ebp - 0x40], ecx
je 0x45001a
mov ebx, dword [ebp - 0x14]
mov eax, 0xdb
and ebx, eax
xor ecx, ecx
or ecx, ebx
je 0x45013b
mov ebx, dword [ebp - 0x24]
and ebx, eax
xor ecx, ecx
or ecx, ebx
je 0x45013b
mov ecx, dword [ebp - 0x24]
or ecx, dword [ebp - 0x14]
and ecx, edi
jmp 0x450171
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
and ecx, edx
and ebx, eax
or ecx, ebx
je 0x450013
mov ecx, dword [ebp - 0x28]
and ecx, edx
mov edx, dword [ebp - 0x24]
and edx, eax
or ecx, edx
je 0x450013
cmp dword [ebp - 0x34], 0
jne 0x45001a
mov ecx, dword [ebp - 0x24]
or ecx, dword [ebp - 0x14]
and ecx, eax
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
jmp 0x45001a
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x34], 0
je 0x450706
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
mov ecx, edx
and ecx, 0x92
xor eax, eax
xor edi, edi
or eax, ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], edx
je 0x450288
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 8]
cmp ecx, edi
je 0x4501cc
mov dword [ebp - 0x30], ecx
jmp 0x450475
mov dword [ebp - 4], 0x13000000
mov dword [ebp - 0x2c], 0x13200000
mov eax, dword [eax + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x128]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x12c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
push dword [ebp - 8]
mov ecx, esi
push eax
mov dword [ebp - 0x3c], eax
call fcn.0044dc99
mov ebx, eax
cmp ebx, edi
jl 0x451ea4
mov eax, dword [ebp - 8]
xor eax, dword [ebp - 4]
xor edi, edi
push edi
push edi
push dword [ebp + 0x20]
and eax, 0xfffff
push dword [ebp + 0x1c]
xor eax, dword [ebp - 4]
push edi
push dword [ebp + 0x14]
mov ecx, esi
push dword [ebp - 0x3c]
push eax
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
cmp ebx, edi
jl 0x451ea4
xor ecx, ecx
cmp dword [ebp - 8], ecx
jbe 0x45027d
mov edx, dword [esi + 8]
mov edx, dword [edx + 0x1c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + ecx*4]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
or dword [eax], edx
mov edx, dword [ebp - 0x1c]
or dword [eax + 4], edx
inc ecx
cmp ecx, dword [ebp - 8]
jb 0x45025d
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 4], eax
jmp 0x450475
mov eax, ebx
and eax, 0x80000000
or eax, edi
je 0x45035d
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebx + 0xc]
cmp eax, edi
je 0x4502e9
mov ebx, eax
cmp ebx, 0x21200000
mov dword [ebp - 0x30], ebx
je 0x450475
cmp eax, 0x21300000
je 0x450475
mov ecx, dword [esi + 8]
push 8
xor edi, edi
push edi
push edi
push 1
push edi
push edi
push dword [ecx + 0x2a54]
call fcn.004911b2
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x120]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x124]
jmp 0x45034a
cmp dword [ebx + 8], edi
mov ecx, dword [esi + 8]
push 8
push edi
je 0x45031e
push edi
push 1
push edi
push edi
push dword [ecx + 0x2a54]
call fcn.004911b2
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x118]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x11c]
jmp 0x45034a
fld1
push ecx
push ecx
fstp qword [esp]
push edi
push edi
push dword [ecx + 0x2a54]
call fcn.00491133
mov dword [ebp - 4], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x128]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x12c]
cmp dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x1c], eax
jne 0x45039f
mov ebx, 0x8007000e
jmp 0x451ea4
mov ecx, edx
xor eax, eax
and ecx, 0x49
or eax, ecx
mov eax, dword [ebp - 0x34]
je 0x450394
mov ecx, dword [eax + 0xc]
cmp ecx, edi
jne 0x4501c4
mov ecx, dword [eax + 8]
cmp ecx, edi
jne 0x4501c4
mov dword [ebp - 4], 0x13100000
mov dword [ebp - 0x2c], 0x13300000
jmp 0x4501da
mov eax, dword [eax + 4]
mov dword [ebp - 0x30], eax
jmp 0x450475
mov eax, dword [ebp - 8]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 8]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp dword [ebp - 0x3c], edi
pop ecx
pop ecx
mov dword [ebp - 0xc], eax
je 0x450353
cmp eax, edi
je 0x450353
cmp dword [ebp - 8], edi
jbe 0x4503f8
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov edi, dword [ebp - 0xc]
rep stosd dword es:[edi], eax
xor edi, edi
push dword [ebp - 8]
mov ecx, esi
push dword [ebp - 0x3c]
call fcn.0044dc99
mov ebx, eax
cmp ebx, edi
jl 0x451ea4
mov edi, dword [ebp - 0x3c]
xor eax, eax
push eax
push eax
push eax
push eax
push dword [ebp - 0xc]
mov eax, dword [ebp - 8]
push dword [ebp + 0x14]
and eax, 0xfffff
push edi
or eax, 0x23000000
push eax
push dword [ebp + 8]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jge 0x450445
push dword [ebp - 0xc]
jmp 0x4506cb
xor ecx, ecx
cmp dword [ebp - 8], ecx
jbe 0x450469
mov edx, dword [esi + 8]
mov edx, dword [edx + 0x1c]
mov eax, dword [edi + ecx*4]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
or dword [eax], edx
mov edx, dword [ebp - 0x1c]
or dword [eax + 4], edx
inc ecx
cmp ecx, dword [ebp - 8]
jb 0x45044c
push dword [ebp - 0xc]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov dword [ebp - 4], edi
mov edx, dword [ebp - 0x24]
mov ecx, edx
and ecx, 0x92
xor eax, eax
or eax, ecx
je 0x450542
mov eax, dword [ebp - 0x34]
cmp dword [eax + 8], 0
jne 0x450706
mov edi, 0x13000000
mov eax, dword [esi + 0x128]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x12c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
push dword [ebp - 8]
mov ecx, esi
push eax
mov dword [ebp - 0x38], eax
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push dword [ebp + 0x20]
mov ecx, esi
push dword [ebp + 0x1c]
push eax
push dword [ebp + 0x18]
mov eax, dword [ebp - 8]
push dword [ebp - 0x38]
xor eax, edi
and eax, 0xfffff
xor eax, edi
push eax
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor ecx, ecx
cmp dword [ebp - 8], ecx
jbe 0x450537
mov edx, dword [esi + 8]
mov edx, dword [edx + 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + ecx*4]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
or dword [eax], edx
mov edx, dword [ebp - 0x1c]
or dword [eax + 4], edx
inc ecx
cmp ecx, dword [ebp - 8]
jb 0x450517
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x10], eax
jmp 0x450706
and edx, 0x49
xor eax, eax
or eax, edx
je 0x45056c
mov eax, dword [ebp - 0x34]
cmp dword [eax + 8], 0
jne 0x450706
cmp dword [eax + 0xc], 0
jne 0x450706
mov edi, 0x13100000
jmp 0x45049c
mov eax, dword [ebp - 0x28]
and eax, 0x80000000
xor ecx, ecx
or eax, ecx
je 0x450706
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx + 0xc]
xor edi, edi
cmp eax, edi
je 0x4505c9
cmp eax, 0x21200000
je 0x450706
cmp eax, 0x21300000
je 0x450706
mov ecx, dword [esi + 8]
push 8
push edi
push edi
push 1
push edi
push edi
push dword [ecx + 0x2a54]
call fcn.004911b2
mov ebx, eax
mov eax, dword [esi + 0x120]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x124]
jmp 0x45061f
cmp dword [ecx + 8], edi
mov ecx, dword [esi + 8]
je 0x4505f7
push 0x10
push edi
push edi
push 1
push edi
push edi
push dword [ecx + 0x2a54]
call fcn.004911b2
mov ebx, eax
mov eax, dword [esi + 0x118]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x11c]
jmp 0x45061f
fld1
push 0x20
push edi
push ecx
push ecx
fstp qword [esp]
push edi
push edi
push dword [ecx + 0x2a54]
call fcn.00491133
mov ebx, eax
mov eax, dword [esi + 0x128]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x12c]
cmp ebx, 0xffffffff
mov dword [ebp - 0x1c], eax
je 0x450353
mov eax, dword [ebp - 8]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 8]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp dword [ebp - 0x38], edi
pop ecx
pop ecx
mov dword [ebp + 0x14], eax
je 0x450353
cmp eax, edi
je 0x450353
cmp dword [ebp - 8], edi
jbe 0x450683
mov ecx, dword [ebp - 8]
mov edi, dword [ebp + 0x14]
mov eax, ebx
rep stosd dword es:[edi], eax
xor edi, edi
push dword [ebp - 8]
mov ecx, esi
push dword [ebp - 0x38]
call fcn.0044dc99
mov ebx, eax
cmp ebx, edi
jl 0x451ea4
mov edi, dword [ebp - 0x38]
xor eax, eax
push eax
push eax
push eax
push eax
push dword [ebp + 0x14]
mov eax, dword [ebp - 8]
push dword [ebp + 0x18]
and eax, 0xfffff
push edi
or eax, 0x23000000
push eax
push dword [ebp + 8]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jge 0x4506d6
push dword [ebp + 0x14]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x451ea4
xor ecx, ecx
cmp dword [ebp - 8], ecx
jbe 0x4506fa
mov edx, dword [esi + 8]
mov edx, dword [edx + 0x1c]
mov eax, dword [edi + ecx*4]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x20]
or dword [eax], edx
mov edx, dword [ebp - 0x1c]
or dword [eax + 4], edx
inc ecx
cmp ecx, dword [ebp - 8]
jb 0x4506dd
push dword [ebp + 0x14]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov dword [ebp - 0x10], edi
mov ecx, dword [ebp - 0x30]
and ecx, 0xfff00000
cmp ecx, 0x21700000
jne 0x450a92
mov eax, dword [esi + 8]
test byte [eax + 0x94], 0x40
jne 0x450a92
mov edi, dword [ebp + 0xc]
and edi, 0xfffff
mov eax, edi
imul eax, eax, 0xc
push eax
mov ecx, esi
mov dword [ebp - 0xc], edi
call fcn.0044db57
xor ebx, ebx
cmp eax, ebx
mov dword [ebp + 0x14], eax
je 0x450353
mov ecx, dword [esi + 8]
push 8
push ebx
push ebx
push 0x80000000
push ebx
push ebx
push dword [ecx + 0x2a54]
call fcn.004911b2
cmp eax, 0xffffffff
mov dword [ebp + 0x20], eax
je 0x450353
mov edx, dword [ebp + 0x14]
mov ecx, edi
xor eax, eax
shl ecx, 2
mov dword [ebp + eax*4 - 0x6c], edx
inc eax
add edx, ecx
cmp eax, 0xc
jb 0x450780
cmp edi, ebx
mov edx, dword [ebp - 0x68]
mov dword [ebp + 0xc], 1
jbe 0x450817
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x6c]
sub eax, edx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp + 0x24], eax
mov eax, dword [ebp - 0x10]
sub ecx, edx
sub eax, edx
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x18], edi
mov eax, 0x800
jmp 0x4507c7
mov ecx, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
add edi, edx
mov ebx, dword [edi]
mov dword [ecx + edx], ebx
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + edx]
mov ebx, dword [ebp - 0x2c]
mov dword [edx], ecx
mov ecx, dword [ebp + 0x20]
mov dword [ebx + edx], ecx
mov ecx, dword [esi + 8]
mov ebx, dword [ecx + 0x1c]
mov ecx, dword [edi]
mov ecx, dword [ebx + ecx*4]
mov ecx, dword [ecx]
and ecx, eax
xor edi, edi
or ecx, edi
je 0x450808
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + edx]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [ebx]
and ecx, eax
or ecx, edi
jne 0x45080c
and dword [ebp + 0xc], 0
add edx, 4
dec dword [ebp + 0x18]
jne 0x4507c4
mov edi, dword [ebp - 0xc]
push edi
push dword [ebp - 0x60]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x5c]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x58]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x54]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x50]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x4c]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x48]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x44]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x40]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x6c]
and edi, 0xfffff
push dword [ebp - 0x60]
mov dword [ebp + 0x14], edi
or dword [ebp + 0x14], 0x12000000
push dword [ebp + 0x14]
mov ecx, esi
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x68]
mov ecx, esi
push dword [ebp - 0x5c]
push dword [ebp + 0x14]
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x68]
mov eax, edi
push dword [ebp - 0x6c]
or eax, 0x23300000
push dword [ebp - 0x58]
mov ecx, esi
push eax
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push 8
push eax
push dword [ebp - 0x6c]
mov dword [ebp + 0x18], edi
push dword [ebp - 0x60]
or dword [ebp + 0x18], 0x21e00000
push dword [ebp - 0x54]
mov ecx, esi
push dword [ebp + 0x18]
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push 8
push eax
push dword [ebp - 0x68]
mov ecx, esi
push dword [ebp - 0x5c]
push dword [ebp - 0x50]
push dword [ebp + 0x18]
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x50]
mov eax, edi
push dword [ebp - 0x54]
or eax, 0x21a00000
push dword [ebp - 0x48]
mov ecx, esi
push eax
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x48]
mov ecx, esi
push dword [ebp - 0x4c]
push dword [ebp + 0x14]
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x64]
mov eax, edi
push dword [ebp - 0x58]
or eax, 0x23000000
push dword [ebp - 0x44]
mov ecx, esi
push eax
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x44]
mov eax, edi
push dword [ebp - 0x40]
or eax, 0x13600000
push eax
push dword [ebp + 8]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push 0x10
push eax
push dword [ebp - 0x4c]
or edi, 0x30100000
push dword [ebp - 0x40]
mov ecx, esi
push dword [ebp + 0x10]
push edi
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor ebx, ebx
cmp dword [ebp + 0xc], ebx
jne 0x451ea4
push 0x4053c8
jmp 0x450dda
cmp ecx, 0x21800000
jne 0x450df0
mov eax, dword [esi + 8]
test byte [eax + 0x94], 0x40
jne 0x450df0
mov edi, dword [ebp + 0xc]
and edi, 0xfffff
mov eax, edi
imul eax, eax, 0xb
push eax
mov ecx, esi
mov dword [ebp - 0xc], edi
call fcn.0044db57
xor ebx, ebx
cmp eax, ebx
mov dword [ebp + 0x14], eax
je 0x450353
mov ecx, dword [esi + 8]
push 8
push ebx
push ebx
push 0x80000000
push ebx
push ebx
push dword [ecx + 0x2a54]
call fcn.004911b2
cmp eax, 0xffffffff
mov dword [ebp - 0x2c], eax
je 0x450353
mov edx, dword [ebp + 0x14]
mov ecx, edi
xor eax, eax
shl ecx, 2
mov dword [ebp + eax*4 - 0x68], edx
inc eax
add edx, ecx
cmp eax, 0xb
jb 0x450b03
cmp edi, ebx
mov edx, dword [ebp - 0x64]
mov dword [ebp + 0xc], 1
jbe 0x450ba4
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x10]
sub eax, edx
mov dword [ebp + 0x20], eax
mov eax, dword [ebp - 4]
sub eax, edx
sub ecx, edx
sub ebx, edx
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x18], edi
mov eax, 0x800
jmp 0x450b51
mov ecx, dword [ebp + 0x28]
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x24]
add edi, edx
mov dword [ebp - 0x10], edi
mov edi, dword [edi]
mov dword [ecx + edx], edi
mov ecx, dword [ebx + edx]
mov edi, dword [ebp - 0x2c]
mov dword [edx], ecx
mov ecx, dword [ebp + 0x20]
mov dword [ecx + edx], edi
mov ecx, dword [esi + 8]
mov ebx, dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
mov ecx, dword [ebx + ecx*4]
mov ecx, dword [ecx]
and ecx, eax
xor edi, edi
or ecx, edi
je 0x450b95
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + edx]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [ebx]
and ecx, eax
or ecx, edi
jne 0x450b99
and dword [ebp + 0xc], 0
add edx, 4
dec dword [ebp + 0x18]
jne 0x450b4b
mov edi, dword [ebp - 0xc]
push edi
push dword [ebp - 0x5c]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x58]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x54]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x50]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x4c]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x48]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x44]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
push edi
push dword [ebp - 0x40]
mov ecx, esi
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x68]
and edi, 0xfffff
push dword [ebp - 0x5c]
mov dword [ebp + 0x14], edi
or dword [ebp + 0x14], 0x12000000
push dword [ebp + 0x14]
mov ecx, esi
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x64]
mov ecx, esi
push dword [ebp - 0x58]
push dword [ebp + 0x14]
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x60]
mov eax, edi
push dword [ebp - 0x68]
or eax, 0x23000000
push dword [ebp - 0x54]
mov ecx, esi
push eax
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push 8
push eax
push dword [ebp - 0x68]
mov dword [ebp + 0x18], edi
push dword [ebp - 0x5c]
or dword [ebp + 0x18], 0x21e00000
push dword [ebp - 0x50]
mov ecx, esi
push dword [ebp + 0x18]
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push 8
push eax
push dword [ebp - 0x64]
mov ecx, esi
push dword [ebp - 0x58]
push dword [ebp - 0x4c]
push dword [ebp + 0x18]
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x4c]
mov eax, edi
push dword [ebp - 0x50]
or eax, 0x21b00000
push dword [ebp - 0x44]
mov ecx, esi
push eax
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x44]
mov ecx, esi
push dword [ebp - 0x48]
push dword [ebp + 0x14]
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x54]
mov eax, edi
push dword [ebp - 0x40]
or eax, 0x13600000
push eax
push dword [ebp + 8]
mov ecx, esi
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push 0x10
push eax
push dword [ebp - 0x48]
or edi, 0x30100000
push dword [ebp - 0x40]
mov ecx, esi
push dword [ebp + 0x10]
push edi
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor ebx, ebx
cmp dword [ebp + 0xc], ebx
jne 0x451ea4
push 0x405380
push 0xde4
push dword [ebp + 8]
push esi
call fcn.0044f329
add esp, 0x10
jmp 0x451ea4
mov eax, dword [ebp + 0xc]
push 0xffffffffffffffff
and eax, 0xfffff
or eax, ecx
mov ecx, dword [esi + 8]
push 0xffffffffffffffff
push eax
call fcn.0049122f
mov ecx, dword [esi + 8]
cmp eax, dword [ecx + 0x10]
mov dword [ebp - 0x30], eax
jae 0x450e1a
mov ecx, dword [ecx + 0x20]
mov edi, dword [ecx + eax*4]
jmp 0x450e1c
xor edi, edi
xor ebx, ebx
cmp edi, ebx
je 0x450353
mov ecx, dword [ebp + 0x28]
cmp ecx, ebx
je 0x450e2f
mov dword [ecx], eax
cmp dword [edi + 0xc], ebx
jne 0x450e40
cmp dword [edi + 4], ebx
jne 0x450e40
mov dword [edi], ebx
jmp 0x451ea4
xor ebx, ebx
push ebx
push ebx
mov ecx, edi
call fcn.004935ee
push ebx
push ebx
mov ecx, edi
mov dword [ebp + 0x14], eax
call fcn.00491867
mov ebx, dword [edi + 4]
sub ebx, eax
test eax, eax
je 0x450e66
cmp dword [ebp - 4], 0
je 0x450e70
test ebx, ebx
je 0x450e7a
cmp dword [ebp - 0x10], 0
jne 0x450e7a
mov ebx, 0x80004005
jmp 0x451ea4
shl eax, 2
push eax
push dword [ebp - 4]
mov dword [ebp + 0x18], eax
push dword [edi + 8]
call sub.msvcrt.dll_memcpy
mov eax, ebx
shl eax, 2
push eax
mov eax, dword [edi + 8]
add eax, dword [ebp + 0x18]
push dword [ebp - 0x10]
push eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi]
mov eax, dword [edi + 4]
and ecx, 0xfffff
xor edx, edx
div ecx
and dword [ebp - 4], 0
add esp, 0x18
mov dword [ebp - 0x10], ecx
test eax, eax
mov dword [ebp - 0xc], eax
jbe 0x45106b
and dword [ebp + 0xc], 0
xor edx, edx
inc edx
test ecx, ecx
jbe 0x450f54
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x28], ecx
mov ecx, dword [ebp + 0x18]
mov eax, dword [edi + 8]
mov eax, dword [ecx + eax]
mov ecx, dword [esi + 8]
cmp eax, dword [ecx + 0xc]
jae 0x450ef6
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + eax*4]
jmp 0x450ef8
xor ecx, ecx
inc dword [ecx + 0x54]
test edx, edx
je 0x450f3e
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x18]
mov edx, dword [ecx + 8]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 8]
and eax, 0x100
xor ebx, ebx
or eax, ebx
jne 0x450f24
mov eax, dword [esi + 8]
cmp edx, dword [eax + 0x2a6c]
jne 0x450f3e
mov eax, dword [ecx]
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x450f3e
cmp dword [esi + 0xdc], ecx
jne 0x450f3e
xor edx, edx
inc edx
jmp 0x450f40
xor edx, edx
add dword [ebp + 0x18], 4
dec dword [ebp + 0x28]
jne 0x450edd
test edx, edx
je 0x451051
mov ecx, dword [ebp - 0x10]
and dword [ebp + 0x28], 0
test ecx, ecx
jbe 0x451051
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x18], eax
mov eax, dword [edi + 8]
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + eax]
mov eax, dword [esi + 8]
cmp ecx, dword [eax + 0xc]
jae 0x450f7f
mov edx, dword [eax + 0x1c]
mov ebx, dword [edx + ecx*4]
jmp 0x450f81
xor ebx, ebx
mov ecx, dword [ebx + 8]
cmp ecx, dword [eax + 0x2a6c]
jne 0x45103e
lea eax, [ebp - 0x44]
push eax
mov ecx, ebx
call fcn.00493f0b
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 8]
and eax, 0x80000000
and edx, 0x1ff
push edx
or eax, 0x7800
push eax
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push 0
push 0
push dword [ecx + 0x2a54]
call fcn.004911b2
mov ecx, dword [ebp + 0x18]
mov edx, dword [edi + 8]
mov dword [ecx + edx], eax
mov eax, dword [edi + 8]
mov eax, dword [ecx + eax]
cmp eax, 0xffffffff
je 0x4510a7
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ecx + eax*4]
and dword [eax], 0x7fffffff
and dword [eax + 4], 0xfffffe00
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
and ecx, 0x80000000
or dword [eax], ecx
mov ecx, dword [ebp + 0x18]
and edx, 0x1ff
or dword [eax + 4], edx
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + eax*4]
push ebx
call fcn.004940b1
mov eax, dword [edi + 8]
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + ecx]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebx + 0x28]
mov dword [eax + 0x28], ecx
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
add dword [ebp + 0x18], 4
cmp eax, dword [ebp - 0x10]
jb 0x450f66
mov ecx, dword [ebp - 0x10]
inc dword [ebp - 4]
mov eax, ecx
shl eax, 2
add dword [ebp + 0xc], eax
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0xc]
jb 0x450ec9
mov eax, dword [ebp + 0x14]
and dword [ebp + 0x18], 0
test eax, eax
jbe 0x4515dd
shl eax, 2
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x10]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp + 0x28], ebx
je 0x4510be
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + ecx*4]
cmp eax, 0xffffffff
je 0x4510be
mov ecx, dword [esi + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4510b1
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ecx + eax*4]
jmp 0x4510b3
mov eax, 0x8007000e
jmp 0x451ec1
xor eax, eax
cmp eax, ebx
mov dword [ebp + 0x28], eax
je 0x4517e7
mov eax, dword [edi]
and eax, 0xfff00000
cmp eax, 0x50400000
je 0x4510d3
cmp eax, 0x50500000
jne 0x45110a
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
push ebx
lea eax, [ecx + eax*2]
mov ecx, dword [edi + 8]
push 0x200000
push dword [ecx + eax*4]
mov ecx, dword [esi + 8]
call fcn.00490d38
test eax, eax
je 0x45110a
mov ecx, dword [esi + 8]
fldz
push ebx
push ebx
push ecx
push ecx
fstp qword [esp]
push ebx
push ebx
push dword [ecx + 0x2aa8]
jmp 0x45116f
mov eax, dword [edi]
and eax, 0xfff00000
cmp eax, 0x11100000
je 0x45112a
cmp eax, 0x24200000
je 0x45112a
mov ecx, edi
call fcn.00491f26
test eax, eax
je 0x45115b
mov eax, dword [edi + 8]
mov ecx, dword [ebp + 0x18]
push ebx
push 0x200000
push dword [eax + ecx*4]
mov ecx, dword [esi + 8]
call fcn.00490d38
test eax, eax
je 0x45115b
mov ecx, dword [esi + 8]
fldz
push ebx
push ebx
push ecx
push ecx
fstp qword [esp]
push ebx
push ebx
push dword [ecx + 0x2aac]
jmp 0x45116f
mov ecx, dword [esi + 8]
fldz
push ebx
push ebx
push ecx
push ecx
fstp qword [esp]
push ebx
push ebx
push dword [ecx + 0x2a6c]
call fcn.00491133
cmp eax, 0xffffffff
mov dword [ebp + 0xc], eax
je 0x450353
mov eax, dword [esi + 8]
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [eax + 0xc]
jae 0x451193
mov eax, dword [eax + 0x1c]
mov ebx, dword [eax + ecx*4]
jmp 0x451195
xor ebx, ebx
test ebx, ebx
je 0x450353
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp + 0x20]
mov dword [ebx + 0x40], eax
mov eax, dword [ebp + 0x18]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebx], eax
mov ecx, edx
and eax, 0x80000000
and ecx, 0x1c1ff
or eax, ecx
mov dword [ebx + 4], edx
jne 0x451473
mov eax, dword [esi + 8]
test dword [eax + 0x98], 0x200000
je 0x45145d
mov eax, dword [edi]
and eax, 0xfff00000
cmp eax, 0x6b500000
je 0x45144a
cmp eax, 0x6b900000
je 0x45144a
cmp eax, 0x6bc00000
je 0x45144a
cmp eax, 0x6b700000
je 0x45144a
cmp eax, 0x6ba00000
je 0x45144a
mov ecx, edi
call fcn.004925bb
test eax, eax
jne 0x45144a
mov ecx, dword [edi]
mov eax, ecx
and eax, 0xfff00000
cmp eax, 0x6b600000
je 0x45143a
cmp eax, 0x6b800000
je 0x45143a
cmp eax, 0x6bb00000
je 0x45143a
and ecx, 0xf0000000
cmp ecx, 0x60000000
je 0x451269
cmp ecx, 0xa0000000
jne 0x45128b
cmp eax, 0x6a200000
je 0x45128b
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov eax, dword [eax]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
and ecx, 0x80000014
jmp 0x451331
cmp eax, 0x30100000
jne 0x4512e1
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ebp - 0x10]
mov edx, dword [edx + eax]
mov dword [ebp - 4], ecx
mov ecx, dword [ecx + edx*4]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp + 0x18]
lea ecx, [ecx + edx*2]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
and eax, 0x80000000
and ecx, 0x1ff
mov edx, eax
or edx, ecx
jne 0x45140c
mov eax, dword [ebp - 4]
jmp 0x451329
cmp eax, 0x20700000
jne 0x451340
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ebp + 0x18]
mov edx, dword [eax + edx*4]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + eax]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xc], eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
and eax, 0x80000000
and ecx, 0x1ff
mov edx, eax
or edx, ecx
jne 0x45140c
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
and ecx, 0x80000000
mov eax, dword [eax + 4]
and eax, 0x1ff
or dword [ebx], ecx
jmp 0x451458
cmp eax, 0x10000000
je 0x451413
cmp eax, 0x11d00000
je 0x451413
cmp eax, 0x11100000
je 0x451413
cmp eax, 0x24200000
je 0x451413
cmp eax, 0x11900000
je 0x451413
cmp eax, 0x11c00000
je 0x451413
cmp eax, 0x11400000
je 0x451413
cmp eax, 0x50500000
je 0x451413
cmp eax, 0x50400000
je 0x451413
mov ecx, edi
call fcn.0049209c
test eax, eax
je 0x4513b9
mov eax, dword [esi + 0x118]
or dword [ebx], eax
mov eax, dword [esi + 0x11c]
jmp 0x451458
mov ecx, edi
call fcn.004920bd
test eax, eax
jne 0x45143a
mov ecx, edi
call fcn.00492009
test eax, eax
je 0x4513e0
mov eax, dword [ebx + 4]
or dword [ebx], 0x80000000
mov dword [ebx + 4], eax
jmp 0x451473
mov ecx, edi
call fcn.00492074
test eax, eax
jne 0x45144a
mov eax, dword [ebp - 0x20]
or eax, dword [ebp - 0x1c]
je 0x4513fb
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
jmp 0x451401
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
and eax, 0x80000000
and ecx, 0x1c1ff
or dword [ebx], eax
or dword [ebx + 4], ecx
jmp 0x451473
mov ecx, dword [ebp + 0x18]
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
and ecx, 0x80000000
and eax, 0x1c1ff
jmp 0x451339
mov eax, dword [esi + 0x120]
or dword [ebx], eax
mov eax, dword [esi + 0x124]
jmp 0x451458
mov eax, dword [esi + 0x128]
or dword [ebx], eax
mov eax, dword [esi + 0x12c]
or dword [ebx + 4], eax
jmp 0x451473
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x12c]
or eax, dword [ebp + 0x1c]
or ecx, edx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov eax, dword [esi + 0x90]
mov dword [ebx + 0x20], eax
mov eax, dword [esi + 0x94]
mov dword [ebx + 0x24], eax
mov eax, dword [esi + 8]
test dword [eax + 0x98], 0x40000000
je 0x451500
mov ecx, edi
call fcn.00491f26
test eax, eax
je 0x4514bb
mov ecx, dword [ebp + 0x18]
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ecx + eax*4]
cmp dword [eax + 8], 0
jne 0x4514bb
and dword [ebx + 8], 0
mov eax, dword [edi]
and eax, 0xfff00000
cmp eax, 0x30100000
jne 0x451500
mov ecx, dword [esi + 8]
mov eax, dword [edi + 8]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ebp - 0x10]
mov edx, dword [edx + eax]
mov dword [ebp - 4], ecx
mov ecx, dword [ecx + edx*4]
cmp dword [ecx + 8], 0
jne 0x451500
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
lea ecx, [edx + ecx*2]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + eax*4]
cmp dword [eax + 8], 0
jne 0x451500
and dword [ebx + 8], 0
mov ecx, dword [ebp + 0x18]
mov edx, dword [edi + 0x10]
mov eax, dword [ebp + 0xc]
shl ecx, 2
mov dword [ecx + edx], eax
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x451519
mov dword [ecx + edx], eax
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x45154f
mov eax, dword [eax + 8]
mov edx, dword [esi + 8]
mov edx, dword [edx + 0x18]
mov eax, dword [edx + eax*4]
mov eax, dword [eax + 8]
and eax, 0x8000000
xor edx, edx
or eax, edx
mov eax, dword [ebp + 0x28]
jne 0x451543
mov edx, dword [eax + 0x28]
mov dword [ebx + 0x28], edx
mov edx, dword [eax + 0x5c]
mov dword [ebx + 0x5c], edx
mov eax, dword [eax + 0x60]
mov dword [ebx + 0x60], eax
mov edx, dword [esi + 8]
mov edx, dword [edx + 0x18]
mov eax, dword [ebx + 8]
mov eax, dword [edx + eax*4]
mov edx, dword [ebx + 0x28]
cmp edx, 0xffffffff
mov dword [ebp + 0x28], eax
je 0x4515ca
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x20]
cmp edx, eax
jb 0x451577
add eax, 0xb
cmp edx, eax
jb 0x4515ca
cmp dword [esi + 0xc0], 0
jne 0x4515ca
mov eax, dword [edi + 0x10]
mov ecx, dword [ecx + eax]
mov edx, dword [esi + 0x18]
mov eax, dword [ebx + 0x28]
mov dword [edx + eax*4], ecx
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x40], eax
mov eax, ecx
and eax, 0x8200000
xor edx, edx
or eax, edx
jne 0x4515ca
cmp dword [ebx + 0x5c], eax
jne 0x4515ca
and ecx, 0x200000
or ecx, eax
jne 0x4515ca
push dword [ebp + 0xc]
push 0x40534c
push ecx
push ecx
push esi
call fcn.0044f2af
add esp, 0x14
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
add dword [ebp - 0x10], 4
cmp eax, dword [ebp + 0x14]
jb 0x451080
mov eax, dword [ebp + 8]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0xa0]
mov dword [edi + 0x3c], 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_
xor ebx, ebx
cmp dword [ebp + 0x14], ebx
pop ecx
mov dword [ebp - 0x80], eax
jbe 0x45162b
mov dword [ebp + 0x18], eax
push dword [ebp + 0x18]
mov eax, dword [edi + 0x10]
push dword [eax + ebx*4]
mov ecx, esi
call fcn.00452a66
add dword [ebp + 0x18], 0x40
inc ebx
cmp ebx, dword [ebp + 0x14]
jb 0x451611
test byte [esi + 0x14], 4
jne 0x451712
mov ecx, edi
call fcn.004920d4
test eax, eax
jne 0x451712
xor ebx, ebx
cmp ebx, dword [ebp + 0x14]
jae 0x451680
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + ebx*4]
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
and eax, 0x8180
xor edx, edx
or eax, edx
jne 0x45167d
lea eax, [ebp - 0x54]
push eax
push ecx
mov ecx, esi
call fcn.0044e4fb
test eax, eax
jl 0x45167d
inc ebx
cmp ebx, dword [ebp + 0x14]
jb 0x45164b
cmp ebx, dword [ebp + 0x14]
jne 0x451712
mov eax, dword [ebp + 0x14]
and dword [ebp + 0x18], 0
and eax, 0xfffff
or eax, 0x10000000
cmp dword [ebp + 0x14], 0
mov dword [edi], eax
mov eax, dword [edi + 0xc]
mov dword [edi + 4], eax
jbe 0x451712
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov ebx, dword [ecx + eax*4]
lea eax, [ebp + 0x1c]
push eax
mov ecx, ebx
call fcn.00493f0b
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 8]
and eax, 0x80000000
and edx, 0x1ff
push edx
or eax, 0x800
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push 0
push 0
push dword [ecx + 0x2a54]
call fcn.004911b2
mov ecx, dword [ebp + 0x18]
mov edx, dword [edi + 8]
mov dword [edx + ecx*4], eax
mov eax, dword [edi + 8]
cmp dword [eax + ecx*4], 0xffffffff
je 0x450353
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x4516a5
mov eax, dword [edi]
mov ecx, eax
and ecx, 0xfff00000
mov edx, 0x11d00000
cmp ecx, edx
ja 0x451941
je 0x451801
cmp ecx, 0x10000000
je 0x451801
cmp ecx, 0x11400000
je 0x451757
cmp ecx, 0x11900000
je 0x451757
cmp ecx, 0x11c00000
jne 0x451e23
and dword [ebp + 0x18], 0
cmp dword [ebp + 0x14], 0
jbe 0x451e23
mov eax, dword [ebp + 0x18]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [edi + 0x10]
shl eax, 2
mov edx, dword [eax + edx]
mov ebx, dword [ecx + edx*4]
mov edx, dword [edi + 8]
mov eax, dword [eax + edx]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
and eax, 0x7fffffff
or dword [ebx], eax
and edx, 0xfffffe00
or dword [ebx + 4], edx
mov eax, dword [ecx]
xor eax, dword [ebx]
mov dword [ebp + 0xc], ecx
mov ecx, dword [ecx + 4]
xor ecx, dword [ebx + 4]
and eax, 0x80000000
and ecx, 0x1ff
or eax, ecx
jne 0x4517d7
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x7c]
push eax
call fcn.00494142
lea eax, [ebp - 0x7c]
push eax
mov ecx, ebx
call fcn.00493d04
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
and eax, 0x27f
or dword [ebx], eax
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x451765
jmp 0x451e23
push 0x405324
push ebx
push ebx
push esi
call fcn.0044f2af
add esp, 0x10
mov eax, 0x80004005
jmp 0x451ec1
and dword [ebp + 0xc], 0
cmp dword [ebp + 0x14], 0
jbe 0x451e23
mov edx, dword [ebp + 0xc]
mov ecx, dword [esi + 8]
mov ebx, dword [edi + 0x10]
mov eax, dword [ecx + 0x1c]
shl edx, 2
mov ebx, dword [edx + ebx]
mov ebx, dword [eax + ebx*4]
mov dword [ebp + 0x18], ebx
mov ebx, dword [edi + 8]
push 0
mov dword [ebp + 0x28], edx
mov edx, dword [edx + ebx]
mov ebx, dword [eax + edx*4]
push 0x80000000
push edx
call fcn.00490d38
test eax, eax
jne 0x45192d
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [ebp - 0x44], eax
mov ecx, ebx
mov edx, 0x92
and ecx, edx
xor eax, eax
or eax, ecx
je 0x451868
and dword [ebp + 0x1c], 0
mov dword [ebp + 0x20], edx
jmp 0x451899
mov ecx, ebx
and ecx, 0x49
xor eax, eax
or eax, ecx
je 0x451880
and dword [ebp + 0x1c], 0
mov dword [ebp + 0x20], 0x49
jmp 0x451899
mov eax, dword [ebp - 0x44]
and eax, 0x80000000
xor ecx, ecx
or eax, ecx
je 0x4518be
mov dword [ebp + 0x1c], 0x80000000
and dword [ebp + 0x20], 0
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, ecx
and ebx, edx
xor eax, eax
or eax, ebx
jne 0x4518f4
mov edx, ecx
and edx, 0x49
or eax, edx
je 0x4518d3
push 0x49
xor eax, eax
pop edx
jmp 0x4518fc
mov ecx, 0x124
xor eax, eax
and dword [ebp + 0x1c], eax
and ebx, ecx
or eax, ebx
je 0x451895
mov dword [ebp + 0x20], ecx
jmp 0x451899
mov eax, dword [ebp - 0x20]
mov edx, 0x80000000
and eax, edx
xor ebx, ebx
or eax, ebx
je 0x4518e7
mov eax, edx
jmp 0x4518fa
mov edx, 0x124
and ecx, edx
xor eax, eax
or eax, ecx
je 0x4518f8
xor eax, eax
jmp 0x4518fc
xor eax, eax
xor edx, edx
cmp dword [ebp + 0x1c], eax
jne 0x451906
cmp dword [ebp + 0x20], edx
je 0x45191e
mov eax, dword [esi + 8]
test dword [eax + 0x98], 0x200000
je 0x45191e
mov eax, dword [ebp + 0x18]
or dword [eax + 0x2c], 0xffffffff
jmp 0x45192d
mov eax, dword [edi + 8]
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + eax]
mov ecx, dword [ebp + 0x18]
mov dword [ecx + 0x2c], eax
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x14]
jb 0x45180f
jmp 0x451e23
cmp ecx, 0x20700000
je 0x451dac
cmp ecx, 0x30000000
je 0x451bb8
cmp ecx, 0x30100000
je 0x4519eb
cmp ecx, 0x50000000
jne 0x451e23
mov ecx, dword [edi + 0x10]
mov edx, dword [esi + 8]
mov ecx, dword [ecx]
mov edx, dword [edx + 0x1c]
mov ecx, dword [edx + ecx*4]
and eax, 0xfffff
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x18], 0
jbe 0x4519d1
mov ebx, dword [edi + 8]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x1c]
mov dword [ebp + 0xc], ebx
lea ebx, [ebx + eax*4]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov eax, dword [ecx + eax*4]
mov edx, dword [ebx]
mov eax, dword [eax]
mov edx, dword [ecx + edx*4]
and eax, dword [edx]
xor edx, edx
and eax, 2
or eax, edx
je 0x4519ce
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
add dword [ebp + 0xc], 4
add ebx, 4
cmp eax, dword [ebp + 0x28]
jb 0x4519a2
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x28]
cmp dword [ebp + 0x18], eax
jne 0x451e23
mov eax, dword [ecx + 4]
or dword [ecx], 2
mov dword [ecx + 4], eax
jmp 0x451e23
and dword [ebp + 0x18], 0
cmp dword [ebp + 0x14], 0
jbe 0x451e23
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x1c]
mov ebx, dword [ebp + 0x18]
mov ecx, dword [edi + 0x10]
mov eax, dword [edi]
shl ebx, 2
mov ecx, dword [ebx + ecx]
mov ecx, dword [edx + ecx*4]
mov dword [ebp + 0x28], ecx
mov ecx, dword [edi + 8]
mov ebx, dword [ebx + ecx]
mov ebx, dword [edx + ebx*4]
mov dword [ebp + 0xc], ebx
mov ebx, dword [ebp + 0x18]
and eax, 0xfffff
add ebx, eax
shl ebx, 2
mov dword [ebp - 0x10], ebx
mov ebx, dword [ecx + ebx]
mov ebx, dword [edx + ebx*4]
mov dword [ebp + 0x20], ebx
mov ebx, dword [ebp + 0x18]
lea ebx, [ebx + eax*2]
shl ebx, 2
mov eax, dword [ecx + ebx]
mov eax, dword [edx + eax*4]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ecx]
and eax, 0x800
xor edx, edx
or eax, edx
je 0x451b9f
lea eax, [ebp - 0x20]
push eax
call fcn.00493f0b
cmp dword [ebp - 0x20], 0
je 0x451a7e
mov ecx, dword [ebp + 0x20]
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + eax]
mov dword [ebp + 0xc], ecx
jmp 0x451a8d
mov eax, dword [ebp - 4]
mov dword [ebp + 0xc], eax
mov eax, dword [edi + 8]
mov eax, dword [ebx + eax]
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
mov eax, dword [esi + 8]
test dword [eax + 0x98], 0x200000
je 0x451bb3
mov edx, dword [ecx + 4]
mov ebx, dword [ecx]
mov ecx, edx
and ecx, 0x92
xor eax, eax
or eax, ecx
je 0x451ac3
and dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0x92
jmp 0x451b08
mov ecx, edx
and ecx, 0x49
xor eax, eax
or eax, ecx
je 0x451adb
and dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0x49
jmp 0x451b08
mov eax, 0x80000000
and ebx, eax
xor ecx, ecx
or ebx, ecx
je 0x451af0
and dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], eax
jmp 0x451b08
mov ebx, 0x124
and edx, ebx
xor ecx, ecx
xor eax, eax
or eax, edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], ebx
jne 0x451b08
mov dword [ebp - 0x40], ecx
mov ebx, dword [ebp + 0x28]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x28], eax
mov ecx, edx
and ecx, 0x92
xor eax, eax
or eax, ecx
je 0x451b2a
xor eax, eax
mov ecx, 0x92
jmp 0x451b66
mov ecx, edx
and ecx, 0x49
xor eax, eax
or eax, ecx
je 0x451b3c
push 0x49
xor eax, eax
pop ecx
jmp 0x451b66
mov eax, dword [ebp - 0x28]
and eax, 0x80000000
xor ecx, ecx
or eax, ecx
je 0x451b51
mov eax, 0x80000000
jmp 0x451b64
mov ecx, 0x124
and edx, ecx
xor eax, eax
or eax, edx
je 0x451b62
xor eax, eax
jmp 0x451b66
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 0x44], eax
jne 0x451b9f
cmp dword [ebp - 0x40], ecx
jne 0x451b9f
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x20]
mov dword [ebx + 0x2c], eax
lea eax, [ebp - 0xc0]
push eax
call fcn.00494142
lea eax, [ebp - 0xc0]
push eax
mov ecx, ebx
call fcn.00493d04
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
and eax, 0x27f
or dword [ebx], eax
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x4519f9
jmp 0x451e23
mov ebx, dword [ebp + 0x28]
jmp 0x451b73
and dword [ebp + 0x18], 0
cmp dword [ebp + 0x14], 0
jbe 0x451e23
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x1c]
mov ebx, dword [ebp + 0x18]
mov ecx, dword [edi + 0x10]
mov eax, dword [edi]
shl ebx, 2
mov ecx, dword [ecx + ebx]
mov ecx, dword [edx + ecx*4]
mov dword [ebp + 0x28], ecx
mov ecx, dword [edi + 8]
mov ebx, dword [ecx + ebx]
mov ebx, dword [edx + ebx*4]
mov dword [ebp + 0xc], ebx
mov ebx, dword [ebp + 0x18]
and eax, 0xfffff
add ebx, eax
shl ebx, 2
mov dword [ebp - 0x10], ebx
mov ebx, dword [ecx + ebx]
mov ebx, dword [edx + ebx*4]
mov dword [ebp + 0x20], ebx
mov ebx, dword [ebp + 0x18]
lea ebx, [ebx + eax*2]
shl ebx, 2
mov eax, dword [ecx + ebx]
mov eax, dword [edx + eax*4]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ecx]
and eax, 0x1000
xor edx, edx
or eax, edx
je 0x451d96
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00493e5d
fld qword [ebp - 0x20]
fstp dword [ebp + 0xc]
fld dword [ebp + 0xc]
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x451c61
mov ecx, dword [ebp + 0x20]
fstp st(0)
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + eax]
mov dword [ebp + 0xc], ecx
jmp 0x451c84
fld qword [ebp - 0x28]
fstp dword [ebp + 0xc]
fcomp dword [ebp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x451d96
mov eax, dword [ebp - 4]
mov dword [ebp + 0xc], eax
mov eax, dword [edi + 8]
mov eax, dword [ebx + eax]
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
mov eax, dword [esi + 8]
test dword [eax + 0x98], 0x200000
je 0x451da7
mov edx, dword [ecx + 4]
mov ebx, dword [ecx]
mov ecx, edx
and ecx, 0x92
xor eax, eax
or eax, ecx
je 0x451cba
and dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0x92
jmp 0x451cff
mov ecx, edx
and ecx, 0x49
xor eax, eax
or eax, ecx
je 0x451cd2
and dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0x49
jmp 0x451cff
mov eax, 0x80000000
and ebx, eax
xor ecx, ecx
or ebx, ecx
je 0x451ce7
and dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], eax
jmp 0x451cff
mov ebx, 0x124
and edx, ebx
xor ecx, ecx
xor eax, eax
or eax, edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], ebx
jne 0x451cff
mov dword [ebp - 0x40], ecx
mov ebx, dword [ebp + 0x28]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x18], eax
mov ecx, edx
and ecx, 0x92
xor eax, eax
or eax, ecx
je 0x451d21
xor eax, eax
mov ecx, 0x92
jmp 0x451d5d
mov ecx, edx
and ecx, 0x49
xor eax, eax
or eax, ecx
je 0x451d33
push 0x49
xor eax, eax
pop ecx
jmp 0x451d5d
mov eax, dword [ebp - 0x18]
and eax, 0x80000000
xor ecx, ecx
or eax, ecx
je 0x451d48
mov eax, 0x80000000
jmp 0x451d5b
mov ecx, 0x124
and edx, ecx
xor eax, eax
or eax, edx
je 0x451d59
xor eax, eax
jmp 0x451d5d
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 0x44], eax
jne 0x451d96
cmp dword [ebp - 0x40], ecx
jne 0x451d96
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x20]
mov dword [ebx + 0x2c], eax
lea eax, [ebp - 0xc0]
push eax
call fcn.00494142
lea eax, [ebp - 0xc0]
push eax
mov ecx, ebx
call fcn.00493d04
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
and eax, 0x27f
or dword [ebx], eax
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x451bc6
jmp 0x451e23
mov ebx, dword [ebp + 0x28]
jmp 0x451d6a
and dword [ebp + 0x18], 0
cmp dword [ebp + 0x14], 0
jbe 0x451e23
mov edx, dword [ebp + 0x18]
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 0xc]
add ebx, dword [ebp + 0x18]
shl edx, 2
mov ecx, dword [ecx + edx]
mov ecx, dword [eax + ecx*4]
mov dword [ebp + 0xc], ecx
mov ecx, dword [edi + 8]
mov edx, dword [ecx + edx]
mov edx, dword [eax + edx*4]
mov ecx, dword [ecx + ebx*4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [edx]
and ecx, dword [eax]
mov edx, dword [edx + 4]
and edx, dword [eax + 4]
mov eax, ecx
mov dword [ebp + 0x20], edx
and eax, 1
xor edx, edx
or eax, edx
je 0x451e03
mov eax, dword [ebp + 0xc]
or dword [eax], 0x17
jmp 0x451e12
and ecx, 2
xor eax, eax
or ecx, eax
je 0x451e18
mov eax, dword [ebp + 0xc]
or dword [eax], 2
mov ecx, dword [eax + 4]
mov dword [eax + 4], ecx
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x451db6
cmp dword [ebp + 0x24], 0
je 0x451e93
cmp dword [ebp - 0x2c], 0xffffffff
je 0x451e93
push dword [ebp + 0x14]
mov ecx, esi
call fcn.0044db57
push dword [ebp + 0x14]
mov ecx, esi
push eax
mov dword [ebp + 0x18], eax
call fcn.0044dc99
mov ebx, eax
test ebx, ebx
jl 0x451ea4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
mov eax, dword [ebp + 0x14]
xor eax, dword [ebp - 0x2c]
push dword [ebp + 0x10]
and eax, 0xfffff
push dword [ebp + 0x18]
xor eax, dword [ebp - 0x2c]
mov ecx, esi
push eax
push dword [ebp + 8]
call fcn.0044fa2b
mov ebx, eax
test ebx, ebx
jl 0x451ea4
mov edx, dword [ebp + 0x14]
test edx, edx
jbe 0x451e93
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x18]
sub ecx, eax
mov ebx, dword [ecx + eax]
mov dword [eax], ebx
add eax, 4
dec edx
jne 0x451e88
mov eax, dword [ebp + 8]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0xa0]
mov dword [edi + 0x3c], eax
xor ebx, ebx
push dword [ebp - 0x80]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x3c]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x38]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret 0x24