Function at 0x589b40
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 + 0x40], ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov eax, dword [edi]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x4c], eax
jne 0x58aef8
cmp byte [eax + 0x1e], bl
jne 0x58aef8
mov eax, dword [esp + 0xa8]
push edi
call fcn.00575490
mov ebp, eax
add esp, 4
cmp ebp, ebx
mov dword [esp + 0x14], ebp
je 0x58aef8
mov esi, dword [ebp + 0x44]
mov ecx, dword [edi]
call fcn.00580c70
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x68]
push eax
push ecx
push 0x6b
mov edx, ebp
mov eax, edi
call fcn.005891c0
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 + 0x74], edx
call fcn.00572360
add esp, 8
test eax, eax
jne 0x58aef8
mov eax, dword [esp + 0x68]
push eax
mov ecx, ebp
mov eax, edi
call fcn.005754f0
add esp, 4
test eax, eax
jne 0x58aef8
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x4c]
add ecx, ecx
add ecx, ecx
call fcn.00543630
cmp eax, ebx
mov dword [esp + 0x34], eax
je 0x58aef8
xor eax, eax
cmp dword [ebp + 8], ebx
jle 0x589c4f
mov ecx, dword [esp + 0x34]
lea ebx, [ebx]
mov dword [ecx + eax*4], 0xffffffff
add eax, 1
cmp eax, dword [ebp + 8]
jl 0x589c40
mov eax, dword [edi + 0x44]
mov edx, dword [esp + 0xa8]
mov dword [edx + 0x20], eax
add dword [edi + 0x44], 1
mov ecx, dword [edi + 0x44]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x589c7d
mov edi, edi
add ecx, 1
mov dword [edi + 0x44], ecx
mov eax, dword [eax + 0x20]
cmp eax, ebx
jne 0x589c70
mov ecx, dword [esp + 0xac]
cmp dword [ecx], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x1c], ebx
jle 0x589e45
mov dword [esp + 0x28], ebx
nop
mov edx, dword [esp + 0xac]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + ecx]
push edx
lea esi, [esp + 0x80]
call fcn.00568a10
add esp, 4
test eax, eax
jne 0x58aef8
xor esi, esi
cmp dword [ebp + 8], ebx
jle 0x589d75
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x28]
mov edi, dword [ebp + 0xc]
lea eax, [ecx + edx]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x38], eax
nop
mov edx, dword [esp + 0x38]
mov ecx, dword [edi]
call fcn.00545600
test eax, eax
je 0x589d4c
add esi, 1
add edi, 0x18
cmp esi, dword [ebp + 8]
jl 0x589d30
jmp 0x589d6e
cmp esi, dword [ebp + 4]
jne 0x589d63
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov dword [esp + 0x44], 1
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov dword [ecx + esi*4], eax
mov edi, dword [esp + 0xa4]
cmp esi, dword [ebp + 8]
jl 0x589de1
mov edx, dword [esp + 0xac]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x28]
add eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 4]
mov edx, str._ROWID_
mov ecx, eax
call fcn.00545600
test eax, eax
je 0x589dcf
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
mov edx, str.ROWID
call fcn.00545600
test eax, eax
je 0x589dcf
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 4]
mov edx, 0x62f32c
call fcn.00545600
test eax, eax
jne 0x589e69
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov dword [esp + 0x44], 1
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x58]
shl ecx, 4
mov ecx, dword [ecx + eax]
mov eax, dword [ebp + 0xc]
push ecx
lea edx, [esi + esi*2]
mov ecx, dword [eax + edx*8]
mov edx, dword [ebp]
push ecx
push edx
push 0x17
mov eax, edi
call fcn.0056fe50
add esp, 0x10
cmp eax, 1
je 0x58aef8
cmp eax, 2
jne 0x589e26
mov eax, dword [esp + 0x34]
mov dword [eax + esi*4], 0xffffffff
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xac]
add dword [esp + 0x28], 0x14
add eax, 1
cmp eax, dword [ecx]
mov dword [esp + 0x1c], eax
jl 0x589ce0
mov eax, dword [edi]
test dword [eax + 0xc], 0x4000000
mov esi, dword [esp + 0x34]
je 0x589e9c
mov ecx, dword [esp + 0x44]
push ecx
push esi
push ebp
call fcn.00579aa0
add esp, 0xc
mov dword [esp + 0x28], eax
jmp 0x589ea0
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0xa4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + edx*4 + 4]
push edx
push str.no_such_column:__s
call fcn.005454f0
add esp, 8
mov byte [edi + 0x12], 1
jmp 0x58aef8
mov dword [esp + 0x28], ebx
mov eax, dword [ebp + 0x10]
xor ecx, ecx
cmp eax, ebx
je 0x589edb
lea esp, [esp]
mov eax, dword [eax + 0x20]
add ecx, 1
cmp eax, ebx
jne 0x589eb0
cmp ecx, ebx
jle 0x589edb
mov esi, dword [esp + 0x4c]
add ecx, ecx
add ecx, ecx
call fcn.00543630
cmp eax, ebx
mov dword [esp + 0x48], eax
je 0x58aef8
mov esi, dword [esp + 0x34]
mov ebp, dword [ebp + 0x10]
cmp ebp, ebx
mov dword [esp + 0x18], ebp
je 0x589f46
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], edx
mov edi, edi
cmp dword [esp + 0x44], ebx
jne 0x589f27
mov edx, dword [ebp + 4]
xor ecx, ecx
xor eax, eax
cmp edx, ebx
mov dword [esp + 0x38], ecx
jle 0x589f2e
mov ecx, dword [ebp + 8]
mov ebp, dword [ecx]
cmp dword [esi + ebp*4], ebx
jge 0x589f23
add eax, 1
add ecx, 4
cmp eax, edx
jl 0x589f08
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x18]
jmp 0x589f2e
mov ebp, dword [esp + 0x18]
add dword [edi + 0x48], 1
mov ecx, dword [edi + 0x48]
mov eax, dword [esp + 0x50]
mov dword [eax], ecx
mov ebp, dword [ebp + 0x20]
add eax, 4
cmp ebp, ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x50], eax
jne 0x589ef0
mov eax, dword [esp + 0xa4]
mov ebp, dword [eax + 0xc]
cmp ebp, ebx
jne 0x589feb
mov ebp, eax
mov esi, dword [ebp]
mov ecx, 0xc0
call fcn.00543630
mov edi, eax
cmp edi, ebx
je 0x58a077
push 0xc0
push ebx
push edi
call fcn.005e6f30
mov dword [edi], esi
mov eax, dword [esi + 0x88]
add esp, 0xc
cmp eax, ebx
je 0x589f8f
mov dword [eax + 0x3c], edi
mov ecx, dword [esi + 0x88]
mov dword [edi + 0x40], ecx
mov dword [edi + 0x3c], ebx
mov dword [esi + 0x88], edi
mov dword [edi + 0x34], 0x26bceaa5
cmp edi, ebx
mov dword [ebp + 0xc], edi
mov ebp, edi
je 0x58aef8
mov esi, dword [edi + 0x1c]
cmp dword [edi + 0x20], esi
jg 0x589fc6
call fcn.0055cb60
test eax, eax
jne 0x589feb
mov eax, dword [edi + 4]
add dword [edi + 0x1c], 1
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x88
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 byte [edi + 0x64], bl
mov esi, dword [esp + 0xa4]
cmp byte [esi + 0x13], bl
jne 0x589ffb
mov byte [ebp + 0x63], 1
mov edi, dword [esi + 0x1a8]
cmp edi, ebx
jne 0x58a007
mov edi, esi
mov ecx, dword [esp + 0x58]
push ecx
mov eax, esi
call fcn.00574560
mov ecx, dword [esp + 0x5c]
or byte [edi + 0x158], 1
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x18]
add esp, 4
or dword [edi + 0x150], edx
test byte [ecx + 0x22], 0x10
je 0x58a07e
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0xb4]
push edx
push ecx
push eax
push esi
call fcn.0058af70
add esp, 0x1c
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xa8], ebx
jmp 0x58aef8
xor edi, edi
jmp 0x589fa8
add dword [esi + 0x48], 1
mov eax, dword [esi + 0x48]
mov edi, dword [esp + 0x54]
cmp edi, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
jne 0x58a09b
cmp dword [esp + 0x28], ebx
je 0x58a0aa
lea edx, [eax + 1]
mov dword [esp + 0x5c], edx
mov edx, dword [ecx + 8]
add edx, eax
mov dword [esi + 0x48], edx
cmp dword [esp + 0x44], ebx
jne 0x58a0ba
cmp edi, ebx
jne 0x58a0ba
cmp dword [esp + 0x28], ebx
je 0x58a0c5
add dword [esi + 0x48], 1
mov eax, dword [esi + 0x48]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x48]
lea edx, [eax + 1]
mov dword [esp + 0x50], edx
mov edx, dword [ecx + 8]
add edx, eax
cmp dword [esp + 0x6c], ebx
mov dword [esi + 0x48], edx
je 0x58a10d
mov eax, dword [esi + 0x208]
mov edx, dword [ecx]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x24]
push eax
mov dword [esi + 0x208], edx
mov edx, dword [esp + 0xb4]
push edx
push ecx
push esi
mov dword [esp + 0x84], esi
call fcn.00575580
add esp, 0x10
mov eax, dword [esp + 0xb0]
push eax
lea esi, [esp + 0x80]
call fcn.00568a10
add esp, 4
test eax, eax
jne 0x58aef8
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x58a13f
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58a168
mov edx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x30]
mov byte [eax], 0xa
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x64], bl
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
push 4
push ebx
push edx
push eax
push ecx
call fcn.00591430
mov edi, eax
add esp, 0x14
cmp edi, ebx
je 0x58aef8
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
movzx esi, byte [edi + 6]
push ebx
push edx
push eax
push 0x3d
mov eax, ebp
mov dword [esp + 0x48], esi
call fcn.0055cbe0
add esp, 0x10
cmp esi, ebx
mov esi, dword [esp + 0xa4]
jne 0x58a1dd
mov ecx, dword [esp + 0x30]
add dword [esi + 0x48], 1
mov eax, dword [esi + 0x48]
push ebx
push ecx
push eax
mov dword [esp + 0x48], eax
push 0x69
mov eax, ebp
call fcn.0055cbe0
add esp, 0x10
push edi
call fcn.00591ed0
mov edx, dword [esp + 0x50]
add esp, 4
test dword [edx + 0xc], 0x1000
je 0x58a21b
cmp dword [esi + 0x1ac], ebx
jne 0x58a21b
mov edi, 1
add dword [esi + 0x48], edi
mov eax, dword [esi + 0x48]
push ebx
push eax
mov dword [esp + 0x6c], eax
push ebx
push 7
mov eax, ebp
call fcn.0055cbe0
add esp, 0x10
jmp 0x58a220
mov edi, 1
cmp dword [esp + 0x6c], ebx
jne 0x58a38e
cmp dword [esp + 0x38], ebx
jne 0x58a24d
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x24]
push 0x27
push eax
push ecx
push esi
mov esi, dword [esp + 0x24]
mov eax, esi
call fcn.0057a470
add esp, 0x10
jmp 0x58a251
mov esi, dword [esp + 0x14]
mov ecx, 5
cmp dword [esp + 0xb4], ecx
je 0x58a27e
mov eax, dword [esi + 0x10]
cmp eax, ebx
mov dword [esp + 0x60], ebx
je 0x58a282
lea ebx, [ebx]
cmp byte [eax + 0x18], cl
je 0x58a27e
mov eax, dword [eax + 0x20]
cmp eax, ebx
jne 0x58a270
jmp 0x58a282
mov dword [esp + 0x60], edi
mov eax, dword [esi + 0x10]
cmp eax, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
je 0x58a38e
cmp dword [esp + 0x60], ebx
jne 0x58a2ac
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
cmp dword [edx + eax*4], ebx
jle 0x58a376
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xa4]
push esi
push ecx
call fcn.00574a50
mov edx, dword [esi + 0x14]
mov esi, dword [ebp + 0x1c]
add esp, 8
cmp dword [ebp + 0x20], esi
mov dword [esp + 0x78], eax
mov dword [esp + 0x20], edx
jg 0x58a2e6
mov edi, ebp
call fcn.0055cb60
test eax, eax
je 0x58a2e6
mov esi, 1
jmp 0x58a31f
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x1c]
lea edx, [edx + ecx + 1]
mov ecx, dword [esp + 0x20]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x58]
mov byte [eax], 0x27
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 byte [ebp + 0x64], bl
mov ecx, dword [ebp + 4]
cmp ecx, ebx
mov edi, dword [ebp]
mov eax, esi
je 0x58a368
cmp byte [edi + 0x1e], bl
jne 0x58a368
cmp esi, ebx
jge 0x58a33a
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.0055cf70
mov eax, dword [esp + 0x78]
cmp eax, ebx
mov dword [esi + 0x10], ebx
jne 0x58a35f
mov dword [esi + 0x10], ebx
mov byte [esi + 1], bl
jmp 0x58a376
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xfa
jmp 0x58a376
mov ecx, dword [esp + 0x78]
mov eax, 0xfffffff0
call fcn.0055cf70
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x20]
add dword [esp + 0x1c], 1
cmp eax, ebx
mov dword [esp + 0x18], eax
jne 0x58a295
cmp dword [esp + 0x38], ebx
mov esi, dword [ebp + 0x1c]
je 0x58a43c
cmp dword [ebp + 0x20], esi
jg 0x58a3b5
mov edi, ebp
call fcn.0055cb60
test eax, eax
je 0x58a3b5
mov dword [esp + 0x38], 1
jmp 0x58a3e2
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x30]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x4a
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
mov byte [ebp + 0x64], bl
mov dword [esp + 0x38], esi
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x58a3fc
mov edi, ebp
call fcn.0055cb60
test eax, eax
je 0x58a3fc
mov esi, 1
jmp 0x58a421
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
mov byte [ebp + 0x64], bl
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
mov dword [esp + 0x18], esi
jle 0x58a487
mov edx, dword [ebp + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
jmp 0x58a487
cmp dword [ebp + 0x20], esi
jg 0x58a456
mov edi, ebp
call fcn.0055cb60
test eax, eax
je 0x58a456
mov dword [esp + 0x18], 1
jmp 0x58a487
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x3c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x30]
mov byte [eax], 0x6a
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 byte [ebp + 0x64], bl
mov dword [esp + 0x18], esi
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x58a49a
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58a4cb
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x24]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x18]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x30]
mov byte [eax], 0x34
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
mov byte [ebp + 0x64], bl
cmp dword [esp + 0x44], ebx
je 0x58a571
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x58a4fa
cmp byte [eax], 0x84
jne 0x58a4fa
mov esi, dword [esp + 0x2c]
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 0xc]
push ebx
push esi
push edx
push 0xe
jmp 0x58a529
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0xa4]
push esi
push eax
push ecx
call fcn.0056b550
add esp, 0xc
cmp eax, esi
je 0x58a531
mov edx, dword [esp + 0xa4]
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x58a531
push ebx
push esi
push eax
push 0xf
mov eax, ecx
call fcn.0055cbe0
add esp, 0x10
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x20], eax
jg 0x58a54c
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58a571
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x15
mov byte [eax + 3], bl
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x64], bl
cmp dword [esp + 0x28], ebx
jne 0x58a644
cmp dword [esp + 0x54], ebx
je 0x58a74e
mov dword [esp + 0x40], ebx
mov ecx, dword [esp + 0xb4]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xa4]
push ecx
push edi
push 3
push ebx
push edx
push eax
mov eax, dword [esp + 0x6c]
call fcn.005899f0
or dword [esp + 0x58], eax
add esp, 0x18
xor esi, esi
cmp dword [edi + 8], ebx
jle 0x58a708
mov ecx, dword [esp + 0x34]
cmp dword [ecx + esi*4], ebx
jl 0x58a662
mov eax, dword [esp + 0x40]
cmp eax, 0xffffffff
je 0x58a662
cmp esi, 0x20
jge 0x58a5f0
mov edx, 1
mov ecx, esi
shl edx, cl
test eax, edx
jne 0x58a662
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x20], eax
jg 0x58a613
mov edi, ebp
call fcn.0055cb60
test eax, eax
mov edi, dword [esp + 0x14]
jne 0x58a6fc
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x5c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
lea ecx, [esi + edx]
mov byte [eax], 0xa
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x64], bl
jmp 0x58a6fc
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xa4]
push edx
push eax
call fcn.005799e0
add esp, 8
mov dword [esp + 0x40], eax
jmp 0x58a589
cmp esi, ebx
jl 0x58a696
cmp esi, dword [edi + 4]
je 0x58a696
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x24]
lea eax, [esi + edx]
mov dl, byte [edi + 0x22]
and dl, 0x10
neg dl
push eax
push esi
push ecx
mov eax, ebp
sbb edx, edx
and edx, 0x65
add edx, 0x1c
push edx
call fcn.0055cbe0
add esp, 0x10
jmp 0x58a6e5
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x20], eax
jg 0x58a6b5
mov edi, ebp
call fcn.0055cb60
test eax, eax
mov edi, dword [esp + 0x14]
jne 0x58a6e5
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x5c]
mov dword [eax + 4], edx
lea edx, [esi + ecx]
mov byte [eax], 0x3d
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
mov byte [ebp + 0x64], bl
cmp esi, ebx
jl 0x58a6fc
mov eax, dword [esp + 0x5c]
lea ecx, [esi + eax]
push ecx
push esi
push edi
push ebp
call fcn.00589a70
add esp, 0x10
add esi, 1
cmp esi, dword [edi + 8]
jl 0x58a5c4
cmp dword [esp + 0x44], ebx
jne 0x58a74e
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x58a721
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58a74e
mov eax, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x30]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x2c]
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 byte [ebp + 0x64], bl
mov eax, dword [esp + 0xb4]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x58]
push edi
push 1
push 1
push ecx
push edx
call fcn.005899f0
xor ecx, ecx
add esp, 0x18
cmp dword [edi + 8], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
jle 0x58a951
mov esi, dword [esp + 0x50]
cmp ecx, dword [edi + 4]
jne 0x58a7e0
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x20], eax
jg 0x58a7b6
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58a936
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0xa
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
mov byte [ebp + 0x64], bl
jmp 0x58a936
mov edx, dword [esp + 0x34]
mov eax, dword [edx + ecx*4]
cmp eax, ebx
jl 0x58a8c0
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4]
cmp eax, ebx
je 0x58a848
cmp byte [eax], 0x84
jne 0x58a848
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0xa4]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x1c]
cmp dword [edi + 0x20], eax
mov dword [esp + 0x20], eax
jg 0x58a836
call fcn.0055cb60
test eax, eax
jne 0x58a936
mov eax, dword [esp + 0x20]
add dword [edi + 0x1c], 1
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
mov byte [eax], 0xe
jmp 0x58a8a5
mov edx, dword [esp + 0xa4]
push esi
push eax
push edx
call fcn.0056b550
add esp, 0xc
cmp eax, esi
mov dword [esp + 0x3c], eax
je 0x58a936
mov eax, dword [esp + 0xa4]
mov edi, dword [eax + 0xc]
cmp edi, ebx
je 0x58a936
mov eax, dword [edi + 0x1c]
cmp dword [edi + 0x20], eax
mov dword [esp + 0x20], eax
jg 0x58a895
call fcn.0055cb60
test eax, eax
jne 0x58a936
mov eax, dword [esp + 0x20]
mov edx, dword [edi + 4]
add dword [edi + 0x1c], 1
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*4]
mov byte [eax], 0xf
mov ecx, dword [esp + 0x3c]
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
mov byte [edi + 0x64], bl
jmp 0x58a936
test dword [esp + 0x68], 1
je 0x58a8de
cmp ecx, 0x1f
jg 0x58a8de
mov eax, dword [esp + 0x38]
mov edx, 1
shl edx, cl
test eax, edx
je 0x58a936
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x20], eax
jg 0x58a901
mov edi, ebp
call fcn.0055cb60
test eax, eax
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
jne 0x58a92a
mov eax, dword [esp + 0x20]
add dword [ebp + 0x1c], 1
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x24]
mov byte [eax], 0x1c
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x64], bl
push esi
push ecx
push edi
push ebp
call fcn.00589a70
add esp, 0x10
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
add ecx, 1
add esi, 1
cmp ecx, dword [edi + 8]
mov dword [esp + 0x1c], ecx
jl 0x58a792
test byte [esp + 0x68], 1
je 0x58aaad
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
mov eax, dword [edi + 8]
mov dword [esp + 0x20], eax
jg 0x58a976
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58a9a3
mov edx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x20]
mov byte [eax], 0x1d
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 byte [ebp + 0x64], bl
mov esi, dword [esp + 0x14]
push ebp
mov eax, esi
call fcn.0057a5a0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x34]
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.00589980
mov esi, dword [ebp + 0x1c]
add esp, 0x24
cmp dword [ebp + 0x20], esi
jg 0x58a9f9
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58aa2a
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x30]
mov byte [eax], 0x34
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 byte [ebp + 0x64], bl
mov eax, dword [esp + 0x14]
xor esi, esi
cmp dword [eax + 8], ebx
jle 0x58aaad
mov edi, eax
mov ecx, dword [esp + 0x34]
cmp dword [ecx + esi*4], ebx
jge 0x58aaa5
cmp esi, dword [edi + 4]
je 0x58aaa5
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x20], eax
jg 0x58aa64
mov edi, ebp
call fcn.0055cb60
test eax, eax
mov edi, dword [esp + 0x14]
jne 0x58aa93
mov eax, dword [esp + 0x20]
add dword [ebp + 0x1c], 1
mov ecx, dword [esp + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x50]
add edx, esi
mov byte [eax], 0x1c
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x64], bl
mov eax, dword [esp + 0x50]
add eax, esi
push eax
push esi
push edi
push ebp
call fcn.00589a70
add esp, 0x10
add esi, 1
cmp esi, dword [edi + 8]
jl 0x58aa37
cmp dword [esp + 0x6c], ebx
jne 0x58ac4b
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
push ebx
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x38]
neg eax
push 1
sbb eax, eax
and eax, edi
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0xbc]
push edx
push eax
push esi
push ecx
call fcn.0057c0c0
add esp, 0x28
cmp dword [esp + 0x28], ebx
je 0x58ab13
mov edx, dword [esp + 0xa4]
push ebx
push edi
push esi
push edx
call fcn.00579640
add esp, 0x10
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x58ab34
mov edi, ebp
call fcn.0055cb60
test eax, eax
je 0x58ab30
mov dword [esp + 0x3c], 1
jmp 0x58ab61
mov edi, dword [esp + 0x30]
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x34
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x64], bl
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x18]
push ecx
push edx
call fcn.00575e30
add esp, 0xc
cmp dword [esp + 0x28], ebx
jne 0x58ab8b
cmp dword [esp + 0x44], ebx
je 0x58abc7
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x58ab9e
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58abc7
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x39
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
mov byte [ebp + 0x64], bl
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jle 0x58abdc
mov edx, dword [ebp + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov esi, dword [esp + 0x28]
cmp esi, ebx
je 0x58abff
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xa4]
push eax
push ebx
push ecx
push edx
call fcn.00579640
add esp, 0x10
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
push ebx
push ebx
push 1
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0xb8]
push edx
push eax
push ecx
call fcn.0057cd20
add esp, 0x20
cmp esi, ebx
je 0x58ac4b
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0xa4]
push edx
push eax
call fcn.0057a2e0
add esp, 8
mov ecx, dword [esp + 0x4c]
test dword [ecx + 0xc], 0x1000
je 0x58aca7
mov edx, dword [esp + 0xa4]
cmp dword [edx + 0x1ac], ebx
jne 0x58aca7
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x58ac7a
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58aca7
mov edx, dword [ebp + 4]
lea eax, [esi + esi*4]
lea eax, [edx + eax*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
mov byte [ebp + 0x64], bl
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
push edi
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.00589980
mov esi, dword [ebp + 0x1c]
add esp, 0x24
cmp dword [ebp + 0x20], esi
jg 0x58acf6
mov edi, ebp
call fcn.0055cb60
test eax, eax
mov edi, dword [esp + 0x18]
jne 0x58ad1b
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 1
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x64], bl
mov eax, dword [ebp + 0x1c]
cmp eax, edi
jle 0x58ad2c
mov ecx, dword [ebp + 4]
lea edx, [edi + edi*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 0x58adab
nop
cmp dword [esp + 0x60], ebx
jne 0x58ad53
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
cmp dword [ecx + edx*4], ebx
jle 0x58ad9b
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x58ad66
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58ad97
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x1c]
lea edx, [edx + ecx + 1]
mov byte [eax], 0x2b
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
mov byte [ebp + 0x64], bl
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x20]
add dword [esp + 0x1c], 1
cmp eax, ebx
mov dword [esp + 0x18], eax
jne 0x58ad40
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x58adbe
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58ade7
mov ecx, dword [ebp + 4]
add dword [ebp + 0x1c], 1
mov edx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x2b
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
mov byte [ebp + 0x64], bl
mov eax, dword [esp + 0xa4]
cmp byte [eax + 0x13], bl
jne 0x58ae04
cmp dword [eax + 0x1ac], ebx
jne 0x58ae04
push eax
call fcn.0057abb0
add esp, 4
mov eax, dword [esp + 0x4c]
test dword [eax + 0xc], 0x1000
je 0x58aef8
mov ecx, dword [esp + 0xa4]
cmp dword [ecx + 0x1ac], ebx
jne 0x58aef8
mov edx, ecx
cmp byte [edx + 0x13], bl
jne 0x58aef8
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x58ae46
mov edi, ebp
call fcn.0055cb60
test eax, eax
jne 0x58ae73
mov edx, dword [ebp + 4]
lea eax, [esi + esi*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
mov byte [ebp + 0x64], bl
push 1
mov edi, ebp
call fcn.0055dfb0
mov eax, dword [ebp]
add esp, 4
cmp byte [eax + 0x1e], bl
jne 0x58aef8
mov ebp, dword [ebp + 0x10]
mov eax, dword [ebp]
cmp eax, ebx
je 0x58ae96
mov eax, dword [eax + 0x48]
jmp 0x58ae9b
mov eax, 0x3b9aca00
xor esi, esi
cmp eax, ebx
jl 0x58aeb0
cmp byte [esi + str.rows_updated], bl
je 0x58aeb0
add esi, 1
cmp esi, eax
jle 0x58aea1
xor ecx, ecx
cmp ecx, fcn.00543400
mov edi, 0x202
push ebp
jne 0x58aed2
call fcn.0055ba70
mov eax, str.rows_updated
mov dword [ebp + 4], eax
mov dword [ebp + 0x24], eax
jmp 0x58aee3
call fcn.0055ba70
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
mov eax, dword [esp + 0x74]
cmp eax, ebx
je 0x58af0a
mov edx, dword [esp + 0x70]
mov dword [eax + 0x208], edx
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
push eax
push esi
call fcn.00543400
mov ecx, dword [esp + 0x3c]
push ecx
push esi
call fcn.00543400
mov edx, dword [esp + 0xb8]
push edx
call fcn.00573ff0
mov eax, dword [esp + 0xc0]
add esp, 0x14
push eax
mov edi, esi
call fcn.00569f90
mov ecx, dword [esp + 0xb4]
add esp, 4
push ecx
push esi
call fcn.005695c0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret