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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x74], edx
xor edx, edx
mov dword [esp + 0x5c], edi
or ecx, 0xffffffff
mov dword [esp + 0x24], edx
mov esi, edx
mov dword [esp + 0x64], edx
mov eax, dword [edi]
mov dword [esp + 0x84], edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x80], edx
mov byte [esp + 0xf], dl
mov dword [esp + 0x50], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x40], eax
cmp dword [edi + 0x24], edx
jne 0x1811790d
cmp byte [eax + 0x49], dl
jne 0x1811790d
mov ebx, dword [ebp + 8]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x18116ad0
test dword [ebx + 8], 0x200
je 0x18116ad0
cmp dword [ebx + 0x30], edx
jne 0x18116ad0
mov ecx, dword [ebx]
mov dword [esp + 0x50], ecx
mov ecx, eax
mov dword [ebx], edx
mov edx, ebx
push 1
call fcn.1811ccbd
and dword [esp + 0x14], esi
pop ecx
mov edx, dword [esp + 0x74]
mov ecx, edi
call fcn.1811220d
mov esi, eax
mov dword [esp + 0x4c], esi
test esi, esi
je 0x18116fa2
mov ebx, dword [esp + 0x40]
mov ecx, ebx
mov edx, dword [esi + 0x48]
call fcn.1811c668
mov ecx, eax
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov ecx, edi
push 0
push dword [esi]
push 0x12
pop edx
call fcn.1810d188
add esp, 0xc
test eax, eax
jne 0x18116fa2
mov eax, dword [esi + 0x24]
mov edx, esi
shr eax, 5
mov ecx, edi
and eax, 0xffffff01
mov dword [esp + 0x90], eax
lea eax, [esp + 0x8c]
push eax
push 0
push 0x6c
call fcn.18123d9c
add esp, 0xc
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0xc]
mov edx, esi
mov ecx, edi
mov dword [esp + 0x58], eax
call fcn.1810f480
test eax, eax
jne 0x18116fa2
push dword [esp + 0x8c]
mov edx, esi
mov ecx, edi
call fcn.18112249
pop ecx
test eax, eax
jne 0x18116fa2
mov ecx, edi
call fcn.1811e998
mov ebx, eax
mov dword [esp + 0x38], ebx
test ebx, ebx
je 0x18116fa2
cmp byte [edi + 0x12], 0
jne 0x18116b9f
or dword [ebx + 0x94], 0x10
cmp dword [esp + 0x10], 0
jne 0x18116bb1
cmp dword [esp + 0x6c], 0
jne 0x18116bb1
xor edx, edx
jmp 0x18116bb4
xor edx, edx
inc edx
push dword [esp + 0x30]
mov ecx, edi
call fcn.181115f9
cmp dword [ebp + 0xc], 0
pop ecx
jne 0x18116be5
push dword [esp + 0x30]
mov edx, esi
mov ecx, edi
push dword [ebp + 0x10]
push dword [esp + 0x18]
call fcn.18118611
add esp, 0xc
test eax, eax
jne 0x18117896
mov edx, dword [esp + 0x30]
mov ecx, edi
push esi
call fcn.18116842
pop ecx
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x44], eax
lea eax, [ecx + 1]
mov edx, eax
mov dword [esp + 0x68], eax
movsx eax, word [esi + 0x2a]
inc eax
mov dword [esp + 0x28], edx
add eax, ecx
mov dword [edi + 0x2c], eax
cmp dword [esi + 0x38], 0
je 0x18116c21
lea edx, [ecx + 2]
inc eax
mov dword [esp + 0x28], edx
mov dword [edi + 0x2c], eax
mov ecx, dword [esi + 0x24]
lea eax, [edx + 1]
mov edx, dword [ebp + 0xc]
shr ecx, 7
not cl
mov dword [esp + 0x78], eax
and ecx, 0xffffff01
mov dword [esp + 0x34], ecx
test edx, edx
je 0x18116d5d
mov eax, dword [edx + 4]
xor ecx, ecx
test eax, eax
jle 0x18116c5d
mov eax, dword [edx]
or dword [eax + ecx*8 + 4], 0xffffffff
inc ecx
mov eax, dword [edx + 4]
cmp ecx, eax
jl 0x18116c4e
xor ecx, ecx
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x18116d5d
movzx eax, word [esi + 0x2a]
cwde
xor edx, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x18116d09
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
mov ecx, dword [eax + ecx*8]
mov eax, dword [esi + 4]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x1c], eax
mov edx, dword [eax]
call fcn.180e206d
mov edx, dword [esp + 0x54]
test eax, eax
je 0x18116cce
mov eax, dword [esp + 0x1c]
inc edx
mov ecx, dword [esp + 0x94]
add eax, 0x10
mov dword [esp + 0x54], edx
mov dword [esp + 0x1c], eax
cmp edx, dword [esp + 0x2c]
jl 0x18116c9c
mov ecx, dword [esp + 0x20]
jmp 0x18116d09
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
cmp ecx, edx
mov dword [eax + ecx*8 + 4], edx
setne al
dec al
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x34]
and byte [esp + 0x1b], al
mov al, byte [esp + 0x1b]
mov byte [esp + 0x34], al
movsx eax, word [esi + 0x28]
cmp edx, eax
jne 0x18116d09
mov al, byte [esp + 0x1b]
mov dword [esp + 0x60], ecx
mov byte [esp + 0x34], al
movzx eax, word [esi + 0x2a]
cwde
cmp edx, eax
jl 0x18116d48
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + ecx*8]
mov ecx, eax
mov dword [esp + 0x48], eax
call fcn.1810764c
test eax, eax
je 0x18116ff8
cmp byte [esp + 0x90], 0
jne 0x18116ff8
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x60], ecx
mov byte [esp + 0x34], 0
mov edx, dword [ebp + 0xc]
inc ecx
movzx eax, word [esi + 0x2a]
mov dword [esp + 0x20], ecx
cmp ecx, dword [edx + 4]
jl 0x18116c6f
cmp dword [esp + 0x10], 0
je 0x18117016
inc dword [edi + 0x2c]
mov eax, dword [ebx + 0x88]
mov ecx, dword [edi + 0x2c]
inc eax
push eax
push 0
push ecx
mov dword [esp + 0x28], ecx
mov ecx, ebx
push 0xf
pop edx
mov dword [esp + 0x54], eax
call fcn.180f7767
mov eax, dword [esp + 0x28]
add esp, 0xc
and dword [esp + 0xa8], 0
mov ecx, edi
mov edx, dword [esp + 0x10]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x34]
movzx eax, al
neg eax
mov byte [esp + 0x98], 0xd
sbb eax, eax
and eax, dword [esp + 0x78]
mov dword [esp + 0xa0], eax
movsx eax, word [esi + 0x2a]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x98]
push eax
call fcn.18121ab8
pop ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x7c], ecx
test eax, eax
jne 0x18116fa2
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x49], 0
jne 0x18116fa2
cmp dword [edi + 0x24], 0
jne 0x18116fa2
mov edx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.180f7981
mov edx, dword [esp + 0x48]
mov ecx, ebx
lea edx, [edx - 1]
call fcn.180f7ea8
cmp dword [esp + 0x6c], 0
mov ecx, dword [ebx + 0x88]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jne 0x18116e53
mov edx, dword [esp + 0x30]
mov ecx, edi
push esi
call fcn.181167b3
pop ecx
test eax, eax
je 0x18116f28
mov edx, dword [edi + 0x28]
mov ecx, edi
mov byte [esp + 0xf], 1
mov dword [esp + 0x3c], edx
lea eax, [edx + 1]
mov dword [edi + 0x28], eax
call fcn.1810ac08
mov edi, eax
call fcn.1810ac08
mov ecx, dword [esp + 0x38]
mov ebx, eax
push 0
push dword [esp + 0x30]
push edx
push 0x6e
pop edx
call fcn.180f7767
mov ecx, dword [esp + 0x44]
add esp, 0xc
push 0
push 0
push dword [esp + 0xa4]
push 0x10
pop edx
call fcn.180f7767
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov esi, eax
push edi
push dword [esp + 0x30]
push dword [esp + 0x84]
push 0x65
pop edx
call fcn.180f7767
mov ecx, dword [esp + 0x44]
add esp, 0xc
push 0
push ebx
push dword [esp + 0x44]
push 0x75
pop edx
call fcn.180f7767
mov ecx, dword [esp + 0x44]
add esp, 0xc
push ebx
push edi
push dword [esp + 0x44]
push 0x76
pop edx
call fcn.180f7767
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov edx, esi
call fcn.180f77c9
mov ecx, dword [esp + 0x38]
mov edx, esi
call fcn.180f7ea8
mov ecx, dword [ecx + 0x88]
mov edx, edi
mov edi, dword [esp + 0x5c]
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.1810ac27
mov edx, ebx
call fcn.1810ac27
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x18116f3f
test ecx, ecx
jle 0x18116f3f
movsx ecx, word [esi + 0x28]
mov dword [esp + 0x60], ecx
movsx ecx, word [esi + 0x2a]
test ecx, ecx
jle 0x18116f6a
mov edx, dword [esi + 4]
mov ebx, ecx
add edx, 0xf
movzx eax, byte [edx]
lea edx, [edx + 0x10]
shr eax, 1
and eax, 1
add dword [esp + 0x24], eax
sub ebx, 1
jne 0x18116f4f
mov ebx, dword [esp + 0x38]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x2c]
test eax, eax
jne 0x1811706a
test edx, edx
je 0x18117086
sub ecx, dword [esp + 0x24]
cmp edx, ecx
je 0x18117086
push edx
push ecx
push eax
push dword [esp + 0x80]
push str.table__S_has__d_columns_but__d_values_were_supplied
push edi
call fcn.180e1fb6
add esp, 0x18
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x40]
mov ecx, edi
mov edx, dword [esp + 0x74]
call fcn.18111206
mov eax, dword [esp + 0x50]
test eax, eax
je 0x18116fca
mov edx, eax
mov ecx, edi
call fcn.18107343
test ebx, ebx
je 0x18116fda
push 1
mov edx, ebx
mov ecx, edi
call fcn.1811ccbd
pop ecx
mov edx, dword [ebp + 0xc]
mov ecx, edi
call fcn.18110fa6
test esi, esi
je 0x18116ff1
mov edx, esi
mov ecx, edi
call fcn.180dfba4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esp + 0x48]
push 0
push dword [esp + 0x7c]
push str.table__S_has_no_column_named__s
push edi
call fcn.180e1fb6
add esp, 0x14
mov byte [edi + 0x11], 1
jmp 0x18116fa2
push 0x20
lea eax, [esp + 0xb4]
push 0
push eax
call fcn.181620e0
or dword [esp + 0x48], 0xffffffff
add esp, 0xc
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xb0], edi
test ecx, ecx
je 0x1811705f
mov eax, dword [ecx]
mov edx, ecx
lea ecx, [esp + 0xb0]
mov dword [esp + 0x2c], eax
call fcn.18105aec
test eax, eax
jne 0x18116fa2
jmp 0x18116f28
xor ecx, ecx
mov dword [esp + 0x2c], ecx
jmp 0x18116f2c
cmp edx, dword [eax + 4]
je 0x18117086
push dword [eax + 4]
push edx
push str._d_values_for__d_columns
push edi
call fcn.180e1fb6
add esp, 0x10
jmp 0x18116fa2
mov eax, dword [esp + 0x40]
test byte [eax + 0x1c], 0x80
je 0x181170af
inc dword [edi + 0x2c]
mov ecx, ebx
mov eax, dword [edi + 0x2c]
push 0
push eax
push 0
push 0x43
pop edx
mov dword [esp + 0x94], eax
call fcn.180f7767
add esp, 0xc
cmp dword [esp + 0x58], 0
jne 0x1811712b
lea eax, [esp + 0x84]
mov edx, esi
push eax
lea eax, [esp + 0x68]
mov ecx, edi
push eax
push 0
push 0xffffffffffffffff
push 0
push 0x6b
call fcn.1811840a
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x34], eax
push 0
lea eax, [eax*4 + 4]
push eax
call fcn.180dfde7
add esp, 0x20
mov dword [esp + 0x14], eax
test eax, eax
je 0x18116fa2
mov edx, dword [esi + 8]
xor ecx, ecx
cmp dword [esp + 0x1c], ecx
jle 0x1811712b
mov esi, dword [esp + 0x1c]
mov ebx, eax
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [ebx + ecx*4], eax
movzx eax, word [edx + 0x34]
add dword [edi + 0x2c], eax
inc ecx
mov edx, dword [edx + 0x14]
cmp ecx, esi
jl 0x1811710b
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x4c]
cmp byte [esp + 0xf], 0
je 0x18117150
push 0
push 0
push dword [esp + 0x44]
mov ecx, ebx
push 0x25
pop edx
call fcn.180f7767
mov dword [esp + 0x7c], eax
mov eax, dword [ebx + 0x88]
jmp 0x18117170
cmp dword [esp + 0x10], 0
je 0x1811717a
push 0
push 0
push dword [esp + 0xa4]
mov ecx, ebx
push 0x10
pop edx
call fcn.180f7767
mov dword [esp + 0x7c], eax
mov dword [esp + 0x8c], eax
add esp, 0xc
mov ecx, ebx
call fcn.180f79a6
test byte [esp + 0x8c], 1
mov dword [esp + 0x54], eax
je 0x181173df
movsx edx, word [esi + 0x2a]
mov ecx, edi
inc edx
call fcn.1810ac6a
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x30], eax
test ecx, ecx
jns 0x181171b2
or ecx, 0xffffffff
push 0x43
jmp 0x1811722b
cmp byte [esp + 0xf], 0
push eax
je 0x181171ce
push ecx
push dword [esp + 0x44]
mov ecx, ebx
push 0x63
pop edx
call fcn.180f7767
add esp, 0xc
jmp 0x181171e1
mov eax, dword [esp + 0x54]
imul edx, ecx, 0x18
mov ecx, edi
mov edx, dword [edx + eax + 4]
call fcn.18109acc
pop ecx
push 0
push 0
push dword [esp + 0x38]
mov ecx, ebx
push 0x33
pop edx
call fcn.180f7767
add esp, 0xc
mov ecx, ebx
mov esi, eax
push 0
push dword [esp + 0x34]
push 0xffffffffffffffff
push 0x43
pop edx
call fcn.180f7767
add esp, 0xc
mov edx, esi
mov ecx, ebx
call fcn.180f7ea8
mov ecx, dword [ebx + 0x88]
mov esi, dword [esp + 0x4c]
push 0x11
mov dword [eax + 8], ecx
xor eax, eax
mov ecx, dword [esp + 0x34]
pop edx
push 0
push eax
push ecx
mov ecx, ebx
call fcn.180f7767
movzx eax, word [esi + 0x2a]
xor edx, edx
and dword [esp + 0x54], edx
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x20], edx
cmp word [esp + 0x48], ax
jge 0x1811738a
mov eax, dword [esp + 0x30]
or dword [esp + 0x24], 0xffffffff
and dword [esp + 0x1c], edx
sub dword [esp + 0x24], eax
lea ecx, [eax + 1]
mov dword [esp + 0x34], ecx
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x181172b5
xor edx, edx
mov dword [esp + 0x20], edx
cmp dword [eax + 4], edx
jle 0x181172b5
mov edi, dword [esp + 0x34]
mov esi, eax
mov ebx, dword [esp + 0x24]
mov ecx, dword [esi]
add ecx, 4
lea eax, [ebx + edi]
cmp dword [ecx], eax
je 0x1811729e
inc edx
add ecx, 8
cmp edx, dword [esi + 4]
jl 0x1811728e
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x20], edx
cmp byte [esp + 0xf], 0
jne 0x181172c3
cmp dword [esp + 0x50], 0
je 0x181172cc
test eax, eax
je 0x181172e2
cmp edx, dword [eax + 4]
jl 0x181172e2
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, edi
mov edx, dword [edx + eax + 4]
call fcn.18109acc
pop ecx
jmp 0x18117352
cmp byte [esp + 0xf], 0
push ecx
je 0x181172fe
push edx
push dword [esp + 0x44]
mov ecx, ebx
push 0x63
pop edx
call fcn.180f7767
add esp, 0xc
jmp 0x18117352
mov esi, dword [esp + 0x60]
mov ecx, esi
mov edi, dword [edi + 8]
imul eax, edx, 0x18
mov edx, dword [esp + 0x54]
mov ebx, dword [eax + edx + 4]
mov edx, ebx
call fcn.18109acc
inc dword [esi + 0x2c]
mov esi, dword [esi + 0x2c]
pop ecx
push 0
push esi
push dword [esp + 0x3c]
mov ecx, edi
push 0x4b
pop edx
call fcn.180f7767
mov al, byte [ebx]
add esp, 0xc
and dword [ebx + 4], 0xffffefff
mov edi, dword [esp + 0x5c]
mov dword [ebx + 0x1c], esi
mov esi, dword [esp + 0x4c]
mov byte [ebx + 0x26], al
mov byte [ebx], 0x98
mov ebx, dword [esp + 0x38]
cmp dword [ebp + 0xc], 0
mov edx, dword [esp + 0x20]
jne 0x18117361
inc edx
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x34]
add dword [esp + 0x1c], 0x10
inc eax
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp + 0x34], eax
movzx eax, word [esi + 0x2a]
cwde
cmp ecx, eax
mov ecx, dword [esp + 0x34]
jl 0x1811726d
movzx ecx, word [esi + 0x2a]
cmp dword [esp + 0x58], 0
movzx eax, cx
jne 0x181173a8
mov eax, dword [esp + 0x30]
mov edx, esi
inc eax
mov ecx, ebx
push eax
call fcn.1811670e
movzx eax, word [esi + 0x2a]
pop ecx
push dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
push dword [ebp + 0x10]
mov edx, dword [esp + 0x74]
cwde
sub ecx, eax
dec ecx
push ecx
push esi
push 1
push 0
push 0x6c
mov ecx, edi
call fcn.18124374
movsx eax, word [esi + 0x2a]
add esp, 0x1c
mov edx, dword [esp + 0x30]
inc eax
mov ecx, edi
push eax
call fcn.1810aca0
pop ecx
cmp dword [esp + 0x58], 0
jne 0x181177c7
mov eax, dword [esi + 0x38]
test eax, eax
je 0x18117409
push 0
push dword [esp + 0x6c]
mov ecx, ebx
push 0
push 0x46
pop edx
call fcn.180f7767
mov eax, dword [esi + 0x38]
add esp, 0xc
mov edx, dword [esp + 0x60]
test edx, edx
js 0x18117515
cmp byte [esp + 0xf], 0
je 0x18117489
mov ecx, dword [esp + 0x28]
push ecx
push edx
push dword [esp + 0x44]
push 0x63
pop edx
mov ecx, ebx
call fcn.180f7767
add esp, 0xc
xor eax, eax
mov ecx, ebx
push eax
cmp dword [esi + 0x38], eax
jne 0x181174f0
push eax
push dword [esp + 0x30]
push 0x33
pop edx
call fcn.180f7767
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov esi, eax
push ecx
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x6c]
push ecx
push 0x75
pop edx
mov ecx, ebx
call fcn.180f7767
add esp, 0xc
mov edx, esi
mov ecx, ebx
call fcn.180f7ea8
mov ecx, dword [ebx + 0x88]
mov esi, dword [esp + 0x4c]
mov dword [eax + 8], ecx
jmp 0x18117509
cmp dword [esp + 0x10], 0
je 0x181174a2
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x28]
add eax, edx
push 0
push ecx
push eax
push 0x4b
jmp 0x18117428
mov eax, dword [esp + 0x50]
mov ecx, edi
push dword [esp + 0x28]
imul edx, edx, 0x18
mov edx, dword [edx + eax + 4]
call fcn.18109acc
pop ecx
or edx, 0xffffffff
mov ecx, ebx
call fcn.180f7ea8
cmp byte [eax], 0x46
jne 0x18117433
cmp dword [esi + 0x38], 0
jne 0x18117433
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x44]
mov byte [eax], 0x75
mov dword [eax + 0xc], ecx
jmp 0x1811753d
mov eax, dword [ebx + 0x88]
add eax, 2
push eax
push dword [esp + 0x30]
push 0x32
pop edx
call fcn.180f7767
add esp, 0xc
push 0
push 0
push dword [esp + 0x30]
push 0x11
jmp 0x18117551
test eax, eax
jne 0x18117547
cmp byte [esp + 0x90], al
jne 0x18117547
mov ecx, dword [esp + 0x44]
push ecx
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x6c]
push ecx
push 0x75
pop edx
mov ecx, ebx
call fcn.180f7767
add esp, 0xc
mov dword [esp + 0x20], 1
jmp 0x18117561
push 0
push dword [esp + 0x2c]
push 0
push 0x46
pop edx
mov ecx, ebx
call fcn.180f7767
add esp, 0xc
and dword [esp + 0x20], 0
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x18117580
mov ecx, dword [edi + 8]
mov edx, 0x94
push 0
push dword [esp + 0x2c]
push eax
call fcn.180f7767
add esp, 0xc
xor edx, edx
xor eax, eax
mov ecx, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x1c], ecx
cmp ax, word [esi + 0x2a]
jge 0x1811760e
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x78]
movsx eax, word [esi + 0x28]
add edx, ecx
mov dword [esp + 0x44], edx
cmp ecx, eax
jne 0x181175be
push 0
push 0
push edx
push 0x47
pop edx
mov ecx, ebx
call fcn.180f7767
add esp, 0xc
jmp 0x181175f6
mov edx, dword [ebp + 0xc]
test edx, edx
jne 0x1811766b
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x24]
test byte [eax + edx + 0xf], 2
je 0x18117663
inc dword [esp + 0x58]
mov edx, dword [esi + 4]
mov ecx, edi
mov eax, dword [esp + 0x24]
push dword [esp + 0x44]
mov edx, dword [edx + eax + 4]
call fcn.18109b65
pop ecx
mov ecx, dword [esp + 0x1c]
movsx eax, word [esi + 0x2a]
inc ecx
add dword [esp + 0x24], 0x10
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jl 0x18117598
xor edx, edx
cmp dword [esi + 0x38], edx
je 0x1811771f
mov ecx, dword [esp + 0x40]
mov edx, esi
call fcn.18125e0f
mov edx, dword [esp + 0x4c]
mov ecx, edi
mov esi, eax
call fcn.18126b61
push 0xfffffffffffffff4
push esi
mov esi, dword [esp + 0x54]
mov ecx, ebx
push dword [esp + 0x70]
movsx eax, word [esi + 0x2a]
add eax, 2
push eax
push 1
push 0xc
pop edx
call fcn.180f7892
add esp, 0x14
cmp dword [ebp + 0x10], 0xa
jne 0x18117709
push 2
pop edx
jmp 0x1811770c
mov eax, ecx
sub eax, dword [esp + 0x58]
jmp 0x1811768f
xor eax, eax
cmp dword [edx + 4], eax
jle 0x1811769a
mov ecx, dword [edx]
mov edx, dword [esp + 0x1c]
add ecx, 4
cmp dword [ecx], edx
je 0x18117697
mov edi, dword [ebp + 0xc]
inc eax
add ecx, 8
cmp eax, dword [edi + 4]
mov edi, dword [esp + 0x5c]
jl 0x1811767b
test eax, eax
js 0x181175df
mov edx, dword [ebp + 0xc]
cmp dword [esp + 0x2c], 0
je 0x181175df
test edx, edx
je 0x181176b2
cmp eax, dword [edx + 4]
jge 0x181175df
cmp byte [esp + 0xf], 0
je 0x181176c9
push dword [esp + 0x44]
push eax
push dword [esp + 0x44]
push 0x63
jmp 0x181175b1
cmp dword [esp + 0x10], 0
je 0x181176ee
mov ecx, dword [esp + 0x7c]
cmp ecx, dword [esp + 0x78]
je 0x181175f6
push 0
push dword [esp + 0x48]
add eax, ecx
push eax
push 0x4c
jmp 0x181175b1
push dword [esp + 0x44]
imul edx, eax, 0x18
mov ecx, edi
mov eax, dword [esp + 0x54]
mov edx, dword [edx + eax + 4]
call fcn.18109acc
jmp 0x181175f5
mov edx, dword [ebp + 0x10]
mov ecx, ebx
call fcn.180f7bf4
mov ecx, edi
call fcn.18111625
jmp 0x181177c7
push edx
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
push dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
push dword [ebp + 0x10]
shr eax, 0x1f
xor al, 1
movzx eax, al
push eax
push edx
push dword [esp + 0x80]
mov edx, esi
push dword [esp + 0xa0]
push dword [esp + 0x84]
push dword [esp + 0x38]
call fcn.18117949
xor eax, eax
mov edx, esi
push eax
push eax
push dword [esp + 0x98]
mov ecx, edi
push eax
call fcn.18115990
add esp, 0x38
cmp dword [esp + 0x48], 0
je 0x1811779e
cmp dword [esp + 0x6c], 0
jne 0x1811779a
mov eax, dword [esp + 0x40]
test dword [eax + 0x1c], 0x4000
je 0x1811779e
mov ecx, esi
call fcn.1811572f
test eax, eax
je 0x1811779e
xor eax, eax
jmp 0x181177a1
xor eax, eax
inc eax
push eax
push dword [esp + 0x24]
mov edx, esi
mov ecx, edi
push 0
push dword [esp + 0x20]
push dword [esp + 0x78]
push dword [esp + 0x98]
push dword [esp + 0x7c]
call fcn.18118276
add esp, 0x1c
mov eax, dword [esp + 0x40]
test byte [eax + 0x1c], 0x80
je 0x181177e9
push 0
push 1
push dword [esp + 0x90]
mov ecx, ebx
push 0x50
pop edx
call fcn.180f7767
add esp, 0xc
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x1811781a
push dword [esp + 0x54]
movsx eax, word [esi + 0x2a]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x80]
sub ecx, eax
sub ecx, 2
push ecx
push esi
push 2
push 0
push 0x6c
mov ecx, edi
call fcn.18124374
add esp, 0x1c
mov edx, dword [esp + 0x54]
mov ecx, ebx
call fcn.180f79e8
cmp byte [esp + 0xf], 0
je 0x1811786d
mov esi, dword [esp + 0x3c]
push 0
push dword [esp + 0x84]
push esi
push 7
pop edx
call fcn.180f7767
mov edx, dword [esp + 0x7c]
add esp, 0xc
mov ecx, ebx
call fcn.180f7ea8
mov ecx, dword [ebx + 0x88]
push 0
push 0
push esi
mov dword [eax + 8], ecx
mov ecx, ebx
push 0x72
pop edx
call fcn.180f7767
add esp, 0xc
jmp 0x18117896
cmp dword [esp + 0x10], 0
je 0x18117896
mov edx, dword [esp + 0x80]
mov ecx, ebx
call fcn.180f77c9
mov edx, dword [esp + 0x70]
mov ecx, ebx
call fcn.180f7ea8
mov ecx, dword [ebx + 0x88]
mov dword [eax + 8], ecx
cmp byte [edi + 0x12], 0
jne 0x181178af
cmp dword [edi + 0x7c], 0
jne 0x181178af
cmp dword [edi + 0x74], 0
je 0x181178af
mov ecx, edi
call fcn.18116967
mov eax, dword [esp + 0x40]
test byte [eax + 0x1c], 0x80
je 0x18116fa2
cmp byte [edi + 0x12], 0
jne 0x18116fa2
cmp dword [edi + 0x7c], 0
jne 0x18116fa2
push 0
push 1
push dword [esp + 0x90]
mov ecx, ebx
push 0x4e
pop edx
call fcn.180f7767
add esp, 0xc
xor edx, edx
inc edx
mov ecx, ebx
call fcn.180f8a56
push 0
push str.rows_inserted
push 0
xor edx, edx
mov ecx, ebx
call fcn.180f8ac1
add esp, 0xc
jmp 0x18116fa2
mov ebx, dword [ebp + 8]
jmp 0x18116faa