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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcc
push ebx
mov ebx, ecx
mov dword [esp + 0x50], edx
xor ecx, ecx
mov dword [esp + 0x5c], ebx
push esi
or eax, 0xffffffff
mov dword [esp + 0x50], ecx
mov edx, dword [ebx]
push edi
mov edi, ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], ecx
mov byte [esp + 0x13], cl
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x3c], edx
cmp dword [ebx + 0x24], ecx
jne 0x18123a0f
cmp byte [edx + 0x51], cl
jne 0x18123a0f
mov esi, dword [ebp + 8]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xc], esi
test esi, esi
je 0x18122c1a
test dword [esi + 4], 0x200
je 0x18122c1a
cmp dword [esi + 0x34], ecx
jne 0x18122c1a
mov eax, dword [esi + 0x1c]
mov edx, esi
mov dword [esi + 0x1c], ecx
mov esi, dword [esp + 0x3c]
mov ecx, esi
push 1
mov dword [esp + 0x60], eax
call fcn.18129943
and dword [esp + 0x10], edi
pop ecx
jmp 0x18122c1c
mov esi, edx
mov edx, dword [esp + 0x58]
mov ecx, ebx
call fcn.1811deda
mov edi, eax
mov dword [esp + 0x48], edi
test edi, edi
je 0x18123127
mov edx, dword [edi + 0x48]
mov ecx, esi
call fcn.181292fc
mov ecx, eax
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov ecx, ebx
push 0
push dword [edi]
push 0x12
pop edx
call fcn.18118204
add esp, 0xc
test eax, eax
jne 0x18123127
mov eax, dword [edi + 0x24]
mov edx, edi
shr eax, 7
mov ecx, ebx
and eax, 0xffffff01
mov dword [esp + 0x90], eax
lea eax, [esp + 0x84]
push eax
push 0
push 0x7d
call fcn.18131b85
add esp, 0xc
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0xc]
mov edx, edi
mov ecx, ebx
mov dword [esp + 0x88], eax
call fcn.1811ad0c
test eax, eax
jne 0x18123127
push dword [esp + 0x84]
mov edx, edi
mov ecx, ebx
call fcn.1811df16
pop ecx
test eax, eax
jne 0x18123127
mov ecx, ebx
call fcn.1812b77b
mov esi, eax
mov dword [esp + 0x20], esi
test esi, esi
je 0x18123127
cmp byte [ebx + 0x12], 0
jne 0x18122cea
or dword [esi + 0x98], 0x10
cmp dword [esp + 0xc], 0
jne 0x18122cfc
cmp dword [esp + 0x78], 0
jne 0x18122cfc
xor edx, edx
jmp 0x18122cff
xor edx, edx
inc edx
push dword [esp + 0x44]
mov ecx, ebx
call fcn.1811d222
cmp dword [ebp + 0xc], 0
pop ecx
jne 0x18122d30
push dword [esp + 0x44]
mov edx, edi
mov ecx, ebx
push dword [ebp + 0x10]
push dword [esp + 0x14]
call fcn.18124d21
add esp, 0xc
test eax, eax
jne 0x181239b4
mov edx, dword [esp + 0x44]
mov ecx, ebx
push edi
call fcn.18122936
pop ecx
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x70], eax
lea eax, [ecx + 1]
mov edx, eax
mov dword [esp + 0x6c], eax
movsx eax, word [edi + 0x2a]
inc eax
mov dword [esp + 0x2c], edx
add eax, ecx
mov dword [ebx + 0x2c], eax
cmp dword [edi + 0x38], 0
je 0x18122d6c
lea edx, [ecx + 2]
inc eax
mov dword [esp + 0x2c], edx
mov dword [ebx + 0x2c], eax
mov ecx, dword [edi + 0x24]
lea eax, [edx + 1]
mov edx, dword [ebp + 0xc]
and ecx, 0x440
neg ecx
mov dword [esp + 0x50], eax
sbb cl, cl
inc cl
mov dword [esp + 0x28], ecx
test edx, edx
je 0x18122ec0
mov eax, dword [edx + 4]
xor ecx, ecx
test eax, eax
jle 0x18122da9
mov eax, dword [edx]
or dword [eax + ecx*8 + 4], 0xffffffff
inc ecx
mov eax, dword [edx + 4]
cmp ecx, eax
jl 0x18122d9a
xor edx, edx
mov dword [esp + 0x18], edx
test eax, eax
jle 0x18122ec0
movzx eax, word [edi + 0x2a]
cwde
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x98], eax
test eax, eax
jle 0x18122e6a
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [eax + edx*8]
mov dword [esp + 0x94], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x60], eax
mov edx, dword [eax]
mov ecx, dword [esp + 0x94]
call fcn.180e90b3
mov ecx, dword [esp + 0x24]
test eax, eax
je 0x18122e20
mov eax, dword [esp + 0x60]
inc ecx
add eax, 0x14
mov dword [esp + 0x24], ecx
mov dword [esp + 0x60], eax
cmp ecx, dword [esp + 0x98]
jl 0x18122deb
mov edx, dword [esp + 0x18]
jmp 0x18122e6a
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
cmp edx, ecx
mov dword [eax + edx*8 + 4], ecx
setne al
dec al
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x28]
and byte [esp + 0x1f], al
movsx eax, word [edi + 0x28]
cmp ecx, eax
jne 0x18122e4d
mov eax, edx
mov dword [esp + 0x34], eax
mov al, byte [esp + 0x1f]
mov esi, dword [edi + 4]
mov byte [esp + 0x28], al
imul eax, ecx, 0x14
test byte [eax + esi + 0x10], 0x60
mov esi, dword [esp + 0x20]
jne 0x18123187
movzx eax, word [edi + 0x2a]
cwde
cmp ecx, eax
jl 0x18122eab
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + edx*8]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.18110c58
test eax, eax
je 0x181231a0
cmp byte [esp + 0x90], 0
jne 0x181231a0
mov edx, dword [esp + 0x18]
mov eax, edx
mov dword [esp + 0x34], eax
mov byte [esp + 0x28], 0
mov ecx, dword [ebp + 0xc]
inc edx
movzx eax, word [edi + 0x2a]
mov dword [esp + 0x18], edx
cmp edx, dword [ecx + 4]
jl 0x18122dbb
cmp dword [esp + 0xc], 0
je 0x181231c1
inc dword [ebx + 0x2c]
mov eax, dword [esi + 0x6c]
mov ecx, dword [ebx + 0x2c]
inc eax
push eax
push 0
push ecx
mov dword [esp + 0x6c], ecx
mov ecx, esi
push 0xd
pop edx
mov dword [esp + 0x3c], eax
call fcn.180ff616
mov eax, dword [esp + 0x6c]
add esp, 0xc
and dword [esp + 0xa4], 0
mov ecx, ebx
and dword [esp + 0xb0], 0
mov edx, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x28]
movzx eax, al
neg eax
mov byte [esp + 0x9c], 0xd
sbb eax, eax
and eax, dword [esp + 0x50]
mov dword [esp + 0xa8], eax
movsx eax, word [edi + 0x2a]
mov dword [esp + 0xac], eax
lea eax, [esp + 0x9c]
push eax
call fcn.1812ee27
pop ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x40], ecx
test eax, eax
jne 0x18123127
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x51], 0
jne 0x18123127
cmp dword [ebx + 0x24], 0
jne 0x18123127
mov edx, dword [esp + 0x60]
mov ecx, esi
call fcn.180ff932
mov edx, dword [esp + 0x30]
mov ecx, esi
lea edx, [edx - 1]
call fcn.180ffe36
cmp dword [esp + 0x78], 0
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
jne 0x18122fb9
mov edx, dword [esp + 0x44]
mov ecx, ebx
push edi
call fcn.18122709
pop ecx
test eax, eax
je 0x18123082
mov edx, dword [ebx + 0x28]
mov ecx, ebx
mov byte [esp + 0x13], 1
mov dword [esp + 0x38], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
call fcn.18114815
mov edi, eax
call fcn.18114815
push 0
push dword [esp + 0x28]
mov ecx, esi
mov ebx, eax
push edx
push 0x64
pop edx
call fcn.180ff616
add esp, 0xc
mov ecx, esi
push 0
push 0
push dword [esp + 0xa8]
push 0xe
pop edx
call fcn.180ff616
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov esi, eax
push edi
push dword [esp + 0x28]
push dword [esp + 0x48]
push 0x5b
pop edx
call fcn.180ff616
mov ecx, dword [esp + 0x2c]
add esp, 0xc
push 0
push ebx
push dword [esp + 0x40]
push 0x79
pop edx
call fcn.180ff616
mov ecx, dword [esp + 0x2c]
add esp, 0xc
push ebx
push edi
push dword [esp + 0x40]
push 0x7a
pop edx
call fcn.180ff616
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, esi
call fcn.180ff66f
mov edx, esi
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.180ffe36
mov ecx, dword [esi + 0x6c]
mov edx, edi
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x64]
call fcn.18114834
mov edx, ebx
mov ebx, ecx
call fcn.18114834
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
cmp dword [ebp + 0xc], 0
jne 0x181230ce
test eax, eax
jle 0x181230ce
movsx eax, word [edi + 0x28]
mov dword [esp + 0x34], eax
test eax, eax
js 0x181230ce
test byte [edi + 0x24], 0x60
je 0x181230ce
lea edx, [eax - 1]
test edx, edx
js 0x181230ce
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x34]
add eax, 0x10
imul ecx, edx, 0x14
add eax, ecx
test byte [eax], 0x60
je 0x181230be
dec esi
sub eax, 0x14
sub edx, 1
jns 0x181230b8
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x20]
movsx eax, word [edi + 0x2a]
test eax, eax
jle 0x181230ef
mov ecx, dword [edi + 4]
mov edx, eax
add ecx, 0x10
test byte [ecx], 0x62
je 0x181230e7
inc dword [esp + 0x54]
add ecx, 0x14
sub edx, 1
jne 0x181230de
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
test ecx, ecx
jne 0x18123215
test edx, edx
je 0x18123231
sub eax, dword [esp + 0x54]
cmp edx, eax
je 0x18123231
push edx
push eax
push ecx
push dword [esp + 0x64]
push str.table__S_has__d_columns_but__d_values_were_supplied
push ebx
call fcn.180e8fc0
add esp, 0x18
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
mov ecx, esi
mov edx, dword [esp + 0x58]
call fcn.1811cd7d
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x1812314f
mov edx, eax
mov ecx, esi
call fcn.18110852
mov edx, dword [ebp + 0x14]
mov ecx, esi
call fcn.18133fac
test ebx, ebx
je 0x18123169
push 1
mov edx, ebx
mov ecx, esi
call fcn.18129943
pop ecx
mov edx, dword [ebp + 0xc]
mov ecx, esi
call fcn.1811cabb
test edi, edi
je 0x18123180
mov edx, edi
mov ecx, esi
call fcn.180e676a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
imul eax, ecx, 0x14
mov ecx, dword [edi + 4]
push dword [eax + ecx]
push str.cannot_INSERT_into_generated_column___s_
push ebx
call fcn.180e8fc0
add esp, 0xc
jmp 0x18123127
push dword [esp + 0x30]
push 0
push dword [esp + 0x60]
push str.table__S_has_no_column_named__s
push ebx
call fcn.180e8fc0
add esp, 0x14
mov byte [ebx + 0x11], 1
jmp 0x18123127
push 0x20
lea eax, [esp + 0xbc]
push 0
push eax
call fcn.181757a0
or dword [esp + 0x44], 0xffffffff
add esp, 0xc
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xb8], ebx
test ecx, ecx
je 0x1812320a
mov eax, dword [ecx]
mov edx, ecx
lea ecx, [esp + 0xb8]
mov dword [esp + 0x24], eax
call fcn.1810edae
test eax, eax
jne 0x18123127
jmp 0x18123082
xor eax, eax
mov dword [esp + 0x24], eax
jmp 0x18123086
cmp edx, dword [ecx + 4]
je 0x18123231
push dword [ecx + 4]
push edx
push str._d_values_for__d_columns
push ebx
call fcn.180e8fc0
add esp, 0x10
jmp 0x18123127
mov eax, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [eax + 0x24]
mov eax, edx
and ecx, 1
or eax, ecx
je 0x1812326c
cmp byte [ebx + 0x12], dl
jne 0x1812326c
cmp dword [ebx + 0x78], edx
jne 0x1812326c
inc dword [ebx + 0x2c]
mov ecx, esi
mov eax, dword [ebx + 0x2c]
push edx
push eax
push edx
push 0x45
pop edx
mov dword [esp + 0x98], eax
call fcn.180ff616
add esp, 0xc
xor edx, edx
cmp dword [esp + 0x88], 0
jne 0x18123305
lea eax, [esp + 0x74]
mov ecx, ebx
push eax
lea eax, [esp + 0x50]
push eax
push edx
push 0xffffffffffffffff
push edx
push 0x61
mov edx, edi
call fcn.18124b11
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x7c], eax
push 0
lea eax, [eax*4 + 8]
push eax
call fcn.180e69f7
mov ecx, eax
add esp, 0x20
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x18123127
mov eax, dword [edi + 8]
xor edx, edx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x64], edx
jle 0x181232fb
mov edi, dword [esp + 0x64]
mov esi, eax
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov dword [ecx + edx*4], eax
movzx ecx, word [esi + 0x34]
mov eax, dword [ebx + 0x2c]
add eax, ecx
mov ecx, dword [esp + 0x14]
inc edx
mov dword [ebx + 0x2c], eax
mov esi, dword [esi + 0x14]
cmp edx, edi
jl 0x181232d0
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x20]
jmp 0x181232fe
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ebx + 0x2c], eax
mov dword [ecx + edx*4], eax
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x1812337b
cmp dword [edi + 0x38], 0
je 0x1812331e
push dword [edi]
push str.UPSERT_not_implemented_for_virtual_table___s_
jmp 0x18123195
cmp dword [edi + 0xc], 0
je 0x18123336
push str.cannot_UPSERT_a_view
push ebx
call fcn.180e8fc0
pop ecx
pop ecx
jmp 0x18123127
mov edx, dword [edx]
mov ecx, ebx
call fcn.1811bb52
test eax, eax
jne 0x18123127
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0x34], ecx
cmp dword [edx], 0
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x74]
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x20], eax
je 0x1812337b
push edx
mov edx, dword [esp + 0x5c]
mov ecx, ebx
call fcn.1813410a
pop ecx
cmp byte [esp + 0x13], 0
je 0x181233a7
push 0
push 0
push dword [esp + 0x40]
mov ecx, esi
push 0x25
pop edx
call fcn.180ff616
mov dword [esp + 0x8c], eax
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x88], eax
jmp 0x181233f3
cmp dword [esp + 0xc], 0
je 0x181233f6
push 0
push 0
push dword [esp + 0xa8]
mov ecx, esi
push 0xe
pop edx
call fcn.180ff616
mov dword [esp + 0x88], eax
add esp, 0xc
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x34]
test eax, eax
js 0x181233f6
mov ecx, dword [esp + 0x40]
push 0
push dword [esp + 0x30]
add ecx, eax
push ecx
push 0x4d
pop edx
mov ecx, esi
call fcn.180ff616
add esp, 0xc
and dword [esp + 0x54], 0
xor edx, edx
mov ecx, dword [esp + 0x50]
xor eax, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], edx
cmp ax, word [edi + 0x2a]
jge 0x18123546
and dword [esp + 0x18], eax
movsx eax, word [edi + 0x28]
cmp edx, eax
jne 0x18123438
push 0
push 0
push ecx
push 0x49
pop edx
mov ecx, esi
call fcn.180ff616
add esp, 0xc
jmp 0x18123523
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x18]
movzx eax, word [edx + eax + 0x10]
test al, 0x62
je 0x18123485
inc dword [esp + 0x54]
test al, 0x20
je 0x18123456
dec ecx
jmp 0x18123527
test al, 0x40
je 0x1812346a
test byte [esp + 0x84], 1
je 0x18123527
jmp 0x18123421
cmp dword [ebp + 0xc], 0
jne 0x1812348b
mov eax, dword [esp + 0x18]
push ecx
mov ecx, ebx
mov edx, dword [edx + eax + 4]
call fcn.18113378
jmp 0x18123522
cmp dword [ebp + 0xc], 0
je 0x181234ce
mov edi, dword [ebp + 0xc]
xor eax, eax
cmp dword [edi + 4], eax
mov edi, dword [esp + 0x48]
jle 0x181234c0
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
add edx, 4
mov esi, dword [esp + 0x44]
cmp dword [edx], esi
mov esi, dword [esp + 0x20]
je 0x181234dd
mov esi, dword [ebp + 0xc]
inc eax
add edx, 8
cmp eax, dword [esi + 4]
mov esi, dword [esp + 0x20]
jl 0x181234a1
mov edx, dword [edi + 4]
mov edi, dword [ebp + 0xc]
cmp eax, dword [edi + 4]
mov edi, dword [esp + 0x48]
jl 0x181234dd
jmp 0x18123470
cmp dword [esp + 0x24], 0
je 0x18123470
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x54]
cmp byte [esp + 0x13], 0
je 0x181234f1
push ecx
push eax
push dword [esp + 0x40]
push 0x59
jmp 0x18123428
cmp dword [esp + 0xc], 0
je 0x1812350f
mov edx, dword [esp + 0x40]
cmp edx, dword [esp + 0x50]
je 0x18123527
push 0
push ecx
add eax, edx
push eax
push 0x4e
jmp 0x18123428
imul edx, eax, 0x14
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, ebx
mov edx, dword [edx + eax + 4]
call fcn.181132e5
pop ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
add dword [esp + 0x18], 0x14
inc edx
movsx eax, word [edi + 0x2a]
inc ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x28], ecx
cmp edx, eax
jl 0x18123419
dec dword [ebx + 0x38]
test byte [esp + 0x84], 1
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x48], eax
je 0x18123693
movsx edx, word [edi + 0x2a]
mov ecx, ebx
inc edx
call fcn.1811484d
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], eax
test ecx, ecx
jns 0x1812357a
push 0x45
jmp 0x181235f6
cmp byte [esp + 0x13], 0
push eax
je 0x18123596
push ecx
push dword [esp + 0x40]
mov ecx, esi
push 0x59
pop edx
call fcn.180ff616
add esp, 0xc
jmp 0x181235a9
mov eax, dword [esp + 0x60]
imul edx, ecx, 0x14
mov ecx, ebx
mov edx, dword [edx + eax + 4]
call fcn.181132e5
pop ecx
push 0
push 0
push dword [esp + 0x20]
mov ecx, esi
push 0x33
pop edx
call fcn.180ff616
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov esi, eax
push 0
push dword [esp + 0x1c]
push 0xffffffffffffffff
push 0x45
pop edx
call fcn.180ff616
add esp, 0xc
mov edx, esi
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.180ffe36
mov ecx, dword [esi + 0x6c]
push 0xf
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
xor eax, eax
pop edx
push 0
push eax
push dword [esp + 0x70]
mov ecx, esi
call fcn.180ff616
mov ecx, dword [esp + 0x24]
add esp, 0xc
movsx eax, word [edi + 0x2c]
inc ecx
dec eax
mov dword [esp + 0x68], ecx
push eax
push ecx
push dword [esp + 0x58]
mov ecx, esi
push 0x4d
pop edx
call fcn.180ff616
add esp, 0xc
test byte [edi + 0x24], 0x60
je 0x1812363c
mov edx, dword [esp + 0x68]
mov ecx, ebx
push edi
call fcn.181227c0
pop ecx
cmp dword [esp + 0x88], 0
jne 0x18123654
push dword [esp + 0x68]
mov edx, edi
mov ecx, esi
call fcn.18122659
pop ecx
push dword [esp + 0x48]
movsx eax, word [edi + 0x2a]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x80]
sub ecx, eax
dec ecx
push ecx
push edi
push 1
push 0
push 0x7d
mov ecx, ebx
call fcn.18132198
movsx eax, word [edi + 0x2a]
add esp, 0x1c
mov edx, dword [esp + 0x18]
inc eax
mov ecx, ebx
push eax
call fcn.18114883
add esp, 4
cmp dword [esp + 0x88], 0
jne 0x181238ee
mov ecx, dword [edi + 0x38]
test ecx, ecx
je 0x181236c0
push 0
push dword [esp + 0x70]
mov ecx, esi
push 0
push 0x48
pop edx
call fcn.180ff616
mov ecx, dword [edi + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x34]
test eax, eax
js 0x18123784
cmp byte [esp + 0x13], 0
je 0x181236eb
push dword [esp + 0x2c]
mov ecx, esi
push eax
push dword [esp + 0x40]
push 0x59
pop edx
call fcn.180ff616
add esp, 0xc
jmp 0x18123716
cmp dword [esp + 0xc], 0
jne 0x18123716
mov edx, dword [esp + 0x5c]
imul eax, eax, 0x14
mov edx, dword [eax + edx + 4]
cmp byte [edx], 0x77
jne 0x1812370a
test ecx, ecx
je 0x18123791
push dword [esp + 0x2c]
mov ecx, ebx
call fcn.181132e5
pop ecx
xor eax, eax
mov ecx, esi
push eax
cmp dword [edi + 0x38], eax
jne 0x18123762
push eax
push dword [esp + 0x34]
push 0x33
pop edx
call fcn.180ff616
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov esi, eax
push dword [esp + 0x70]
push dword [esp + 0x30]
push dword [esp + 0x54]
push 0x79
pop edx
call fcn.180ff616
add esp, 0xc
mov edx, esi
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.180ffe36
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
jmp 0x18123778
mov eax, dword [esi + 0x6c]
add eax, 2
push eax
push dword [esp + 0x34]
push 0x32
pop edx
call fcn.180ff616
add esp, 0xc
push 0
push 0
push dword [esp + 0x34]
push 0xf
jmp 0x181237be
test ecx, ecx
jne 0x181237b4
cmp byte [esp + 0x90], cl
jne 0x181237b4
push dword [esp + 0x70]
mov ecx, esi
push dword [esp + 0x30]
push dword [esp + 0x54]
push 0x79
pop edx
call fcn.180ff616
add esp, 0xc
mov dword [esp + 0x40], 1
jmp 0x181237ce
push 0
push dword [esp + 0x30]
push 0
push 0x48
pop edx
mov ecx, esi
call fcn.180ff616
add esp, 0xc
and dword [esp + 0x40], 0
mov eax, dword [esp + 0x70]
test eax, eax
jle 0x181237ed
mov ecx, dword [ebx + 8]
mov edx, 0x98
push 0
push dword [esp + 0x30]
push eax
call fcn.180ff616
add esp, 0xc
test byte [edi + 0x24], 0x60
je 0x18123800
mov edx, dword [esp + 0x50]
mov ecx, ebx
push edi
call fcn.181227c0
pop ecx
xor ecx, ecx
mov edx, edi
cmp dword [edi + 0x38], ecx
je 0x1812385e
mov ecx, dword [esp + 0x3c]
call fcn.18134c8b
mov ecx, ebx
mov esi, eax
call fcn.18135a18
movsx eax, word [edi + 0x2a]
push 0xfffffffffffffff4
push esi
push dword [esp + 0x74]
mov esi, dword [esp + 0x2c]
add eax, 2
push eax
push 1
push 0xa
pop edx
mov ecx, esi
call fcn.180ff738
add esp, 0x14
cmp dword [ebp + 0x10], 0xb
jne 0x18123848
push 2
pop edx
jmp 0x1812384b
mov edx, dword [ebp + 0x10]
mov ecx, esi
call fcn.180ffb71
mov ecx, ebx
call fcn.1811d25e
jmp 0x181238ee
push dword [ebp + 0x14]
lea eax, [esp + 0x34]
push ecx
push eax
push dword [esp + 0x54]
mov eax, dword [esp + 0x44]
push dword [ebp + 0x10]
shr eax, 0x1f
xor al, 1
movzx eax, al
push eax
push ecx
push dword [esp + 0x88]
mov ecx, ebx
push dword [esp + 0x94]
push dword [esp + 0x70]
push dword [esp + 0x3c]
call fcn.18123aa5
add esp, 0x2c
xor eax, eax
mov edx, edi
mov ecx, ebx
push eax
push eax
push dword [esp + 0x74]
push eax
call fcn.181218f7
add esp, 0x10
cmp dword [esp + 0x30], 0
je 0x181238c5
cmp dword [esi + 0xd8], 0
je 0x181238c5
xor eax, eax
jmp 0x181238c8
xor eax, eax
inc eax
push eax
push dword [esp + 0x44]
mov edx, edi
mov ecx, ebx
push 0
push dword [esp + 0x20]
push dword [esp + 0x7c]
push dword [esp + 0x88]
push dword [esp + 0x64]
call fcn.181249d0
add esp, 0x1c
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x1812390b
push 0
push 1
push eax
push 0x52
pop edx
mov ecx, esi
call fcn.180ff616
add esp, 0xc
mov edx, dword [esp + 0x78]
test edx, edx
je 0x18123939
push dword [esp + 0x48]
movsx eax, word [edi + 0x2a]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x58]
sub ecx, eax
sub ecx, 2
push ecx
push edi
push 2
push 0
push 0x7d
mov ecx, ebx
call fcn.18132198
add esp, 0x1c
mov edx, dword [esp + 0x48]
mov ecx, esi
call fcn.180ff99a
cmp byte [esp + 0x13], 0
je 0x1812398e
mov edi, dword [esp + 0x38]
mov ecx, esi
push 0
push dword [esp + 0x80]
push edi
push 5
pop edx
call fcn.180ff616
mov edx, dword [esp + 0x8c]
add esp, 0xc
mov ecx, esi
call fcn.180ffe36
mov ecx, dword [esi + 0x6c]
push 0
push 0
push edi
mov dword [eax + 8], ecx
mov ecx, esi
push 0x74
pop edx
call fcn.180ff616
add esp, 0xc
jmp 0x181239b4
cmp dword [esp + 0xc], 0
je 0x181239b4
mov edx, dword [esp + 0x7c]
mov ecx, esi
call fcn.180ff66f
mov edx, dword [esp + 0x80]
mov ecx, esi
call fcn.180ffe36
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
cmp byte [ebx + 0x12], 0
jne 0x181239cd
cmp dword [ebx + 0x78], 0
jne 0x181239cd
cmp dword [ebx + 0x70], 0
je 0x181239cd
mov ecx, ebx
call fcn.18122aab
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x18123127
push 0
push 1
push eax
push 0x50
pop edx
mov ecx, esi
call fcn.180ff616
add esp, 0xc
xor edx, edx
inc edx
mov ecx, esi
call fcn.18100b39
push 0
push str.rows_inserted
push 0
xor edx, edx
mov ecx, esi
call fcn.18100ba4
jmp 0x1812319b
mov ebx, dword [ebp + 8]
jmp 0x1812312f