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

Disassembly:
sub esp, 0x94
xor eax, eax
push ebx
mov ebx, dword [esp + 0x9c]
cmp dword [ebx + 0x40], eax
mov ecx, dword [ebx]
push ebp
push esi
push edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
jne 0x591bbc
cmp byte [ecx + 0x1e], al
jne 0x591bbc
mov ecx, dword [esp + 0xac]
cmp dword [ecx + 0xc], eax
je 0x591bbc
push ebx
mov eax, ecx
call fcn.0058ad40
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
je 0x591bbc
mov ebp, dword [esp + 0x40]
mov edi, eax
mov esi, dword [edi + 0x40]
mov ecx, ebp
call fcn.005466b0
mov edx, dword [ebp + 8]
mov dword [esp + 0x48], eax
shl eax, 4
mov eax, dword [eax + edx]
push eax
mov eax, dword [edi]
push 0
push eax
push 0x12
mov eax, ebx
call fcn.00553690
add esp, 0x10
test eax, eax
jne 0x591bbc
lea ecx, [esp + 0x1c]
push ecx
push eax
push 0x69
push ebx
mov eax, edi
call fcn.00546e10
xor edx, edx
cmp dword [edi + 0x18], edx
mov esi, eax
setne dl
push edi
push ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0x74], edx
call fcn.005904c0
add esp, 0x18
test eax, eax
jne 0x591bbc
mov eax, dword [esp + 0x1c]
push eax
mov ecx, edi
mov eax, ebx
call fcn.005549c0
add esp, 4
test eax, eax
jne 0x591bbc
mov edi, ebx
call fcn.00555dd0
mov ebp, eax
test ebp, ebp
je 0x591bbc
cmp byte [ebx + 0x13], 0
jne 0x590748
mov byte [ebp + 0x61], 1
cmp dword [esp + 0xb4], 0
jne 0x59075a
test esi, esi
jne 0x59075a
xor eax, eax
jmp 0x59075f
mov eax, 1
mov edi, dword [esp + 0x48]
push eax
mov eax, ebx
call fcn.0056c7b0
add esp, 4
cmp dword [esp + 0xb8], 0
jne 0x59079e
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xb4]
push edi
push ecx
push edx
push ebx
call fcn.0058b170
add esp, 0x10
test eax, eax
jne 0x591b1a
mov esi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x10]
push edi
mov edx, esi
call fcn.0054e6e0
xor ebx, ebx
add esp, 4
cmp dword [esp + 0xb4], ebx
mov dword [esp + 0x3c], eax
je 0x590baa
add dword [esi + 0x48], 1
mov eax, dword [esi + 0x48]
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
mov dword [esp + 0x14], eax
jg 0x5907e5
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x59080e
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x14]
mov byte [eax], 7
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 + 0x62], bl
mov eax, dword [esp + 0xa8]
add dword [eax + 0x48], 1
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
mov eax, dword [eax + 0x48]
lea edx, [esi + 2]
mov byte [esp + 0x6c], 0xa
mov dword [esp + 0x70], eax
mov byte [esp + 0x6d], bl
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x24], edx
jg 0x59084b
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x59087b
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x70]
add edx, 0xffffffff
mov byte [eax], 7
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 + 0x62], bl
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x590898
mov edi, ebp
call fcn.0054c1a0
test eax, eax
je 0x590898
mov dword [esp + 0x34], 1
jmp 0x5908c1
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 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 + 0x62], bl
mov dword [esp + 0x34], esi
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0x6c]
push ecx
push edx
push eax
call fcn.0058c540
add esp, 0xc
test eax, eax
jne 0x591bbc
mov ecx, dword [esp + 0xa8]
cmp dword [ecx + 0x40], ebx
jne 0x591bbc
mov edx, dword [esp + 0x40]
cmp byte [edx + 0x1e], bl
jne 0x591bbc
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x590916
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x590947
mov edx, dword [ebp + 0x14]
mov ecx, 1
add dword [ebp + 0xc], ecx
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
xor ebx, ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
jmp 0x590949
xor ebx, ebx
mov edx, dword [esp + 0x70]
push edx
push 4
mov eax, ebp
call fcn.0054c2d0
mov esi, dword [ebp + 0xc]
add esp, 8
cmp dword [ebp + 0x10], esi
jg 0x59096d
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x590997
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, 2
mov byte [eax], 6
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jle 0x5909ac
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp + 0x14]
mov dword [ecx + edx*4 + 8], eax
cmp dword [esp + 0x68], ebx
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax]
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x4c], edx
mov edx, dword [ecx]
mov dword [esp + 0x2c], edx
jne 0x5909f2
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
push eax
push ecx
mov eax, esi
call fcn.0055ce30
add esp, 8
xor ebx, ebx
test eax, eax
je 0x590c5a
mov edx, dword [esi + 0x44]
lea eax, [edx + 1]
mov dword [esi + 0x44], eax
mov eax, esi
mov dword [esp + 0x50], 1
mov dword [esp + 0x28], edx
call fcn.00545610
mov dword [esp + 0x24], eax
mov eax, esi
call fcn.00545610
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
mov dword [esp + 0x18], eax
jg 0x590a34
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x590a5d
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x2c]
mov byte [eax], 0x29
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 + 0x62], bl
mov edx, dword [esp + 0x70]
push edx
push 4
mov eax, ebp
call fcn.0054c2d0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
push eax
push 0x1a
mov eax, ebp
call fcn.0054c2d0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
push ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x88]
push edx
push eax
push 0x1e
mov eax, ebp
call fcn.0054c220
mov esi, dword [ebp + 0xc]
add esp, 0x20
cmp dword [ebp + 0x10], esi
jg 0x590ab2
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x590adf
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov byte [eax], 0x36
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 + 0x62], bl
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
push eax
push ecx
push edx
push 0x37
mov eax, ebp
call fcn.0054c220
mov esi, dword [ebp + 0xc]
add esp, 0x10
cmp dword [ebp + 0x10], esi
jg 0x590b0d
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x590b36
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x30]
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], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jle 0x590b4b
mov edx, dword [ebp + 0x14]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0xa8]
call fcn.00545630
mov esi, dword [esp + 0x18]
call fcn.00545630
mov edx, dword [esp + 0x2c]
xor ebx, ebx
mov eax, dword [esp + 0x10]
test byte [eax + 0x1e], 0x10
je 0x590c63
mov esi, dword [eax + 8]
cmp esi, ebx
jle 0x590c63
mov eax, dword [eax + 0xc]
mov edi, dword [esp + 0x20]
add eax, 0x17
lea ecx, [ecx]
xor ecx, ecx
cmp byte [eax], bl
setne cl
add eax, 0x18
add edi, ecx
sub esi, 1
jne 0x590b90
mov eax, dword [esp + 0x10]
jmp 0x590c67
xor eax, 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 + 0xa0], eax
mov eax, dword [esp + 0xb0]
cmp eax, ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0x28], 0xffffffff
je 0x590c09
mov eax, dword [eax]
jmp 0x590c0b
xor eax, eax
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x2c], eax
jle 0x590c5a
mov dword [esp + 0x24], ebx
lea esp, [esp]
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x24]
mov ebx, dword [edx + ecx]
lea esi, [esp + 0x80]
call fcn.00561350
test eax, eax
jne 0x591bbc
mov edx, dword [esp + 0x2c]
add dword [esp + 0x24], 0x14
add edi, 1
cmp edi, edx
jl 0x590c20
jmp 0x590b68
mov edx, dword [esp + 0x2c]
jmp 0x590b6a
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0xb8]
cmp ecx, ebx
jne 0x590caf
cmp edx, ebx
je 0x590e13
mov eax, dword [eax + 8]
sub eax, edi
cmp edx, eax
je 0x590e04
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0xa8]
push edx
push eax
mov eax, dword [esp + 0xb4]
push ebx
push eax
push str.table__S_has__d_columns_but__d_values_were_supplied
call fcn.00550e70
add esp, 0x14
jmp 0x591bbc
mov esi, dword [ecx + 4]
cmp edx, esi
je 0x590cd5
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0xa8]
push esi
push ecx
push str._d_values_for__d_columns
call fcn.00550e70
add esp, 0xc
jmp 0x591bbc
xor eax, eax
cmp esi, ebx
jle 0x590cee
or edx, 0xffffffff
mov edi, edi
mov esi, dword [ecx]
mov dword [esi + eax*8 + 4], edx
add eax, 1
cmp eax, dword [ecx + 4]
jl 0x590ce0
cmp dword [ecx + 4], ebx
mov dword [esp + 0x18], ebx
jle 0x590e13
jmp 0x590d00
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
xor esi, esi
cmp eax, ebx
mov dword [esp + 0x34], eax
jle 0x590d67
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
lea eax, [ecx + edx*8]
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov edx, dword [edi]
mov ecx, dword [esp + 0x30]
call fcn.0053ec00
test eax, eax
je 0x590d4f
add esi, 1
add edi, 0x18
cmp esi, dword [esp + 0x34]
jl 0x590d32
jmp 0x590d67
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov dword [edx + 4], esi
cmp esi, dword [eax + 4]
jne 0x590d67
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 8]
mov edi, dword [esp + 0x18]
jl 0x590db4
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax]
mov esi, dword [ecx + edi*8]
mov edx, str._ROWID_
mov ecx, esi
call fcn.0053ec00
test eax, eax
je 0x590db0
mov edx, str.ROWID
mov ecx, esi
call fcn.0053ec00
test eax, eax
je 0x590db0
mov edx, 0x60a224
mov ecx, esi
call fcn.0053ec00
test eax, eax
jne 0x590dcd
mov dword [esp + 0x38], edi
mov edx, dword [esp + 0xb8]
add edi, 1
cmp edi, dword [edx + 4]
mov dword [esp + 0x18], edi
jl 0x590d00
jmp 0x590e13
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + edx*8]
mov ecx, dword [esp + 0xac]
mov edi, dword [esp + 0xa8]
push eax
push ebx
push ecx
push str.table__S_has_no_column_named__s
call fcn.00550e70
add esp, 0x10
mov byte [edi + 0x12], 1
jmp 0x591bbc
cmp edx, ebx
mov eax, dword [esp + 0x10]
jle 0x590e13
mov edx, dword [eax + 4]
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x40]
test dword [eax + 0xc], 0x1000
mov edi, dword [esp + 0xa8]
je 0x590e75
add dword [edi + 0x48], 1
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x58], ecx
jg 0x590e4c
mov edi, ebp
call fcn.0054c1a0
test eax, eax
mov edi, dword [esp + 0xa8]
jne 0x590e75
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov ecx, dword [esp + 0x58]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 7
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 + 0x62], bl
cmp dword [esp + 0x5c], ebx
jne 0x590ed3
mov eax, dword [edi + 0x44]
push 0x27
push eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x18]
push edi
call fcn.00573710
mov esi, dword [esp + 0x4c]
add esp, 0xc
lea ecx, [eax*4 + 4]
mov dword [esp + 0x30], eax
call fcn.00549520
cmp eax, ebx
mov dword [esp + 0x64], eax
je 0x591bbc
mov esi, dword [esp + 0x30]
xor ecx, ecx
test esi, esi
jle 0x590ed1
lea esp, [esp]
add dword [edi + 0x48], 1
mov edx, dword [edi + 0x48]
mov dword [eax + ecx*4], edx
add ecx, 1
cmp ecx, esi
jl 0x590ec0
xor ebx, ebx
cmp dword [esp + 0x50], ebx
je 0x590ef7
mov edx, dword [esp + 0x28]
push edx
push 0x41
mov eax, ebp
call fcn.0054c2d0
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0xc]
add esp, 8
mov dword [esp + 0x54], eax
jmp 0x590f27
cmp dword [esp + 0xb4], ebx
je 0x590f27
mov ecx, dword [esp + 0x70]
push ecx
push 4
mov eax, ebp
call fcn.0054c2d0
mov edx, dword [esp + 0x1c]
push edx
mov dword [esp + 0x60], eax
push 0x1a
mov eax, ebp
call fcn.0054c2d0
add esp, 0x10
mov dword [esp + 0x60], eax
add dword [edi + 0x48], 1
mov eax, dword [edi + 0x48]
mov edx, dword [esp + 0x10]
mov edx, dword [edx + 8]
mov esi, dword [esp + 0x10]
lea ecx, [eax + 1]
lea eax, [eax + edx + 1]
mov dword [edi + 0x48], eax
test byte [esi + 0x1e], 0x10
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], ecx
je 0x590f5e
add ecx, 1
add eax, 1
mov dword [esp + 0x14], ecx
mov dword [edi + 0x48], eax
add ecx, 1
mov eax, ebp
mov dword [esp + 0x30], ecx
call fcn.0054c340
test byte [esp + 0x1c], 1
mov dword [esp + 0x24], eax
je 0x5912ae
mov eax, dword [esi + 8]
mov ecx, dword [edi + 0x38]
mov esi, dword [edi + 0x3c]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x20], esi
jg 0x590f9c
lea edx, [eax + esi]
sub ecx, eax
mov dword [edi + 0x3c], edx
mov dword [edi + 0x38], ecx
jmp 0x590fab
mov ecx, dword [edi + 0x48]
lea esi, [ecx + 1]
add eax, ecx
mov dword [esp + 0x20], esi
mov dword [edi + 0x48], eax
cmp dword [esp + 0x38], ebx
jge 0x591001
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x590fcf
mov edi, ebp
call fcn.0054c1a0
test eax, eax
mov edi, dword [esp + 0xa8]
jne 0x5910b7
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x20]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 4], 0xffffffff
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
jmp 0x5910b7
cmp dword [esp + 0x50], ebx
mov eax, dword [esp + 0x38]
je 0x591020
mov ecx, dword [esp + 0x28]
push esi
push eax
push ecx
push 0x1c
mov eax, ebp
call fcn.0054c220
add esp, 0x10
jmp 0x591037
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + edx*4]
mov ecx, edi
call fcn.0054d520
push esi
push 0x4a
mov eax, ebp
call fcn.0054c2d0
mov esi, dword [ebp + 0xc]
add esp, 8
cmp dword [ebp + 0x10], esi
mov ecx, eax
mov dword [esp + 0x1c], ecx
jg 0x591061
mov edi, ebp
call fcn.0054c1a0
test eax, eax
mov ecx, dword [esp + 0x1c]
jne 0x59108e
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x20]
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 4], 0xffffffff
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [ebp + 0xc]
cmp eax, ecx
jle 0x59109f
mov edx, dword [ebp + 0x14]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esp + 0x20]
push eax
push 0x15
mov eax, ebp
call fcn.0054c2d0
mov edi, dword [esp + 0xb0]
add esp, 8
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], ebx
mov dword [esp + 0x18], ebx
jle 0x5911eb
mov dword [esp + 0x48], ebx
lea esp, [esp]
mov eax, dword [esp + 0xb8]
cmp eax, ebx
jne 0x5910e1
mov esi, dword [esp + 0x18]
jmp 0x591109
mov ecx, dword [eax + 4]
xor esi, esi
cmp ecx, ebx
jle 0x591109
mov eax, dword [eax]
add eax, 4
nop
mov edx, dword [esp + 0x18]
cmp dword [eax], edx
je 0x591102
add esi, 1
add eax, 8
cmp esi, ecx
jl 0x5910f0
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x50]
cmp ecx, ebx
jne 0x59111a
cmp dword [esp + 0xb0], ebx
je 0x591123
cmp eax, ebx
je 0x59114a
cmp esi, dword [eax + 4]
jl 0x59114a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
lea esi, [eax + ecx + 1]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + ecx + 4]
mov ecx, edi
call fcn.0054d520
jmp 0x5911ce
cmp ecx, ebx
je 0x5911a7
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x10], eax
mov dword [esp + 0x1c], eax
jg 0x591170
mov edi, ebp
call fcn.0054c1a0
test eax, eax
mov edi, dword [esp + 0xa8]
jne 0x5911ce
mov eax, dword [esp + 0x1c]
add dword [ebp + 0xc], 1
mov ecx, dword [esp + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x14]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x18]
lea edx, [edx + ecx + 1]
mov byte [eax], 0x1c
mov byte [eax + 3], bl
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
jmp 0x5911ce
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
lea ecx, [eax + ecx + 1]
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + 0xc]
lea edx, [esi + esi*4]
mov edx, dword [eax + edx*4]
push edx
mov eax, edi
call fcn.0054d590
add esp, 4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add dword [esp + 0x48], 0x18
add eax, 1
cmp eax, dword [ecx + 8]
mov dword [esp + 0x18], eax
jl 0x5910d0
cmp dword [esp + 0x5c], ebx
jne 0x591253
mov edx, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
mov eax, dword [edx + 8]
mov dword [esp + 0x1c], eax
jg 0x59120f
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x59123f
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add ecx, 1
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 + 0x62], bl
mov eax, dword [esp + 0x10]
push ebp
call fcn.0054e610
mov edi, dword [esp + 0xac]
add esp, 4
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
sub edx, dword [esi + 8]
mov ecx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0x6c]
push ecx
sub edx, 1
push edx
push esi
push 1
push ebx
push 0x69
push eax
push edi
call fcn.00596b20
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x44]
add eax, 1
push ecx
mov esi, edi
mov dword [esp + 0x44], eax
call fcn.005454a0
mov edx, dword [esp + 0x44]
add esp, 0x28
cmp edx, dword [edi + 0x38]
jle 0x5912ae
mov ecx, dword [esp + 0x20]
mov eax, edx
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], ecx
cmp dword [esp + 0x5c], ebx
jne 0x5918b6
mov edx, dword [esp + 0x10]
test byte [edx + 0x1e], 0x10
je 0x5912fe
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x5912d5
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x5912fe
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x34]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0xa
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
mov byte [ebp + 0x62], bl
mov eax, dword [esp + 0x38]
cmp eax, ebx
jl 0x591492
cmp dword [esp + 0x50], ebx
je 0x591376
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
push ecx
push eax
push edx
push 0x1c
mov eax, ebp
call fcn.0054c220
add esp, 0x10
mov edx, dword [esp + 0x10]
test byte [edx + 0x1e], 0x10
jne 0x591440
mov edi, dword [esp + 0x14]
push edi
push 0x4a
mov eax, ebp
call fcn.0054c2d0
mov ecx, dword [esp + 0x4c]
mov esi, eax
mov eax, dword [esp + 0x44]
push eax
push edi
push ecx
push 0x36
mov eax, ebp
call fcn.0054c220
mov eax, dword [ebp + 0xc]
add esp, 0x18
cmp eax, esi
jle 0x59147f
mov ecx, dword [ebp + 0x14]
lea edx, [esi + esi*4]
mov dword [ecx + edx*4 + 8], eax
jmp 0x59147f
cmp dword [esp + 0xb4], ebx
je 0x5913ca
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x591392
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x591327
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x4c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x38]
add edx, ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x14]
mov byte [eax], 0xf
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 + 0x62], bl
jmp 0x591327
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + 0xc]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xa8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4]
call fcn.0054d520
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp]
sub eax, 1
cmp byte [ecx + 0x1e], bl
je 0x5913ff
mov eax, 0x606cd8
jmp 0x591410
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x14]
lea eax, [eax + edx*4]
cmp eax, ebx
je 0x591327
cmp byte [eax], 0xa
jne 0x591327
mov ecx, dword [esp + 0x10]
test byte [ecx + 0x1e], 0x10
jne 0x591327
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov byte [eax], 0x36
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
jmp 0x5914f5
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x591453
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x59147f
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov ecx, dword [esp + 0x14]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
add esi, 2
mov byte [eax], 0x49
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 [ebp + 0x62], bl
mov edx, dword [esp + 0x14]
push edx
push 0x15
mov eax, ebp
call fcn.0054c2d0
add esp, 8
jmp 0x5914fd
mov eax, dword [esp + 0x10]
test byte [eax + 0x1e], 0x10
je 0x5914da
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x5914af
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x5914fd
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x14]
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 + 0x62], bl
jmp 0x5914fd
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
push edx
push eax
push ecx
push 0x36
mov eax, ebp
call fcn.0054c220
add esp, 0x10
mov dword [esp + 0x7c], 1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
push edx
push eax
mov eax, dword [esp + 0xb0]
call fcn.0054e750
mov ecx, dword [esp + 0x18]
xor eax, eax
add esp, 8
cmp dword [ecx + 8], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], eax
jle 0x59164c
mov edx, dword [esp + 0x30]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], edx
lea esp, [esp]
mov edi, dword [esp + 0x10]
cmp eax, dword [edi + 4]
jne 0x59158e
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x591560
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x59162a
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0xa
mov dword [eax + 4], ebx
mov edx, dword [esp + 0x14]
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 + 0x62], bl
jmp 0x59162a
mov edx, dword [esp + 0xb8]
cmp edx, ebx
jne 0x5916c8
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x3c]
cmp byte [eax + ecx + 0x17], bl
je 0x5916be
add dword [esp + 0x20], 1
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
mov eax, dword [eax + ecx + 4]
mov edx, dword [esp + 0xa8]
push esi
push eax
push edx
call fcn.0057c0c0
mov ecx, eax
add esp, 0xc
cmp ecx, esi
mov dword [esp + 0x1c], ecx
je 0x59162a
mov eax, dword [esp + 0xa8]
mov edi, dword [eax + 0xc]
cmp edi, ebx
je 0x59162a
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
jg 0x591601
call fcn.0054c1a0
test eax, eax
jne 0x59162a
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 0x14]
add dword [edi + 0xc], 1
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
mov byte [eax], 0xf
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [edi + 0x62], bl
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
add dword [esp + 0x14], 1
add dword [esp + 0x3c], 0x18
add eax, 1
cmp eax, dword [edx + 8]
mov dword [esp + 0x18], eax
jl 0x591540
mov esi, dword [esp + 0x10]
test byte [esi + 0x1e], 0x10
je 0x591837
mov eax, dword [esi + 0x30]
cmp eax, ebx
mov dword [esp + 0x4c], eax
je 0x59167f
mov ecx, dword [esp + 0x40]
lea esp, [esp]
cmp dword [eax], ecx
je 0x59167b
mov eax, dword [eax + 0x10]
cmp eax, ebx
jne 0x591670
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa8]
push esi
call fcn.0054ec80
mov ecx, dword [esi + 8]
mov esi, dword [ebp + 0xc]
add ecx, 2
add esp, 4
cmp dword [ebp + 0x10], esi
mov dword [esp + 0x1c], ecx
jg 0x5917a2
mov edi, ebp
call fcn.0054c1a0
test eax, eax
je 0x59179e
mov esi, 1
jmp 0x5917cf
mov esi, dword [esp + 0x18]
sub esi, dword [esp + 0x20]
jmp 0x5916f2
mov ecx, dword [edx + 4]
xor esi, esi
cmp ecx, ebx
jle 0x5916fa
mov eax, dword [edx]
mov edi, dword [esp + 0x18]
add eax, 4
lea ebx, [ebx]
cmp dword [eax], edi
je 0x5916ee
add esi, 1
add eax, 8
cmp esi, ecx
jl 0x5916e0
mov edi, dword [esp + 0x10]
cmp esi, ebx
jl 0x5915b3
cmp dword [esp + 0x2c], ebx
je 0x5915b3
cmp edx, ebx
je 0x591711
cmp esi, dword [edx + 4]
jge 0x5915b3
cmp dword [esp + 0x50], ebx
je 0x591733
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
push edx
push esi
push eax
push 0x1c
mov eax, ebp
call fcn.0054c220
add esp, 0x10
jmp 0x59162a
cmp dword [esp + 0xb4], ebx
je 0x591779
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x10], eax
mov dword [esp + 0x1c], eax
jg 0x591757
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x59162a
mov eax, dword [esp + 0x1c]
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x4c]
add esi, ecx
mov byte [eax], 0xf
mov dword [eax + 4], esi
jmp 0x591573
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esp + 0xa8]
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x14]
mov eax, dword [edx + eax*4]
call fcn.0054d520
jmp 0x59162a
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebp + 0x14]
mov edx, 1
add dword [ebp + 0xc], edx
lea eax, [esi + esi*4]
lea eax, [edi + eax*4]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x34]
mov byte [eax], 0x85
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov ecx, dword [ebp + 0x14]
cmp ecx, ebx
mov edi, dword [ebp]
mov eax, esi
je 0x59181b
cmp byte [edi + 0x1e], bl
jne 0x59181b
cmp esi, ebx
jge 0x5917ea
mov eax, dword [ebp + 0xc]
sub eax, 1
lea edx, [eax + eax*4]
movsx eax, byte [ecx + edx*4 + 1]
lea esi, [ecx + edx*4]
mov ecx, dword [esi + 0x10]
call fcn.0054c490
mov eax, dword [esp + 0x4c]
cmp eax, ebx
mov dword [esi + 0x10], ebx
jne 0x591810
mov dword [esi + 0x10], ebx
mov byte [esi + 1], bl
jmp 0x59181b
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xf6
add dword [eax + 0xc], 1
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx + 0x1a8]
cmp eax, ebx
jne 0x59182e
mov eax, ecx
mov byte [eax + 0x159], 1
jmp 0x5918b6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0x34]
lea eax, [esp + 0x1c]
push eax
xor eax, eax
cmp dword [esp + 0x3c], ebx
push ecx
mov ecx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x50]
setge al
push ebx
push eax
mov eax, dword [esp + 0xbc]
push ecx
push edi
push edx
push esi
push eax
call fcn.00586aa0
mov ecx, dword [esp + 0xd0]
push edi
push ebx
push esi
push ecx
call fcn.0058ada0
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x9c]
xor edx, edx
cmp dword [esp + 0x54], ebx
sete dl
push edx
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0xe8]
push ebx
push ecx
push edi
push edx
push esi
push eax
call fcn.0055d6d0
add esp, 0x58
mov ecx, dword [esp + 0x40]
test dword [ecx + 0xc], 0x1000
je 0x591903
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x5918d6
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x591903
mov eax, dword [ebp + 0x14]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x58]
mov ecx, 1
add dword [ebp + 0xc], 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 + 0x62], bl
mov ecx, dword [esp + 0x68]
cmp ecx, ebx
je 0x59193e
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x18]
sub eax, dword [edx + 8]
sub eax, 2
push eax
mov eax, dword [esp + 0xb4]
push edx
push 2
push ebx
push 0x69
push ecx
push eax
call fcn.00596b20
add esp, 0x24
mov eax, dword [ebp + 0x20]
cmp eax, ebx
je 0x591957
mov ecx, dword [esp + 0x24]
lea edx, [ecx*4 + 4]
mov ecx, dword [ebp + 0xc]
sub eax, edx
mov dword [eax], ecx
cmp dword [esp + 0x50], ebx
je 0x5919f8
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x591974
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x5919a1
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov ecx, dword [esp + 0x28]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x54]
mov byte [eax], 0x43
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 + 0x62], bl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
jle 0x5919b6
mov edx, dword [ebp + 0x14]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x5919cd
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x591a52
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x28]
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 + 0x62], bl
jmp 0x591a52
cmp dword [esp + 0xb4], ebx
je 0x591a52
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x591a14
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x591a3d
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x54]
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], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
jle 0x591a52
mov edx, dword [ebp + 0x14]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esp + 0x10]
test byte [eax + 0x1e], 0x10
jne 0x591b13
cmp dword [esp + 0x5c], 0
jne 0x591b13
mov ebx, dword [ebp + 0xc]
cmp dword [ebp + 0x10], ebx
jg 0x591a7e
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x591aab
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x44]
xor ecx, ecx
mov byte [eax], 0x2b
mov byte [eax + 3], cl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov byte [ebp + 0x62], cl
jmp 0x591aad
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
cmp eax, ecx
mov dword [esp + 0x30], eax
je 0x591b13
mov ebx, dword [esp + 0x44]
add ebx, 1
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x591ad6
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x591aff
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
xor ecx, ecx
mov byte [eax], 0x2b
mov byte [eax + 3], cl
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov byte [ebp + 0x62], cl
jmp 0x591b01
xor ecx, ecx
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
add ebx, 1
cmp eax, ecx
mov dword [esp + 0x30], eax
jne 0x591ac3
mov ebx, dword [esp + 0xa8]
cmp byte [ebx + 0x13], 0
jne 0x591b32
cmp dword [ebx + 0x1ac], 0
jne 0x591b32
push ebx
call fcn.0055d2d0
add esp, 4
mov ecx, dword [esp + 0x40]
test dword [ecx + 0xc], 0x1000
je 0x591bbc
cmp byte [ebx + 0x13], 0
jne 0x591bbc
cmp dword [ebx + 0x1ac], 0
jne 0x591bbc
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x591b61
mov edi, ebp
call fcn.0054c1a0
test eax, eax
jne 0x591b91
mov eax, dword [ebp + 0x14]
mov ecx, 1
add dword [ebp + 0xc], ecx
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax], 0x10
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov byte [ebp + 0x62], cl
push 1
mov edi, ebp
call fcn.00552430
mov eax, dword [ebp]
add esp, 4
cmp byte [eax + 0x1e], 0
jne 0x591bbc
mov edx, dword [ebp + 0x28]
push 1
push 0xffffffffffffffff
xor eax, eax
mov ecx, str.rows_inserted
call fcn.0056e710
add esp, 8
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0x40]
push ecx
call fcn.00545c50
mov edx, dword [esp + 0xb4]
push edx
mov edi, esi
call fcn.00545040
mov edi, dword [esp + 0xbc]
add esp, 8
test edi, edi
je 0x591bfb
push edi
push esi
call fcn.005466e0
push edi
push esi
call fcn.0053e910
add esp, 0x10
mov ebp, dword [esp + 0xb8]
test ebp, ebp
je 0x591c3c
xor ebx, ebx
cmp dword [ebp + 4], ebx
jle 0x591c28
lea ecx, [ecx]
mov eax, dword [ebp]
mov ecx, dword [eax + ebx*8]
push ecx
push esi
call fcn.0053e910
add ebx, 1
add esp, 8
cmp ebx, dword [ebp + 4]
jl 0x591c10
mov edx, dword [ebp]
push edx
push esi
call fcn.0053e910
push ebp
push esi
call fcn.0053e910
add esp, 0x10
mov eax, dword [esp + 0x64]
push eax
push esi
call fcn.0053e910
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret