Function at 0x453cf0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x90
push ebx
push ebp
xor ebx, ebx
xor eax, eax
push esi
push edi
mov edi, dword [esp + 0xa4]
cmp dword [edi + 0x44], ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov eax, dword [edi]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x50], eax
jne 0x455729
cmp byte [eax + 0x36], bl
jne 0x455729
mov eax, dword [esp + 0xa8]
push edi
call fcn.0043c890
mov ebp, eax
add esp, 4
cmp ebp, ebx
mov dword [esp + 0x14], ebp
je 0x455729
mov esi, dword [ebp + 0x44]
mov ecx, dword [edi]
call fcn.00449b60
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x70]
push eax
push ecx
push 0x6b
mov edx, ebp
mov eax, edi
call fcn.00453370
xor edx, edx
add esp, 0xc
cmp dword [ebp + 0x1c], ebx
push ebp
setne dl
push edi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x70], edx
call fcn.004395f0
add esp, 8
test eax, eax
jne 0x455729
mov eax, dword [esp + 0x70]
push eax
mov ecx, ebp
mov eax, edi
call fcn.0043c8f0
add esp, 4
test eax, eax
jne 0x455729
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
call fcn.00406f20
cmp eax, ebx
mov dword [esp + 0x30], eax
je 0x455729
xor eax, eax
cmp dword [ebp + 8], ebx
jle 0x453dff
mov ecx, dword [esp + 0x30]
jmp 0x453df0
mov dword [ecx + eax*4], 0xffffffff
add eax, 1
cmp eax, dword [ebp + 8]
jl 0x453df0
mov eax, dword [edi + 0x48]
mov edx, dword [esp + 0xa8]
mov dword [edx + 0x28], eax
add dword [edi + 0x48], 1
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x453e2d
mov edi, edi
add ecx, 1
mov dword [edi + 0x48], ecx
mov eax, dword [eax + 0x14]
cmp eax, ebx
jne 0x453e20
mov ecx, dword [esp + 0xac]
xor eax, eax
cmp dword [ecx], ebx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x1c], ebx
jle 0x45406a
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0xac]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x24]
mov ebx, dword [eax + ecx]
lea esi, [esp + 0x7c]
call fcn.0042f6d0
test eax, eax
jne 0x455727
xor ebx, ebx
cmp dword [ebp + 8], ebx
mov dword [esp + 0x18], ebx
jle 0x453f60
mov edx, dword [esp + 0xac]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + ecx + 4]
mov esi, dword [ebp + 0xc]
add eax, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], edx
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
mov edx, dword [esp + 0x58]
je 0x453f15
lea ecx, [ecx]
movzx ebx, byte [edx]
movzx eax, al
mov al, byte [eax + 0x46e7f8]
cmp al, byte [ebx + 0x46e7f8]
jne 0x453f11
mov al, byte [ecx + 1]
add ecx, 1
add edx, 1
test al, al
jne 0x453ef0
mov ebx, dword [esp + 0x18]
movzx ecx, byte [ecx]
movzx eax, byte [ecx + 0x46e7f8]
movzx ecx, byte [edx]
movzx edx, byte [ecx + 0x46e7f8]
sub eax, edx
je 0x453f3e
add ebx, 1
add esi, 0x18
cmp ebx, dword [ebp + 8]
mov dword [esp + 0x18], ebx
jl 0x453ee1
jmp 0x453f60
cmp ebx, dword [ebp + 4]
jne 0x453f55
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
mov dword [esp + 0x38], 1
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov dword [edx + ebx*4], eax
cmp ebx, dword [ebp + 8]
jl 0x454004
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0x24]
mov esi, dword [edx + eax + 4]
mov cl, byte [esi]
test cl, cl
lea ebp, [edx + eax]
mov eax, esi
mov edx, str._ROWID_
je 0x453fb5
jmp 0x453f90
movzx ebx, byte [edx]
movzx ecx, cl
mov cl, byte [ecx + 0x46e7f8]
cmp cl, byte [ebx + 0x46e7f8]
jne 0x453fb1
mov cl, byte [eax + 1]
add eax, 1
add edx, 1
test cl, cl
jne 0x453f90
mov ebx, dword [esp + 0x18]
movzx edx, byte [edx]
movzx ecx, byte [edx + 0x46e7f8]
movzx edx, byte [eax]
movzx eax, byte [edx + 0x46e7f8]
sub eax, ecx
je 0x453ff1
mov edx, str.ROWID
mov ecx, esi
call fcn.00408f60
test eax, eax
je 0x453ff1
mov edx, 0x474f2c
mov ecx, esi
call fcn.00408f60
test eax, eax
jne 0x45408e
mov ecx, dword [ebp]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x38], 1
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x44]
shl edx, 4
mov edx, dword [edx + ecx]
mov ecx, dword [ebp + 0xc]
push edx
lea eax, [ebx + ebx*2]
mov edx, dword [ecx + eax*8]
mov eax, dword [ebp]
push edx
push eax
push 0x17
mov eax, edi
call fcn.00437030
add esp, 0x10
cmp eax, 1
je 0x455727
cmp eax, 2
jne 0x454049
mov ecx, dword [esp + 0x30]
mov dword [ecx + ebx*4], 0xffffffff
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xac]
add dword [esp + 0x24], 0x14
add eax, 1
cmp eax, dword [edx]
mov dword [esp + 0x1c], eax
jl 0x453e91
xor ebx, ebx
mov ecx, dword [edi]
test dword [ecx + 0x18], 0x4000000
je 0x4540ba
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
push edx
push eax
push ebp
call fcn.00441a10
add esp, 0xc
mov dword [esp + 0x24], eax
jmp 0x4540be
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0x1c]
mov edx, dword [ecx + 8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 4]
push eax
push str.no_such_column:__s
call fcn.00408e60
add esp, 8
mov byte [edi + 0x11], 1
jmp 0x455727
mov dword [esp + 0x24], ebx
mov eax, dword [ebp + 0x10]
xor ecx, ecx
cmp eax, ebx
je 0x4540ee
mov eax, dword [eax + 0x14]
add ecx, 1
cmp eax, ebx
jne 0x4540c7
cmp ecx, ebx
jle 0x4540ee
mov esi, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
call fcn.00406f20
cmp eax, ebx
mov dword [esp + 0x48], eax
je 0x455729
mov esi, dword [ebp + 0x10]
cmp esi, ebx
je 0x454167
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x4c], ecx
cmp dword [esp + 0x24], ebx
jne 0x45414c
cmp dword [esp + 0x38], ebx
jne 0x45414c
mov edx, dword [esi + 0x24]
xor ebp, ebp
xor eax, eax
cmp edx, ebx
jle 0x454153
mov ecx, dword [esi + 4]
mov edi, dword [esp + 0x30]
jmp 0x454120
mov ebx, dword [ecx]
cmp dword [edi + ebx*4], 0
jge 0x45413d
add eax, 1
add ecx, 4
cmp eax, edx
jl 0x454120
mov edi, dword [esp + 0xa4]
xor ebx, ebx
jmp 0x454153
mov edi, dword [esp + 0xa4]
add dword [edi + 0x4c], 1
xor ebx, ebx
jmp 0x454150
add dword [edi + 0x4c], 1
mov ebp, dword [edi + 0x4c]
mov eax, dword [esp + 0x4c]
mov dword [eax], ebp
mov esi, dword [esi + 0x14]
add eax, 4
cmp esi, ebx
mov dword [esp + 0x4c], eax
jne 0x4540fd
mov eax, dword [esp + 0xa4]
mov ebp, dword [eax + 8]
cmp ebp, ebx
jne 0x45420b
mov esi, dword [eax]
mov ecx, 0xc8
call fcn.00406f20
mov edi, eax
cmp edi, ebx
je 0x454299
push 0xc8
push ebx
push edi
call sub.MSVCR80.dll_memset
mov dword [edi], esi
mov eax, dword [esi + 4]
add esp, 0xc
cmp eax, ebx
je 0x4541aa
mov dword [eax + 0x38], edi
mov edx, dword [esi + 4]
mov dword [edi + 0x3c], edx
mov dword [edi + 0x38], ebx
mov dword [esi + 4], edi
mov dword [edi + 0x30], 0x26bceaa5
cmp edi, ebx
mov eax, dword [esp + 0xa4]
mov dword [eax + 8], edi
mov ebp, edi
je 0x455729
mov esi, dword [edi + 0x1c]
cmp dword [edi + 0x20], esi
jg 0x4541e2
call fcn.00421ac0
test eax, eax
jne 0x454204
mov edx, dword [edi + 4]
add dword [edi + 0x1c], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov byte [eax], 0x94
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, dword [esp + 0xa4]
cmp byte [eax + 0x12], bl
jne 0x454214
mov byte [ebp + 0x5e], 1
mov edi, dword [eax + 0x1a8]
cmp edi, ebx
jne 0x454220
mov edi, eax
mov esi, dword [esp + 0xa4]
mov ebx, dword [esp + 0x44]
mov eax, esi
call fcn.0043b980
mov edx, 1
or byte [edi + 0x17], dl
mov ecx, ebx
mov eax, edx
shl eax, cl
mov ecx, dword [esp + 0x14]
or dword [edi + 0x154], eax
test byte [ecx + 0x22], 0x10
je 0x4542a0
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0xb8]
push eax
mov eax, dword [esp + 0xb8]
push edx
push ecx
push eax
push esi
call fcn.004557a0
add esp, 0x20
xor eax, eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa8], eax
jmp 0x455727
xor edi, edi
jmp 0x4541bd
mov eax, dword [esi + 0x4c]
mov edi, dword [esp + 0x54]
add eax, 1
mov dword [esp + 0x4c], eax
add eax, 1
test edi, edi
mov dword [esi + 0x4c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
jne 0x4542c6
cmp dword [esp + 0x24], edi
je 0x4542d5
lea ebx, [eax + 1]
mov dword [esp + 0x60], ebx
mov ebx, dword [ecx + 8]
add ebx, eax
mov dword [esi + 0x4c], ebx
cmp dword [esp + 0x38], 0
jne 0x4542e6
test edi, edi
jne 0x4542e6
cmp dword [esp + 0x24], edi
je 0x4542f0
add dword [esi + 0x4c], edx
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x34], edx
mov eax, dword [esi + 0x4c]
lea edx, [eax + 1]
mov dword [esp + 0x3c], edx
mov edx, dword [ecx + 8]
add edx, eax
cmp dword [esp + 0x68], 0
mov dword [esi + 0x4c], edx
je 0x454339
mov eax, dword [esi + 0x1fc]
mov edx, dword [ecx]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x20]
push eax
mov dword [esi + 0x1fc], edx
mov edx, dword [esp + 0xb4]
push edx
push ecx
push esi
mov dword [esp + 0x88], esi
call fcn.0043c980
add esp, 0x10
mov ebx, dword [esp + 0xb0]
lea esi, [esp + 0x7c]
call fcn.0042f6d0
test eax, eax
jne 0x455727
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x454364
mov edi, ebp
call fcn.00421ac0
test eax, eax
jne 0x454392
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x4c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x2c]
xor ebx, ebx
mov byte [eax], 0xa
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x454394
xor ebx, ebx
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
push 4
push ebx
push ebx
push edx
push eax
push ecx
call fcn.0045c760
mov esi, eax
add esp, 0x18
cmp esi, ebx
mov dword [esp + 0x18], esi
je 0x455727
movzx edx, byte [esi + 6]
mov ebx, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], ebx
mov dword [esp + 0x6c], edx
jg 0x4543e1
mov edi, ebp
call fcn.00421ac0
test eax, eax
jne 0x45440f
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x20]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x2c]
xor ebx, ebx
mov byte [eax], 0x41
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x454411
xor ebx, ebx
cmp dword [esp + 0x6c], ebx
jne 0x454458
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x45442a
mov edi, ebp
call fcn.00421ac0
test eax, eax
jne 0x454454
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x4c]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x2c]
mov byte [eax], 0x70
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov esi, dword [esp + 0x18]
push esi
call fcn.0045d1e0
mov eax, dword [esp + 0x54]
add esp, 4
test dword [eax + 0x18], 0x1000
je 0x4544c3
mov ecx, dword [esp + 0xa4]
cmp dword [ecx + 0x1ac], ebx
jne 0x4544c3
mov eax, ecx
add dword [eax + 0x4c], 1
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
mov edx, dword [eax + 0x4c]
mov dword [esp + 0x64], edx
jg 0x45449d
mov edi, ebp
call fcn.00421ac0
test eax, eax
jne 0x4544c3
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x64]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
cmp dword [esp + 0x68], ebx
jne 0x454636
cmp dword [esp + 0x6c], ebx
mov esi, dword [esp + 0x14]
jne 0x4544f4
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
push 0x28
push eax
push ecx
mov ecx, dword [esp + 0xb0]
mov eax, esi
call fcn.004426f0
add esp, 0xc
mov ecx, 5
cmp dword [esp + 0xb4], ecx
je 0x45451e
mov eax, dword [esi + 0x10]
cmp eax, ebx
mov dword [esp + 0x5c], ebx
je 0x454526
lea ecx, [ecx]
cmp byte [eax + 0x2c], cl
je 0x45451e
mov eax, dword [eax + 0x14]
cmp eax, ebx
jne 0x454510
jmp 0x454526
mov dword [esp + 0x5c], 1
mov eax, dword [esi + 0x10]
cmp eax, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
je 0x454636
lea esp, [esp]
cmp dword [esp + 0x5c], ebx
jne 0x454557
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
cmp dword [edx + eax*4], ebx
jle 0x45461e
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xa4]
push esi
push ecx
call fcn.0043be10
mov edx, dword [esi + 0x28]
mov esi, dword [ebp + 0x1c]
add esp, 8
cmp dword [ebp + 0x20], esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x28], edx
jg 0x454591
mov edi, ebp
call fcn.00421ac0
test eax, eax
je 0x454591
mov esi, 1
jmp 0x4545c7
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x20]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x1c]
lea edx, [edx + ecx + 1]
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x44]
mov byte [eax], 0x28
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov ecx, dword [ebp + 4]
cmp ecx, ebx
mov edi, dword [ebp]
mov eax, esi
je 0x454610
cmp byte [edi + 0x36], bl
jne 0x454610
cmp esi, ebx
jge 0x4545e2
mov eax, dword [ebp + 0x1c]
sub eax, 1
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
movsx eax, byte [esi + 1]
mov ecx, dword [esi + 0x10]
call fcn.004220f0
mov eax, dword [esp + 0x58]
cmp eax, ebx
mov dword [esi + 0x10], ebx
jne 0x454607
mov dword [esi + 0x10], ebx
mov byte [esi + 1], bl
jmp 0x45461e
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xfa
jmp 0x45461e
mov ecx, dword [esp + 0x58]
mov eax, 0xfffffff0
call fcn.004220f0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
add dword [esp + 0x1c], 1
cmp eax, ebx
mov dword [esp + 0x18], eax
jne 0x454540
cmp dword [esp + 0x6c], ebx
mov esi, dword [ebp + 0x1c]
je 0x4546e5
cmp dword [ebp + 0x20], esi
jg 0x45465e
mov edi, ebp
call fcn.00421ac0
test eax, eax
je 0x45465e
mov ecx, 1
mov dword [esp + 0x44], ecx
jmp 0x45468a
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x2c]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
mov byte [eax], 0x4a
mov byte [eax + 3], bl
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov dword [esp + 0x44], esi
mov ecx, esi
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x4546a8
mov edi, ebp
call fcn.00421ac0
test eax, eax
mov ecx, dword [esp + 0x44]
je 0x4546a8
mov esi, 1
jmp 0x4546ca
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 1
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
cmp ecx, ebx
mov dword [esp + 0x18], esi
jl 0x45472d
mov eax, dword [ebp + 0x1c]
cmp eax, ecx
jbe 0x45472d
mov edx, dword [ebp + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
jmp 0x45472d
cmp dword [ebp + 0x20], esi
jg 0x4546ff
mov edi, ebp
call fcn.00421ac0
test eax, eax
je 0x4546ff
mov dword [esp + 0x18], 1
jmp 0x45472d
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x4c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x2c]
mov byte [eax], 0x71
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov dword [esp + 0x18], esi
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, esi
jg 0x45479a
cmp eax, ebx
je 0x45473f
add eax, eax
jmp 0x454744
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov edi, eax
test edi, edi
je 0x4547ca
mov eax, dword [ebp]
test eax, eax
je 0x45477c
cmp edi, dword [eax + 0x104]
jb 0x45477c
cmp edi, dword [eax + 0x108]
jae 0x45477c
movzx ecx, word [eax + 0xe8]
jmp 0x454788
push edi
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 0x20], edx
mov dword [ebp + 4], edi
xor ebx, ebx
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x20]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x18]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x2c]
mov byte [eax], 0x36
mov byte [eax + 3], bl
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x4547cc
xor ebx, ebx
cmp dword [esp + 0x38], ebx
je 0x4548cb
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x454829
cmp byte [eax], 0x84
jne 0x454829
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0xa4]
mov edi, dword [eax + 8]
mov esi, dword [edi + 0x1c]
cmp dword [edi + 0x20], esi
mov dword [esp + 0x28], edx
jg 0x454809
call fcn.00421ac0
test eax, eax
jne 0x454892
mov edx, dword [edi + 4]
add dword [edi + 0x1c], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
mov byte [eax], 0xe
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
jmp 0x454886
mov esi, dword [esp + 0x34]
push esi
push eax
mov eax, dword [esp + 0xac]
push eax
call fcn.00432490
mov ecx, eax
add esp, 0xc
cmp ecx, esi
mov dword [esp + 0x28], ecx
je 0x454892
mov edx, dword [esp + 0xa4]
mov edi, dword [edx + 8]
cmp edi, ebx
je 0x454892
mov esi, dword [edi + 0x1c]
cmp dword [edi + 0x20], esi
jg 0x45486c
call fcn.00421ac0
test eax, eax
jne 0x454892
mov ecx, dword [esp + 0x28]
mov edx, dword [edi + 4]
add dword [edi + 0x1c], 1
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x34]
mov byte [eax], 0xf
mov dword [eax + 8], ecx
mov byte [eax + 1], bl
mov dword [eax + 0x10], ebx
mov dword [eax + 0xc], ebx
mov byte [eax + 3], bl
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x4548a5
mov edi, ebp
call fcn.00421ac0
test eax, eax
jne 0x4548cb
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x34]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x15
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
cmp dword [esp + 0x24], ebx
jne 0x454923
cmp dword [esp + 0x54], ebx
je 0x454a73
mov dword [esp + 0x40], ebx
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0x14]
push ecx
push 3
push ebx
push edx
push eax
mov eax, dword [esp + 0x68]
mov ebx, edi
call fcn.00453ba0
mov edx, dword [esp + 0x54]
or edx, eax
xor esi, esi
add esp, 0x14
cmp dword [edi + 8], esi
mov dword [esp + 0x40], edx
jle 0x4549cd
jmp 0x454944
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xa4]
push edx
push eax
call fcn.004418b0
add esp, 8
mov dword [esp + 0x40], eax
jmp 0x4548df
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
cmp dword [ecx + esi*4], 0
jl 0x4549a9
cmp edx, 0xffffffff
je 0x4549a9
cmp esi, 0x20
jge 0x454965
mov eax, 1
mov ecx, esi
shl eax, cl
test edx, eax
jne 0x4549a9
mov ebx, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], ebx
jg 0x45497c
mov edi, ebp
call fcn.00421ac0
test eax, eax
mov edi, dword [esp + 0x14]
jne 0x4549c1
mov edx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x60]
xor ecx, ecx
add edx, esi
mov byte [eax], 0xa
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
jmp 0x4549c1
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x60]
push esi
push ecx
lea ebx, [esi + eax]
push edi
mov eax, ebp
call fcn.00432180
add esp, 0xc
add esi, 1
cmp esi, dword [edi + 8]
jl 0x454940
cmp dword [esp + 0x38], 0
jne 0x454a73
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, edi
jg 0x454a47
test eax, eax
je 0x4549ea
add eax, eax
jmp 0x4549ef
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov esi, eax
test esi, esi
je 0x454a73
mov eax, dword [ebp]
xor ebx, ebx
cmp eax, ebx
je 0x454a29
cmp esi, dword [eax + 0x104]
jb 0x454a29
cmp esi, dword [eax + 0x108]
jae 0x454a29
movzx ecx, word [eax + 0xe8]
jmp 0x454a35
push esi
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 0x20], edx
mov dword [ebp + 4], esi
jmp 0x454a49
xor ebx, ebx
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x2c]
lea edx, [edi + edi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x34]
mov byte [eax], 0xe
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x58]
push 1
push 1
push ecx
push edx
call fcn.00453ba0
mov ecx, dword [esp + 0x50]
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0x74], eax
mov eax, dword [ebx + 8]
lea edx, [ecx + eax - 1]
mov eax, dword [ebp + 0x20]
add esp, 0x14
cmp eax, edi
mov dword [esp + 0x28], edx
jg 0x454b21
test eax, eax
je 0x454ac4
add eax, eax
jmp 0x454ac9
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov esi, eax
xor ebx, ebx
cmp esi, ebx
je 0x454b4d
mov eax, dword [ebp]
cmp eax, ebx
je 0x454b03
cmp esi, dword [eax + 0x104]
jb 0x454b03
cmp esi, dword [eax + 0x108]
jae 0x454b03
movzx ecx, word [eax + 0xe8]
jmp 0x454b0f
push esi
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 0x20], edx
mov dword [ebp + 4], esi
jmp 0x454b23
xor ebx, ebx
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x3c]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x28]
mov byte [eax], 0xa
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov edx, dword [esp + 0x14]
cmp dword [edx + 8], ebx
mov dword [esp + 0x1c], ebx
jle 0x454dc9
mov ecx, ebx
mov eax, edx
cmp ecx, dword [eax + 4]
je 0x454db1
mov eax, dword [esp + 0x30]
mov eax, dword [eax + ecx*4]
cmp eax, ebx
jl 0x454cd3
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xac]
mov eax, dword [eax + 8]
mov eax, dword [eax + edx*4]
cmp eax, ebx
je 0x454c50
cmp byte [eax], 0x84
jne 0x454c50
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0xa4]
mov edi, dword [eax + 8]
mov esi, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
cmp eax, esi
mov dword [esp + 0x28], edx
jg 0x454c1f
cmp eax, ebx
je 0x454bbe
add eax, eax
jmp 0x454bc3
mov eax, 0x33
mov ebx, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov ebx, eax
test ebx, ebx
je 0x454daf
mov eax, dword [edi]
test eax, eax
je 0x454bfd
cmp ebx, dword [eax + 0x104]
jb 0x454bfd
cmp ebx, dword [eax + 0x108]
jae 0x454bfd
movzx ecx, word [eax + 0xe8]
jmp 0x454c09
push ebx
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [esp + 0x1c]
shr edx, 4
mov dword [edi + 4], ebx
mov dword [edi + 0x20], edx
xor ebx, ebx
mov eax, dword [edi + 4]
add dword [edi + 0x1c], 1
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x28]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x3c]
add edx, ecx
mov byte [eax], 0xe
mov byte [eax + 3], bl
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x454db1
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
lea esi, [ecx + edx]
push esi
push eax
mov eax, dword [esp + 0xac]
push eax
call fcn.00432490
add esp, 0xc
cmp eax, esi
mov dword [esp + 0x58], eax
je 0x454db1
mov ecx, dword [esp + 0xa4]
mov edi, dword [ecx + 8]
cmp edi, ebx
je 0x454db1
mov eax, dword [edi + 0x1c]
cmp dword [edi + 0x20], eax
mov dword [esp + 0x28], eax
jg 0x454ca8
call fcn.00421ac0
test eax, eax
jne 0x454db1
mov eax, dword [esp + 0x28]
add dword [edi + 0x1c], 1
mov ecx, dword [esp + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
mov byte [eax], 0xf
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x454db1
test dword [esp + 0x70], 1
je 0x454cf3
cmp ecx, 0x1f
jg 0x454cf3
mov edx, 1
shl edx, cl
test dword [esp + 0x60], edx
je 0x454db1
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, esi
jg 0x454d64
cmp eax, ebx
je 0x454d05
add eax, eax
jmp 0x454d0a
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov edi, eax
test edi, edi
je 0x454d92
mov eax, dword [ebp]
test eax, eax
je 0x454d42
cmp edi, dword [eax + 0x104]
jb 0x454d42
cmp edi, dword [eax + 0x108]
jae 0x454d42
movzx ecx, word [eax + 0xe8]
jmp 0x454d4e
push edi
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [esp + 0x1c]
shr edx, 4
mov dword [ebp + 0x20], edx
mov dword [ebp + 4], edi
xor ebx, ebx
mov edx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x20]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x3c]
add edx, ecx
mov byte [eax], 0x1d
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x454d94
xor ebx, ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
add ecx, eax
push ecx
push edx
push ebp
call fcn.00453c20
add esp, 0xc
jmp 0x454db1
xor ebx, ebx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ecx, 1
cmp ecx, dword [eax + 8]
mov dword [esp + 0x1c], ecx
jl 0x454b62
test byte [esp + 0x70], 1
je 0x45504a
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, esi
mov dword [esp + 0x28], ecx
jg 0x454e4c
cmp eax, ebx
je 0x454df1
add eax, eax
jmp 0x454df6
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov edi, eax
test edi, edi
je 0x454e78
mov eax, dword [ebp]
test eax, eax
je 0x454e2e
cmp edi, dword [eax + 0x104]
jb 0x454e2e
cmp edi, dword [eax + 0x108]
jae 0x454e2e
movzx ecx, word [eax + 0xe8]
jmp 0x454e3a
push edi
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 0x20], edx
mov dword [ebp + 4], edi
xor ebx, ebx
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x3c]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x28]
mov byte [eax], 0x1e
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x454e7a
xor ebx, ebx
mov esi, dword [esp + 0x14]
push ebp
mov eax, esi
call fcn.00442820
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x30]
add esp, 4
push eax
mov eax, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0xb0]
push esi
push 1
push eax
push 0x6b
push ecx
push edx
call fcn.00453b30
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
add esp, 0x24
cmp eax, edi
jg 0x454f2a
cmp eax, ebx
je 0x454ecf
add eax, eax
jmp 0x454ed4
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov ebx, eax
test ebx, ebx
je 0x454f5a
mov eax, dword [ebp]
test eax, eax
je 0x454f0c
cmp ebx, dword [eax + 0x104]
jb 0x454f0c
cmp ebx, dword [eax + 0x108]
jae 0x454f0c
movzx ecx, word [eax + 0xe8]
jmp 0x454f18
push ebx
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 4], ebx
mov dword [ebp + 0x20], edx
xor ebx, ebx
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x20]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x2c]
mov byte [eax], 0x36
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x454f5c
xor ebx, ebx
xor edi, edi
cmp dword [esi + 8], ebx
jle 0x45504a
mov eax, esi
lea esp, [esp]
mov ecx, dword [esp + 0x30]
cmp dword [ecx + edi*4], ebx
jge 0x45503e
cmp edi, dword [eax + 4]
je 0x45503e
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, esi
jg 0x454ff3
cmp eax, ebx
je 0x454f98
add eax, eax
jmp 0x454f9d
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov ebx, eax
test ebx, ebx
je 0x455021
mov eax, dword [ebp]
test eax, eax
je 0x454fd5
cmp ebx, dword [eax + 0x104]
jb 0x454fd5
cmp ebx, dword [eax + 0x108]
jae 0x454fd5
movzx ecx, word [eax + 0xe8]
jmp 0x454fe1
push ebx
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 4], ebx
mov dword [ebp + 0x20], edx
xor ebx, ebx
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x20]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x3c]
add edx, edi
mov byte [eax], 0x1d
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x455023
xor ebx, ebx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
add eax, edi
push eax
push ecx
push ebp
mov eax, edi
call fcn.00453c20
mov eax, dword [esp + 0x20]
add esp, 0xc
add edi, 1
cmp edi, dword [eax + 8]
jl 0x454f70
cmp dword [esp + 0x68], ebx
jne 0x455299
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
push ebx
push edx
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x40]
neg ecx
push 1
sbb ecx, ecx
and ecx, esi
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0xbc]
push eax
push ecx
push edi
push edx
call fcn.00444590
add esp, 0x28
cmp dword [esp + 0x24], ebx
je 0x4550b0
mov eax, dword [esp + 0xa4]
push ebx
push esi
push edi
push eax
call fcn.00441310
add esp, 0x10
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, edi
jg 0x455121
cmp eax, ebx
je 0x4550c2
add eax, eax
jmp 0x4550c7
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov ebx, eax
test ebx, ebx
je 0x455187
mov eax, dword [ebp]
test eax, eax
je 0x455103
cmp ebx, dword [eax + 0x104]
jb 0x455103
cmp ebx, dword [eax + 0x108]
jae 0x455103
movzx ecx, word [eax + 0xe8]
jmp 0x45510f
push ebx
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 4], ebx
mov dword [ebp + 0x20], edx
xor ebx, ebx
mov edx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x20]
mov byte [eax], 0x36
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xa4]
push edx
push eax
mov eax, dword [esp + 0x1c]
push ecx
call fcn.0043d2d0
add esp, 0xc
cmp dword [esp + 0x24], ebx
jne 0x455175
cmp dword [esp + 0x38], ebx
je 0x455215
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, esi
jg 0x4551eb
cmp eax, ebx
je 0x455190
add eax, eax
jmp 0x455195
mov edi, 1
xor ebx, ebx
jmp 0x455147
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov ebx, eax
test ebx, ebx
je 0x455213
mov eax, dword [ebp]
test eax, eax
je 0x4551cd
cmp ebx, dword [eax + 0x104]
jb 0x4551cd
cmp ebx, dword [eax + 0x108]
jae 0x4551cd
movzx ecx, word [eax + 0xe8]
jmp 0x4551d9
push ebx
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 4], ebx
mov dword [ebp + 0x20], edx
xor ebx, ebx
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x20]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x3b
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x455215
xor ebx, ebx
cmp edi, ebx
jl 0x45522a
mov eax, dword [ebp + 0x1c]
cmp eax, edi
jbe 0x45522a
mov ecx, dword [ebp + 4]
lea edx, [edi + edi*4]
mov dword [ecx + edx*4 + 8], eax
mov esi, dword [esp + 0x24]
cmp esi, ebx
je 0x45524d
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xa4]
push edx
push ebx
push eax
push ecx
call fcn.00441310
add esp, 0x10
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
push ebx
push ebx
push 1
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0xb8]
push ecx
push edx
push eax
call fcn.004457c0
add esp, 0x20
cmp esi, ebx
je 0x455299
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xac]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0xa4]
push ecx
push edx
call fcn.00442560
add esp, 8
mov eax, dword [esp + 0x50]
test dword [eax + 0x18], 0x1000
je 0x455358
mov ecx, dword [esp + 0xa4]
cmp dword [ecx + 0x1ac], ebx
jne 0x455358
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, esi
jg 0x45532a
cmp eax, ebx
je 0x4552cf
add eax, eax
jmp 0x4552d4
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov edi, eax
test edi, edi
je 0x455356
mov eax, dword [ebp]
test eax, eax
je 0x45530c
cmp edi, dword [eax + 0x104]
jb 0x45530c
cmp edi, dword [eax + 0x108]
jae 0x45530c
movzx ecx, word [eax + 0xe8]
jmp 0x455318
push edi
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 0x20], edx
mov dword [ebp + 4], edi
xor ebx, ebx
mov eax, dword [ebp + 4]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x64]
mov ecx, 1
add dword [ebp + 0x1c], ecx
mov byte [eax], 0x14
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x455358
xor ebx, ebx
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
push esi
push eax
mov eax, dword [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0xb4]
push 2
push eax
push 0x6b
push ecx
push edx
call fcn.00453b30
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
add esp, 0x24
cmp eax, edi
jg 0x4553fd
cmp eax, ebx
je 0x4553a2
add eax, eax
jmp 0x4553a7
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov ebx, eax
test ebx, ebx
je 0x455421
mov eax, dword [ebp]
test eax, eax
je 0x4553df
cmp ebx, dword [eax + 0x104]
jb 0x4553df
cmp ebx, dword [eax + 0x108]
jae 0x4553df
movzx ecx, word [eax + 0xe8]
jmp 0x4553eb
push ebx
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 4], ebx
mov dword [ebp + 0x20], edx
xor ebx, ebx
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 1
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x455423
xor ebx, ebx
cmp esi, ebx
jl 0x455438
mov eax, dword [ebp + 0x1c]
cmp eax, esi
jbe 0x455438
mov ecx, dword [ebp + 4]
lea edx, [esi + esi*4]
mov dword [ecx + edx*4 + 8], eax
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
cmp eax, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
je 0x45551e
nop
cmp dword [esp + 0x5c], ebx
jne 0x455467
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
cmp dword [eax + ecx*4], ebx
jle 0x455506
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, esi
jg 0x4554d4
cmp eax, ebx
je 0x455479
add eax, eax
jmp 0x45547e
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov edi, eax
test edi, edi
je 0x455504
mov eax, dword [ebp]
test eax, eax
je 0x4554b6
cmp edi, dword [eax + 0x104]
jb 0x4554b6
cmp edi, dword [eax + 0x108]
jae 0x4554b6
movzx ecx, word [eax + 0xe8]
jmp 0x4554c2
push edi
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 0x20], edx
mov dword [ebp + 4], edi
xor ebx, ebx
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x20]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + edx + 1]
mov byte [eax], 0x2d
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x455506
xor ebx, ebx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x14]
add dword [esp + 0x1c], 1
cmp eax, ebx
mov dword [esp + 0x18], eax
jne 0x455450
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, esi
jg 0x45558b
cmp eax, ebx
je 0x455530
add eax, eax
jmp 0x455535
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov edi, eax
test edi, edi
je 0x4555b3
mov eax, dword [ebp]
test eax, eax
je 0x45556d
cmp edi, dword [eax + 0x104]
jb 0x45556d
cmp edi, dword [eax + 0x108]
jae 0x45556d
movzx ecx, word [eax + 0xe8]
jmp 0x455579
push edi
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 0x20], edx
mov dword [ebp + 4], edi
xor ebx, ebx
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x20]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x2d
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x4555b5
xor ebx, ebx
mov eax, dword [esp + 0xa4]
cmp byte [eax + 0x12], bl
jne 0x4555d2
cmp dword [eax + 0x1ac], ebx
jne 0x4555d2
push eax
call fcn.00442e80
add esp, 4
mov eax, dword [esp + 0x50]
test dword [eax + 0x18], 0x1000
je 0x455727
mov ecx, dword [esp + 0xa4]
cmp dword [ecx + 0x1ac], 0
jne 0x455727
mov edx, ecx
cmp byte [edx + 0x12], 0
jne 0x455727
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp eax, edi
jg 0x455672
test eax, eax
je 0x455615
add eax, eax
jmp 0x45561a
mov eax, 0x33
mov ebx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp]
add ecx, ecx
add ecx, ecx
call fcn.00406fa0
mov esi, eax
xor ebx, ebx
cmp esi, ebx
je 0x45569e
mov eax, dword [ebp]
cmp eax, ebx
je 0x455654
cmp esi, dword [eax + 0x104]
jb 0x455654
cmp esi, dword [eax + 0x108]
jae 0x455654
movzx ecx, word [eax + 0xe8]
jmp 0x455660
push esi
call dword [0x47c140]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [ebp + 0x20], edx
mov dword [ebp + 4], esi
jmp 0x455674
xor ebx, ebx
mov edx, dword [ebp + 4]
lea eax, [edi + edi*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x64]
mov ecx, 1
add dword [ebp + 0x1c], ecx
mov byte [eax], 0x10
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
push 1
mov edi, ebp
call fcn.00423210
mov eax, dword [ebp]
add esp, 4
cmp byte [eax + 0x36], bl
jne 0x455727
mov ebp, dword [ebp + 0x10]
mov eax, dword [ebp]
xor ebx, ebx
cmp eax, ebx
je 0x4556c3
mov eax, dword [eax + 0x4c]
jmp 0x4556c8
mov eax, 0x3b9aca00
xor esi, esi
cmp eax, ebx
jl 0x4556df
mov edi, edi
cmp byte [esi + str.rows_updated], bl
je 0x4556df
add esi, 1
cmp esi, eax
jle 0x4556d0
xor ecx, ecx
cmp ecx, 0x406c50
mov edi, 0x202
push ebp
jne 0x455701
call fcn.00420aa0
mov eax, str.rows_updated
mov dword [ebp + 4], eax
mov dword [ebp + 0x24], eax
jmp 0x455712
call fcn.00420aa0
mov dword [ebp + 4], str.rows_updated
mov edi, 0xa02
mov dword [ebp + 0x20], ebx
add esp, 4
mov dword [ebp + 0x18], esi
mov word [ebp + 0x1c], di
mov byte [ebp + 0x1f], 1
mov byte [ebp + 0x1e], 3
xor ebx, ebx
mov eax, dword [esp + 0x78]
cmp eax, ebx
je 0x45573b
mov edx, dword [esp + 0x74]
mov dword [eax + 0x1fc], edx
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
mov ecx, esi
call fcn.00406d00
mov eax, dword [esp + 0x30]
mov ecx, esi
call fcn.00406d00
mov eax, dword [esp + 0xa8]
push eax
call fcn.0043b430
mov ecx, dword [esp + 0xb0]
add esp, 4
push ecx
mov edi, esi
call fcn.00430e00
mov edx, dword [esp + 0xb4]
add esp, 4
push edx
push esi
call fcn.00430290
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret