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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
xor eax, eax
mov dword [ebp - 0x44], 0
push ebx
push esi
mov esi, dword [ebp + 8]
or ecx, 0xffffffff
push edi
xorps xmm0, xmm0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], eax
mov edi, dword [esi]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov byte [ebp - 1], al
mov byte [ebp - 0xd], al
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x2c], edi
movups xmmword [ebp - 0x84], xmm0
mov dword [ebp - 0x74], eax
cmp dword [esi + 0x44], eax
jne 0x591d2d
cmp byte [edi + 0x45], al
jne 0x591d2d
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x590fb8
test dword [eax + 8], 0x200
je 0x590fb8
cmp dword [eax + 0x30], 0
jne 0x590fb8
mov ecx, dword [eax]
push eax
push edi
mov dword [ebp - 0x30], ecx
mov dword [eax], 0
call fcn.0059de30
add esp, 8
mov dword [ebp - 0xc], 0
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + 0x10], 0
je 0x5913b6
push ebx
push esi
call fcn.0059ed60
mov ebx, eax
add esp, 8
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x5913b6
push dword [ebx + 0x40]
push edi
call fcn.0059bb30
mov edx, dword [ebp - 0x2c]
mov edi, eax
mov ecx, edi
mov dword [ebp - 0x70], edi
add ecx, ecx
mov eax, dword [edx + 0x10]
push dword [eax + ecx*8]
push 0
push dword [ebx]
push 0x12
push esi
call fcn.0057f450
add esp, 0x1c
test eax, eax
jne 0x5913b6
mov al, byte [ebx + 0x2a]
shr al, 5
and al, 1
mov byte [ebp + 0x13], al
lea eax, [ebp - 0x3c]
push eax
push 0
push 0x6c
push ebx
push esi
call fcn.005a0070
mov dword [ebp - 0x54], eax
xor eax, eax
cmp dword [ebx + 0xc], eax
push ebx
setne al
push esi
mov dword [ebp - 0x64], eax
call fcn.005ae420
add esp, 0x1c
test eax, eax
jne 0x5913b6
push dword [ebp - 0x3c]
push ebx
push esi
call fcn.00591fb0
add esp, 0xc
test eax, eax
jne 0x5913b6
push esi
call fcn.00590030
mov ebx, eax
add esp, 4
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x5913b6
cmp byte [esi + 0x12], 0
jne 0x59107d
or dword [ebx + 0x60], 4
cmp dword [ebp - 0xc], 0
jne 0x59108d
cmp dword [ebp - 0x54], 0
jne 0x59108d
xor eax, eax
jmp 0x591092
mov eax, 1
push edi
push eax
push esi
call fcn.0057fdf0
add esp, 0xc
cmp dword [ebp + 0x14], 0
jne 0x5910be
push edi
push dword [ebp + 0x18]
push dword [ebp - 0xc]
push dword [ebp - 8]
push esi
call fcn.005c1b50
add esp, 0x14
test eax, eax
jne 0x591cad
push dword [ebp - 8]
push edi
push esi
call fcn.0055dec0
mov ecx, dword [esi + 0x4c]
add esp, 0xc
mov edx, dword [ebp - 8]
mov dword [ebp - 0x4c], eax
lea eax, [ecx + 1]
mov edi, eax
mov dword [ebp - 0x48], eax
movsx eax, word [edx + 0x22]
inc eax
mov dword [ebp - 0x14], edi
add eax, ecx
mov dword [esi + 0x4c], eax
test byte [edx + 0x2a], 0x10
je 0x5910f9
lea edi, [ecx + 2]
inc eax
mov dword [ebp - 0x14], edi
mov dword [esi + 0x4c], eax
lea eax, [edi + 1]
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x58], eax
mov al, byte [edx + 0x2a]
shr al, 7
not al
and eax, 0xffffff01
mov dword [ebp - 0x18], eax
test edi, edi
je 0x5911f2
xor ecx, ecx
cmp dword [edi + 4], ecx
jle 0x591131
mov eax, dword [edi]
mov dword [eax + ecx*8 + 4], 0xffffffff
inc ecx
cmp ecx, dword [edi + 4]
jl 0x591121
xor esi, esi
mov dword [ebp - 0x38], esi
cmp dword [edi + 4], esi
jle 0x5911ef
nop
movsx ebx, word [edx + 0x22]
xor edi, edi
test ebx, ebx
jle 0x5911ab
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
lea eax, [eax + esi*8]
mov esi, dword [edx + 4]
mov dword [ebp - 0x20], eax
nop dword [eax + eax]
push dword [esi]
push dword [eax]
call fcn.0059f6a0
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x20]
je 0x591183
inc edi
add esi, 0x10
cmp edi, ebx
jl 0x591160
mov esi, dword [ebp - 0x38]
mov edx, dword [ebp - 8]
jmp 0x5911ab
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x38]
mov edx, dword [ebp - 8]
mov dword [eax + 4], edi
xor eax, eax
movzx ecx, cl
cmp esi, edi
cmovne ecx, eax
movsx eax, word [edx + 0x20]
mov dword [ebp - 0x18], ecx
cmp edi, eax
mov ecx, dword [ebp - 0x40]
cmove ecx, esi
mov dword [ebp - 0x40], ecx
movsx eax, word [edx + 0x22]
cmp edi, eax
mov edi, dword [ebp + 0x14]
jl 0x5911df
mov eax, dword [edi]
push dword [eax + esi*8]
call fcn.00592040
add esp, 4
test eax, eax
je 0x591352
cmp byte [ebp + 0x13], 0
jne 0x591352
mov edx, dword [ebp - 8]
mov dword [ebp - 0x40], esi
mov byte [ebp - 0x18], 0
inc esi
mov dword [ebp - 0x38], esi
cmp esi, dword [edi + 4]
jl 0x591140
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp + 8]
cmp dword [ebp - 0xc], 0
je 0x591374
inc dword [esi + 0x4c]
mov edi, dword [esi + 0x4c]
mov esi, dword [ebx + 0x20]
inc esi
push esi
push 0
push edi
push 0xf
push ebx
call fcn.005a3780
mov ecx, dword [ebp + 8]
xor eax, eax
cmp byte [ebp - 0x18], al
mov dword [ebp - 0x78], 0
cmovne eax, dword [ebp - 0x58]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 8]
mov word [ebp - 0x84], 0xd
mov dword [ebp - 0x80], edi
movsx eax, word [eax + 0x22]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x84]
push eax
push dword [ebp - 0xc]
push ecx
call fcn.0059bd50
mov ecx, dword [ebp - 0x7c]
add esp, 0x20
mov dword [ebp - 0x50], ecx
test eax, eax
jne 0x5913b6
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 0x45], 0
jne 0x5913b6
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jne 0x5913b6
push edi
push ebx
call fcn.005a44d0
lea eax, [esi - 1]
push eax
push ebx
call fcn.005ab430
mov eax, dword [ebp - 0xc]
add esp, 0x10
cmp dword [ebp - 0x54], 0
mov esi, dword [ebp + 8]
mov eax, dword [eax]
mov ebx, dword [eax]
mov dword [ebp - 0x20], ebx
jne 0x5912b7
push dword [ebp - 8]
push dword [ebp - 0x70]
push esi
call fcn.00578a30
add esp, 0xc
test eax, eax
je 0x59142c
mov edx, dword [esi + 0x48]
push esi
mov byte [ebp - 1], 1
mov dword [ebp - 0x1c], edx
lea eax, [edx + 1]
mov dword [esi + 0x48], eax
call fcn.0058f710
push esi
mov edi, eax
call fcn.0058f710
push dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
mov ebx, eax
push edx
push 0x6a
push esi
call fcn.005a3710
push dword [ebp - 0x80]
push 0x10
push esi
call fcn.005a36a0
push edi
push dword [ebp - 0x20]
mov esi, eax
push dword [ebp - 0x50]
push 0x62
push dword [ebp - 0x24]
call fcn.005a3780
push ebx
push dword [ebp - 0x1c]
push 0x71
push dword [ebp - 0x24]
call fcn.005a3710
add esp, 0x48
push ebx
push edi
push dword [ebp - 0x1c]
push 0x72
push dword [ebp - 0x24]
call fcn.005a3780
push esi
push dword [ebp - 0x24]
call fcn.005aad60
push esi
push dword [ebp - 0x24]
call fcn.005ab430
mov esi, dword [ebp + 8]
push edi
push esi
call fcn.0059a120
push ebx
push esi
call fcn.0059a120
mov ebx, dword [ebp - 0x20]
add esp, 0x34
jmp 0x59142c
mov eax, dword [edi]
mov ebx, dword [ebp + 8]
push dword [eax + esi*8]
mov esi, dword [ebp + 0xc]
push 0
push esi
push str.table__S_has_no_column_named__s
push ebx
call fcn.00587f40
add esp, 0x14
mov byte [ebx + 0x11], 1
jmp 0x5913b9
mov eax, dword [ebp - 0x30]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0xffffffff
movups xmmword [ebp - 0xa4], xmm0
mov dword [ebp - 0xa4], esi
movups xmmword [ebp - 0x94], xmm0
test eax, eax
je 0x591427
mov ebx, dword [eax]
push eax
lea eax, [ebp - 0xa4]
mov dword [ebp - 0x20], ebx
push eax
call fcn.0059a2d0
add esp, 8
test eax, eax
je 0x59142c
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp - 0xc]
push esi
mov esi, dword [ebp - 0x2c]
push esi
call fcn.0059e6e0
mov eax, dword [ebp - 0x30]
add esp, 8
test eax, eax
je 0x5913da
push eax
push esi
call fcn.005692b0
add esp, 8
test ebx, ebx
je 0x5913ea
push 1
push ebx
push esi
call fcn.00562870
add esp, 0xc
push dword [ebp + 0x14]
push esi
call fcn.00590430
mov ecx, dword [ebp - 0x68]
add esp, 8
test ecx, ecx
je 0x591d77
test esi, esi
je 0x591d6e
cmp dword [esi + 0x1c8], 0
je 0x591d43
push ecx
push esi
call fcn.00570a50
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 8]
test edx, edx
jne 0x591441
test ebx, ebx
jle 0x591441
movsx ecx, word [eax + 0x20]
mov dword [ebp - 0x40], ecx
movsx esi, word [eax + 0x22]
xor edi, edi
xor ebx, ebx
xor ecx, ecx
cmp esi, 2
jl 0x591489
mov ecx, dword [eax + 4]
lea edx, [esi - 2]
shr edx, 1
add ecx, 0x1f
inc edx
lea eax, [edx + edx]
mov dword [ebp - 0x70], eax
movzx eax, byte [ecx - 0x10]
lea ecx, [ecx + 0x20]
shr eax, 1
and eax, 1
add edi, eax
movzx eax, byte [ecx - 0x20]
shr eax, 1
and eax, 1
add ebx, eax
sub edx, 1
jne 0x591462
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x14]
cmp ecx, esi
jge 0x59149e
mov eax, dword [eax + 4]
add ecx, ecx
movzx ecx, byte [eax + ecx*8 + 0xf]
shr ecx, 1
and ecx, 1
jmp 0x5914a0
xor ecx, ecx
lea eax, [ebx + edi]
add ecx, eax
test edx, edx
jne 0x5914d3
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x5914f4
sub esi, ecx
cmp edx, esi
je 0x5914f4
push edx
push esi
mov esi, dword [ebp + 0xc]
push 0
push esi
push str.table__S_has__d_columns_but__d_values_were_supplied
push dword [ebp + 8]
call fcn.00587f40
add esp, 0x18
jmp 0x5913b9
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x20]
cmp edx, eax
je 0x5914f4
push eax
push edx
push str._d_values_for__d_columns
push dword [ebp + 8]
call fcn.00587f40
add esp, 0x10
jmp 0x5913b6
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x24]
test byte [eax + 0x18], 0x80
je 0x59151a
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
push eax
push 0
push 0x4b
push ebx
mov dword [ebp - 0x6c], eax
call fcn.005a3710
add esp, 0x10
cmp dword [ebp - 0x64], 0
jne 0x591577
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x44]
push eax
push 0
push 0xffffffffffffffff
push 0
push 0x68
push dword [ebp - 8]
push edi
call fcn.00593e30
mov esi, eax
push 0
lea eax, [esi*4 + 4]
push eax
push dword [ebp - 0x2c]
call fcn.00586310
mov edx, eax
add esp, 0x2c
mov dword [ebp - 0x68], edx
test edx, edx
je 0x5913b6
xor ecx, ecx
test esi, esi
jle 0x591571
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x591563
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x28], eax
cmp byte [ebp - 1], 0
je 0x591593
push dword [ebp - 0x1c]
push 0x38
push ebx
call fcn.005a36a0
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x5c], eax
jmp 0x5915ac
cmp dword [ebp - 0xc], 0
je 0x5915af
push dword [ebp - 0x80]
push 0x10
push ebx
call fcn.005a36a0
mov esi, eax
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x60], esi
add esp, 0xc
push ebx
call fcn.005ab8a0
add esp, 4
mov dword [ebp - 0x38], eax
test byte [ebp - 0x3c], 1
je 0x5917b7
mov eax, dword [ebp - 8]
movsx ecx, word [eax + 0x22]
inc ecx
push ecx
push edi
call fcn.0058f6d0
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x18], esi
push esi
test eax, eax
jns 0x5915f3
push 0xffffffffffffffff
push 0x4b
push ebx
call fcn.005a3710
add esp, 0x10
jmp 0x59164c
cmp byte [ebp - 1], 0
je 0x59160a
push eax
push dword [ebp - 0x1c]
push 0x5f
push ebx
call fcn.005a3780
add esp, 0x14
jmp 0x59161f
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push edi
call fcn.00588cf0
add esp, 0xc
push esi
push 0x23
push ebx
call fcn.005a36a0
push dword [ebp - 0x18]
mov esi, eax
push 0xffffffffffffffff
push 0x4b
push ebx
call fcn.005a3710
push esi
push ebx
call fcn.005ab430
push dword [ebp - 0x18]
push 0x11
push ebx
call fcn.005a36a0
add esp, 0x30
mov eax, dword [ebp - 8]
xor ecx, ecx
xor esi, esi
cmp cx, word [eax + 0x22]
jge 0x59175e
mov ecx, dword [ebp - 0x18]
xor edx, edx
or eax, 0xffffffff
mov dword [ebp - 0x34], edx
sub eax, ecx
mov dword [ebp - 0x3c], eax
lea edi, [ecx + 1]
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x5916a0
mov edx, dword [eax + 4]
xor esi, esi
test edx, edx
jle 0x59169d
mov ecx, dword [eax]
mov ebx, dword [ebp - 0x3c]
add ecx, 4
lea eax, [ebx + edi]
cmp dword [ecx], eax
je 0x591697
inc esi
add ecx, 8
cmp esi, edx
jl 0x591688
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x34]
mov cl, byte [ebp - 1]
test cl, cl
jne 0x5916ad
cmp dword [ebp - 0x30], 0
je 0x5916b6
test eax, eax
je 0x591709
cmp esi, dword [eax + 4]
jl 0x591709
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + edx + 4]
test eax, eax
je 0x5916df
cmp byte [eax], 0x9d
jne 0x5916df
push edi
push dword [eax + 0x1c]
mov eax, dword [ebp + 8]
push 0x53
push dword [eax + 8]
call fcn.005a3710
add esp, 0x10
jmp 0x591736
push edi
push eax
push dword [ebp + 8]
call fcn.00589890
add esp, 0xc
cmp eax, edi
je 0x591736
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x591736
push edi
push eax
push 0x54
push ecx
call fcn.005a3710
add esp, 0x10
jmp 0x591736
push edi
test cl, cl
je 0x59171f
push esi
push dword [ebp - 0x1c]
push 0x5f
push ebx
call fcn.005a3780
add esp, 0x14
jmp 0x591736
mov eax, dword [ebp - 0x30]
lea ecx, [esi + esi*2]
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push dword [ebp + 8]
call fcn.00588d50
add esp, 0xc
cmp dword [ebp + 0x14], 0
jne 0x59173d
inc esi
mov eax, dword [ebp - 8]
inc edi
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
add edx, 0x10
add ecx, edi
mov dword [ebp - 0x34], edx
movsx eax, word [eax + 0x22]
cmp ecx, eax
jl 0x591670
mov edi, dword [ebp + 8]
cmp dword [ebp - 0x64], 0
mov esi, dword [ebp - 8]
jne 0x591776
mov eax, dword [ebp - 0x18]
inc eax
push eax
push esi
push ebx
call fcn.0059f790
add esp, 0xc
push dword [ebp - 0x38]
movsx eax, word [esi + 0x22]
push dword [ebp + 0x18]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
dec ecx
push ecx
push esi
push 1
push 0
push 0x6c
push dword [ebp - 0x54]
push edi
call fcn.00583dd0
movsx esi, word [esi + 0x22]
inc esi
push esi
push dword [ebp - 0x18]
push edi
call fcn.00588a70
add esp, 0x30
cmp esi, dword [edi + 0x3c]
jle 0x5917b7
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x3c], esi
mov dword [edi + 0x40], eax
cmp dword [ebp - 0x64], 0
jne 0x591b5a
mov esi, dword [ebp - 8]
test byte [esi + 0x2a], 0x10
je 0x5917da
push dword [ebp - 0x48]
push 0
push 0x4e
push ebx
call fcn.005a3710
add esp, 0x10
mov eax, dword [ebp - 0x40]
test eax, eax
js 0x5918e3
cmp byte [ebp - 1], 0
push dword [ebp - 0x14]
je 0x591844
push eax
push dword [ebp - 0x1c]
push 0x5f
push ebx
call fcn.005a3780
add esp, 0x14
test byte [esi + 0x2a], 0x10
jne 0x5918be
push dword [ebp - 0x14]
push 0x23
push ebx
call fcn.005a36a0
mov edx, dword [ebp - 0x4c]
mov esi, eax
mov ecx, dword [ebp - 0x44]
push edx
push dword [ebp - 0x14]
push ecx
push 0x71
push ebx
call fcn.005a3780
push esi
push ebx
call fcn.005ab430
add esp, 0x28
push dword [ebp - 0x14]
push 0x11
push ebx
call fcn.005a36a0
add esp, 0xc
jmp 0x59191b
cmp dword [ebp - 0xc], 0
je 0x59185b
add eax, dword [ebp - 0x50]
push eax
push 0x53
push ebx
call fcn.005a3710
add esp, 0x10
jmp 0x5917fd
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push edi
call fcn.00588cf0
mov eax, dword [ebx]
add esp, 0xc
mov ecx, dword [ebx + 0x20]
dec ecx
cmp byte [eax + 0x45], 0
je 0x591883
mov eax, 0x68444c
jmp 0x591894
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
test eax, eax
je 0x5917fd
cmp byte [eax], 0x4e
jne 0x5917fd
test byte [esi + 0x2a], 0x10
jne 0x5918be
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x4c]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 0xd], 1
mov byte [eax], 0x71
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x59191e
mov eax, dword [ebx + 0x20]
add eax, 2
push eax
push dword [ebp - 0x14]
push 0x22
push ebx
call fcn.005a3710
add esp, 0x10
push dword [ebp - 0x14]
push 0x11
push ebx
call fcn.005a36a0
add esp, 0xc
jmp 0x59191b
test byte [esi + 0x2a], 0x10
jne 0x59190b
cmp byte [ebp + 0x13], 0
jne 0x59190b
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x44]
push edx
push dword [ebp - 0x14]
push ecx
push 0x71
push ebx
call fcn.005a3780
add esp, 0x14
mov byte [ebp - 0xd], 1
jmp 0x59191b
push dword [ebp - 0x14]
push 0
push 0x4e
push ebx
call fcn.005a3710
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4c]
test eax, eax
jle 0x591937
push ecx
push eax
push 0x90
push dword [edi + 8]
call fcn.005a3710
add esp, 0x10
mov eax, dword [ebp - 8]
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x3c], edx
xor esi, esi
cmp cx, word [eax + 0x22]
jge 0x5919b8
mov dword [ebp + 0x10], ecx
nop dword [eax]
mov edi, dword [ebp - 0x58]
movsx eax, word [eax + 0x20]
add edi, esi
cmp esi, eax
jne 0x591968
push edi
push 0x4f
push ebx
call fcn.005a36a0
jmp 0x59199a
cmp dword [ebp + 0x14], 0
jne 0x591a47
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
test byte [eax + ecx + 0xf], 2
je 0x591a41
inc edx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 8]
push edi
mov eax, dword [eax + 4]
push dword [eax + ecx + 4]
push dword [ebp + 8]
call fcn.00589070
add esp, 0xc
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
inc esi
mov edx, dword [ebp - 0x3c]
add ecx, 0x10
mov dword [ebp + 0x10], ecx
movsx eax, word [eax + 0x22]
cmp esi, eax
mov eax, dword [ebp - 8]
jl 0x591950
test byte [eax + 0x2a], 0x10
je 0x591aec
mov esi, dword [eax + 0x38]
test esi, esi
je 0x5919db
mov edx, dword [ebp - 0x2c]
nop dword [eax]
cmp dword [esi], edx
je 0x5919db
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x5919d0
push eax
push dword [ebp + 8]
call fcn.005aef60
mov edi, dword [ebp - 8]
push 0xfffffffffffffff6
push esi
push dword [ebp - 0x48]
movsx eax, word [edi + 0x22]
add eax, 2
push eax
push 1
push 0xc
push ebx
call fcn.005a37e0
mov eax, dword [ebx]
add esp, 0x24
cmp byte [eax + 0x45], 0
jne 0x591a28
mov eax, dword [ebp + 0x18]
mov ecx, 2
movzx edx, al
cmp eax, 0xa
mov eax, dword [ebx + 0x20]
cmove edx, ecx
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov byte [eax + ecx*4 - 0x11], dl
mov esi, dword [ebp + 8]
mov ecx, esi
mov eax, dword [esi + 0x1a0]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
jmp 0x591b60
mov eax, esi
sub eax, edx
jmp 0x591a6f
mov edx, dword [ebp + 0x14]
xor eax, eax
mov edx, dword [edx + 4]
test edx, edx
jle 0x591a77
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
add ecx, 4
nop dword [eax + eax]
cmp dword [ecx], esi
je 0x591a6c
inc eax
add ecx, 8
cmp eax, edx
jl 0x591a60
mov ecx, dword [ebp + 0x10]
test eax, eax
js 0x591987
cmp dword [ebp - 0x20], 0
je 0x591987
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x591a91
cmp eax, dword [edx + 4]
jge 0x591987
cmp byte [ebp - 1], 0
je 0x591aac
push edi
push eax
push dword [ebp - 0x1c]
push 0x5f
push ebx
call fcn.005a3780
add esp, 0x14
jmp 0x59199d
cmp dword [ebp - 0xc], 0
je 0x591ad2
mov edx, dword [ebp - 0x50]
cmp edx, dword [ebp - 0x58]
je 0x5919a0
push edi
add eax, edx
push eax
push 0x54
push ebx
call fcn.005a3710
add esp, 0x10
jmp 0x59199d
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x30]
push edi
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push dword [ebp + 8]
call fcn.00588cf0
jmp 0x59199a
mov ecx, dword [ebp - 0x40]
lea eax, [ebp + 0x10]
push 0
push eax
push dword [ebp - 0x38]
mov edi, dword [ebp - 8]
test ecx, ecx
push dword [ebp + 0x18]
mov esi, dword [ebp + 8]
setns al
movzx eax, al
push eax
push 0
push dword [ebp - 0x48]
push dword [ebp - 0x28]
push dword [ebp - 0x44]
push dword [ebp - 0x68]
push edi
push esi
call fcn.0058d8f0
push 0
push 0
push dword [ebp - 0x48]
push 0
push edi
push esi
call fcn.0058ca40
add esp, 0x48
xor eax, eax
cmp dword [ebp + 0x10], eax
sete al
push eax
movzx eax, byte [ebp - 0xd]
push eax
push 0
push dword [ebp - 0x68]
push dword [ebp - 0x48]
push dword [ebp - 0x28]
push dword [ebp - 0x44]
push edi
push esi
call fcn.00584c40
add esp, 0x24
jmp 0x591b60
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
test byte [eax + 0x18], 0x80
je 0x591b79
push 1
push dword [ebp - 0x6c]
push 0x5a
push ebx
call fcn.005a3710
add esp, 0x10
mov edx, dword [ebp - 0x54]
test edx, edx
je 0x591ba4
push dword [ebp - 0x38]
movsx eax, word [edi + 0x22]
push dword [ebp + 0x18]
mov ecx, dword [ebp - 0x58]
sub ecx, eax
sub ecx, 2
push ecx
push edi
push 2
push 0
push 0x6c
push edx
push esi
call fcn.00583dd0
add esp, 0x24
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + 0x78]
test ecx, ecx
je 0x591bbf
mov eax, dword [ebp - 0x38]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0x20]
mov dword [ecx], eax
mov eax, dword [ebx + 0x20]
dec eax
cmp byte [ebp - 1], 0
mov dword [edx + 0x60], eax
je 0x591c1f
push dword [ebp - 0x5c]
push dword [ebp - 0x1c]
push 7
push ebx
call fcn.005a3710
mov ecx, dword [ebx + 0x20]
add esp, 0x10
mov eax, dword [ebx + 0x18]
dec ecx
mov dword [eax + 0x60], ecx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebx + 0x20]
test ecx, ecx
jns 0x591bf4
lea ecx, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x45], 0
je 0x591c03
mov eax, 0x68444c
jmp 0x591c0c
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
push dword [ebp - 0x1c]
mov dword [eax + 8], edx
push 0x6e
push ebx
call fcn.005a36a0
add esp, 0xc
jmp 0x591c63
cmp dword [ebp - 0xc], 0
je 0x591c63
push dword [ebp - 0x5c]
push ebx
call fcn.005aad60
mov ecx, dword [ebx + 0x20]
add esp, 8
mov eax, dword [ebx + 0x18]
dec ecx
mov dword [eax + 0x60], ecx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebx + 0x20]
test ecx, ecx
jns 0x591c48
lea ecx, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x45], 0
je 0x591c57
mov eax, 0x68444c
jmp 0x591c60
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
test byte [edi + 0x2a], 0x10
jne 0x591cad
cmp dword [ebp - 0x64], 0
jne 0x591cad
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x44]
cmp ecx, eax
jge 0x591c88
push ecx
push 0x6e
push ebx
call fcn.005a36a0
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov esi, dword [edi + 8]
test esi, esi
je 0x591caa
nop
push eax
push 0x6e
push ebx
call fcn.005a36a0
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov esi, dword [esi + 0x14]
inc eax
mov dword [ebp - 0x28], eax
test esi, esi
jne 0x591c90
mov esi, dword [ebp + 8]
cmp byte [esi + 0x12], 0
jne 0x591cce
cmp dword [esi + 0x1a4], 0
jne 0x591cce
cmp dword [esi + 0x19c], 0
je 0x591cce
push esi
call fcn.0055df70
add esp, 4
mov eax, dword [ebp - 0x2c]
test byte [eax + 0x18], 0x80
je 0x5913b6
cmp byte [esi + 0x12], 0
jne 0x591d38
cmp dword [esi + 0x1a4], 0
jne 0x5913b6
push 1
push dword [ebp - 0x6c]
push 0x56
push ebx
call fcn.005a3710
push 1
push ebx
call fcn.005ad980
mov eax, dword [ebx]
add esp, 0x18
cmp byte [eax + 0x45], 0
jne 0x5913b6
push 0
push 1
push 0xffffffffffffffff
push str.rows_inserted
push dword [ebx + 0x10]
call fcn.005ac470
add esp, 0x14
jmp 0x5913b6
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
jmp 0x5913bc
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp + 0xc]
jmp 0x5913bc
cmp ecx, dword [esi + 0x120]
jb 0x591d6e
cmp ecx, dword [esi + 0x124]
jae 0x591d6e
mov eax, dword [esi + 0x11c]
mov dword [ecx], eax
dec dword [esi + 0x108]
pop edi
mov dword [esi + 0x11c], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
call fcn.00556b90
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret