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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe4
push ebx
push esi
push edi
mov edi, edx
mov dword [esp + 0x74], edi
mov esi, ecx
mov dword [esp + 0x80], esi
or dword [esp + 0x7c], 0xffffffff
xor eax, eax
push 8
push eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x60], eax
lea eax, [esp + 0xd0]
push eax
mov dword [esp + 0xbc], 1
call fcn.181757a0
mov ebx, dword [esi]
add esp, 0xc
cmp dword [esi + 0x24], 0
mov dword [esp + 0x38], ebx
jne 0x18133b69
cmp byte [ebx + 0x51], 0
jne 0x18133b69
mov edx, edi
mov ecx, esi
call fcn.1811deda
mov ebx, eax
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x181329ec
mov edx, dword [ebx + 0x48]
mov ecx, dword [esi]
call fcn.181292fc
mov edi, dword [ebp + 8]
mov edx, ebx
mov dword [esp + 0x44], eax
mov ecx, esi
lea eax, [esp + 0xb4]
push eax
push edi
push 0x7f
call fcn.18131b85
mov ecx, dword [esp + 0x80]
add esp, 0xc
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x54], eax
cmp dword [ecx], 1
jle 0x181325fd
mov eax, dword [edi]
mov dword [esp + 0x30], eax
jmp 0x18132602
and dword [esp + 0x30], 0
mov edx, ebx
mov ecx, esi
call fcn.1811ad0c
test eax, eax
jne 0x18132a6f
push dword [esp + 0xb4]
mov edx, ebx
mov ecx, esi
call fcn.1811df16
pop ecx
test eax, eax
jne 0x18132a6f
mov edx, dword [esi + 0x28]
mov dword [esp + 0x1c], edx
mov dword [esp + 0xa0], edx
lea ecx, [edx + 1]
mov dword [esi + 0x28], ecx
test byte [ebx + 0x24], 0x80
mov dword [esp + 0x98], ecx
jne 0x18132653
and dword [esp + 0x34], eax
jmp 0x18132665
mov ecx, ebx
call fcn.1811903a
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 8]
xor edi, edi
mov dword [esp + 0x5c], edi
test eax, eax
je 0x1813268e
cmp dword [esp + 0x34], eax
jne 0x1813267a
mov edx, ecx
inc ecx
inc edi
mov dword [esi + 0x28], ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x18132672
mov dword [esp + 0x1c], edx
mov dword [esp + 0x5c], edi
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x181326b0
mov edx, dword [eax + 0x1c]
mov ecx, dword [eax + 0x20]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x98], ecx
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x38]
push 0
mov dword [eax + 0x34], edx
movsx eax, word [ebx + 0x2a]
add eax, edi
lea eax, [eax*4 + 6]
add eax, edi
push eax
call fcn.180e69f7
mov edx, eax
mov dword [esp + 0x20], edx
pop ecx
pop ecx
test edx, edx
je 0x181329f0
movsx eax, word [ebx + 0x2a]
lea eax, [edx + eax*4]
lea ecx, [eax + 4]
mov dword [esp + 0x88], eax
lea eax, [edi + 1]
push eax
lea ecx, [ecx + edi*4]
push 1
push ecx
mov dword [esp + 0x84], ecx
call fcn.181757a0
mov eax, dword [esp + 0x84]
add esp, 0xc
xor ecx, ecx
mov byte [eax + edi + 1], 0
xor eax, eax
cmp ax, word [ebx + 0x2a]
jge 0x1813273a
mov esi, dword [esp + 0x18]
or dword [esi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [ebx + 0x2a]
cmp ecx, eax
jl 0x18132726
mov esi, dword [esp + 0x80]
push 0x20
lea eax, [esp + 0xd4]
push 0
push eax
call fcn.181757a0
mov eax, dword [esp + 0x80]
add esp, 0xc
mov dword [esp + 0xd4], eax
mov ecx, esi
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd8], eax
mov dword [esp + 0xe8], 0x200
call fcn.1812b77b
mov edi, dword [ebp + 8]
mov dword [esp + 0x14], eax
test eax, eax
je 0x18132a6f
and dword [esp + 0x20], 0
xor al, al
cmp dword [edi], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x13], al
jle 0x18132955
lea ecx, [edi + 4]
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x30], 0
jne 0x181327cf
mov edx, dword [ecx]
lea ecx, [esp + 0xd0]
call fcn.1810ed07
test eax, eax
jne 0x18132a6f
mov ecx, dword [esp + 0x24]
movsx eax, word [ebx + 0x2a]
xor edi, edi
mov dword [esp + 0x50], eax
test eax, eax
jle 0x1813280e
mov ebx, dword [ebx + 4]
mov eax, ebx
mov dword [esp + 0x68], ebx
mov edx, dword [ecx + 4]
mov ecx, dword [eax]
call fcn.180e90b3
test eax, eax
je 0x1813286d
mov eax, dword [esp + 0x68]
inc edi
mov ecx, dword [esp + 0x24]
add eax, 0x14
mov dword [esp + 0x68], eax
cmp edi, dword [esp + 0x50]
jl 0x181327e6
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov al, byte [esp + 0x13]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x70], eax
movsx eax, word [ebx + 0x2a]
cmp edi, eax
jl 0x181328d0
cmp dword [esp + 0x34], 0
jne 0x18132a51
mov ecx, dword [ecx + 4]
call fcn.18110c58
test eax, eax
je 0x18132a51
mov eax, dword [esp + 0x24]
or edi, 0xffffffff
mov byte [esp + 0x13], 1
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
jmp 0x181328d4
mov eax, dword [esp + 0x2c]
movsx eax, word [eax + 0x28]
cmp edi, eax
jne 0x18132892
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x13], 1
mov eax, dword [ecx]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
jmp 0x181328c0
cmp dword [esp + 0x34], 0
je 0x181328aa
imul eax, edi, 0x14
test byte [eax + ebx + 0x10], 1
je 0x181328aa
mov byte [esp + 0x2b], 1
jmp 0x181328b8
imul eax, edi, 0x14
test byte [eax + ebx + 0x10], 0x60
jne 0x181329d8
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
mov dword [edx + edi*4], eax
jmp 0x18132812
test edi, edi
jns 0x181328db
mov edx, str.ROWID
jmp 0x181328fc
mov eax, dword [ebx + 4]
imul ecx, edi, 0x14
mov edx, dword [ecx + eax]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x7c], eax
mov al, byte [esp + 0x13]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov ecx, esi
push edx
push dword [ebx]
push 0x17
pop edx
call fcn.18118204
add esp, 0xc
cmp eax, 1
je 0x181329ec
cmp eax, 2
jne 0x18132932
mov eax, dword [esp + 0x18]
or dword [eax + edi*4], 0xffffffff
mov eax, dword [esp + 0x20]
mov edi, dword [ebp + 8]
inc eax
mov ecx, dword [esp + 0x24]
add ecx, 0x14
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
cmp eax, dword [edi]
jl 0x181327ae
mov al, byte [esp + 0x13]
mov dl, byte [esp + 0x2b]
add dl, al
test byte [ebx + 0x24], 0x60
mov byte [esp + 0x84], dl
je 0x18132aab
movzx eax, word [ebx + 0x2a]
mov esi, dword [esp + 0x2c]
xor edx, edx
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x68], edx
cmp cx, ax
jge 0x18132a99
xor ebx, ebx
mov eax, dword [esp + 0x18]
cmp dword [eax + edi*4], 0
jge 0x18132a7c
mov ecx, dword [esi + 4]
test byte [ecx + ebx + 0x10], 0x60
je 0x18132a7c
movzx eax, byte [esp + 0x13]
mov edx, dword [esp + 0x18]
mov ecx, dword [ecx + ebx + 4]
push eax
call fcn.18123a4d
pop ecx
test eax, eax
je 0x18132a78
mov eax, dword [esp + 0x18]
xor edx, edx
inc edx
mov dword [esp + 0x68], edx
mov dword [eax + edi*4], 0x1869f
jmp 0x18132a7c
imul eax, edi, 0x14
push dword [eax + ebx]
push str.cannot_UPDATE_generated_column___s_
push esi
call fcn.180e8fc0
add esp, 0xc
mov edx, dword [esp + 0x18]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0xcc]
test ecx, ecx
je 0x18132a17
mov eax, dword [esp + 0xc8]
mov dword [ecx + 0xf4], eax
and dword [esp + 0xcc], 0
test edx, edx
je 0x18132a22
mov ecx, ebx
call fcn.180e676a
mov edx, dword [esp + 0x74]
mov ecx, ebx
call fcn.1811cd7d
test edi, edi
je 0x18132a3a
mov edx, edi
mov ecx, ebx
call fcn.18110852
cmp dword [ebp + 0xc], 0
je 0x18132a4a
mov edx, dword [ebp + 0xc]
mov ecx, ebx
call fcn.1810fc83
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
imul eax, dword [esp + 0x20], 0x14
mov edi, dword [ebp + 8]
push dword [eax + edi + 8]
push str.no_such_column:__s
push esi
call fcn.180e8fc0
add esp, 0xc
mov byte [esi + 0x11], 1
mov edx, dword [esp + 0x18]
jmp 0x181329f3
mov edx, dword [esp + 0x68]
movzx eax, word [esi + 0x2a]
inc edi
mov ecx, eax
add ebx, 0x14
cwde
cmp edi, eax
jl 0x18132989
mov eax, ecx
test edx, edx
jne 0x18132974
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x2c]
mov dl, byte [esp + 0x84]
cmp dword [ebx + 0x38], 0
je 0x18132ab9
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x18132abd
xor eax, eax
xor ecx, ecx
mov edi, dword [esp + 0x74]
mov dword [edi + 0x40], eax
movzx eax, dl
mov edx, ebx
push eax
push dword [esp + 0x1c]
mov dword [edi + 0x44], ecx
mov ecx, esi
mov dword [esp + 0x70], eax
call fcn.18121dd3
cmp dword [ebp + 0x10], 5
pop ecx
pop ecx
mov dword [esp + 0x24], eax
jne 0x18132af3
mov dword [esp + 0x94], 1
mov edi, dword [ebx + 8]
xor ecx, ecx
mov dword [esp + 0xac], ecx
test edi, edi
je 0x18132c50
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x24]
inc eax
mov dword [esp + 0x4c], eax
cmp byte [esp + 0x84], 0
jne 0x18132bff
cmp ebx, 1
jg 0x18132bff
cmp edi, dword [esp + 0x34]
je 0x18132bff
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x18132b58
movzx eax, byte [esp + 0x13]
mov edx, dword [esp + 0x18]
push eax
call fcn.18123a4d
pop ecx
test eax, eax
jne 0x18132bff
mov eax, dword [esp + 0x4c]
xor esi, esi
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x40], edx
cmp si, word [edi + 0x32]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x20], ecx
jae 0x18132c16
mov dword [esp + 0x50], edx
mov eax, dword [edi + 4]
movzx eax, word [eax + ecx*2]
test ax, ax
js 0x18132b96
mov ebx, dword [esp + 0x18]
cwde
mov eax, dword [ebx + eax*4]
not eax
shr eax, 0x1f
jmp 0x18132bb9
movzx eax, byte [esp + 0x13]
mov ecx, dword [edi + 0x28]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x54]
mov ecx, dword [ecx + eax + 4]
call fcn.18123a4d
mov edx, dword [esp + 0x54]
pop ecx
mov ecx, dword [esp + 0x20]
test eax, eax
jne 0x18132bd7
movzx eax, word [edi + 0x32]
inc ecx
add edx, 0x14
mov dword [esp + 0x20], ecx
mov dword [esp + 0x50], edx
cmp ecx, eax
jl 0x18132b7b
mov edx, dword [esp + 0x40]
jmp 0x18132c12
inc dword [esi + 0x2c]
movzx eax, word [edi + 0x34]
mov edx, dword [esi + 0x2c]
add eax, edx
cmp dword [ebp + 0x10], 0xb
mov dword [esi + 0x2c], eax
jne 0x18132c0e
cmp byte [edi + 0x36], 5
jne 0x18132c0e
mov dword [esp + 0x94], 1
jmp 0x18132c0e
inc dword [esi + 0x2c]
movzx eax, word [edi + 0x34]
mov edx, dword [esi + 0x2c]
add eax, edx
mov dword [esi + 0x2c], eax
test edx, edx
jne 0x18132c1b
mov eax, dword [esp + 0x4c]
mov byte [eax], 0
jmp 0x18132c1f
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xac]
mov ebx, dword [esp + 0x88]
mov dword [ebx + ecx*4], edx
inc ecx
mov edi, dword [edi + 0x14]
inc eax
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x4c], eax
test edi, edi
jne 0x18132b14
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x88]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [edx + ecx*4], eax
cmp dword [esp + 0x94], 0
je 0x18132c81
mov eax, dword [esp + 0x5c]
inc eax
push eax
push 1
push dword [esp + 0x80]
call fcn.181757a0
add esp, 0xc
cmp byte [esi + 0x12], 0
mov edi, dword [esp + 0x14]
jne 0x18132c92
or dword [edi + 0x98], 0x10
cmp dword [esp + 0x48], 0
jne 0x18132ca4
cmp dword [esp + 0x24], 0
jne 0x18132ca4
xor edx, edx
jmp 0x18132ca7
xor edx, edx
inc edx
push dword [esp + 0x44]
mov ecx, esi
call fcn.1811d222
cmp dword [ebx + 0x38], 0
pop ecx
jne 0x18132d40
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x2c]
inc ecx
mov dword [esp + 0x8c], eax
cmp byte [esp + 0x2b], 0
mov dword [esp + 0x60], ecx
mov dword [esi + 0x2c], ecx
mov dword [esp + 0x3c], ecx
jne 0x18132cfb
test edx, edx
jne 0x18132cfb
mov eax, dword [esp + 0x24]
test eax, eax
je 0x18132d0f
lea eax, [ecx + 1]
mov dword [esp + 0x64], eax
movsx eax, word [ebx + 0x2a]
add ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x2c], ecx
cmp byte [esp + 0x84], 0
jne 0x18132d21
test edx, edx
jne 0x18132d21
test eax, eax
je 0x18132d2d
lea eax, [ecx + 1]
mov dword [esp + 0x60], eax
mov ecx, eax
mov dword [esi + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x90], eax
movsx eax, word [ebx + 0x2a]
add eax, ecx
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x54]
test eax, eax
je 0x18132d68
mov ecx, dword [ebx]
mov eax, dword [esi + 0xf4]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xcc], esi
mov dword [esi + 0xf4], ecx
cmp dword [esp + 0x30], 0
jne 0x18132da1
test eax, eax
je 0x18132d8a
push dword [esp + 0x1c]
mov edx, ebx
mov ecx, esi
push 0
push 0
push dword [ebp + 0xc]
call fcn.1811df97
add esp, 0x10
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0xd0]
call fcn.1810ed07
test eax, eax
jne 0x181329ec
xor edx, edx
cmp dword [ebx + 0x38], edx
je 0x18132dce
push dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov ecx, esi
push dword [ebp + 0xc]
mov edx, dword [esp + 0x7c]
push dword [esp + 0x20]
push dword [esp + 0x7c]
push edi
push ebx
call fcn.18133b75
add esp, 0x18
jmp 0x18132a6f
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x24]
mov eax, edx
and ecx, 1
or eax, ecx
je 0x18132e1a
cmp dword [esi + 0x78], edx
jne 0x18132e1a
cmp byte [esi + 0x12], dl
jne 0x18132e1a
cmp dword [ebp + 0x1c], edx
jne 0x18132e1a
inc dword [esi + 0x2c]
mov ecx, edi
mov eax, dword [esi + 0x2c]
push edx
push eax
push edx
push 0x45
pop edx
mov dword [esp + 0xc8], eax
call fcn.180ff616
add esp, 0xc
xor edx, edx
cmp dword [esp + 0x30], 0
jne 0x18132f12
test byte [ebx + 0x24], 0x80
jne 0x18132f12
push dword [esp + 0x3c]
mov ecx, edi
push dword [esp + 0x90]
push edx
push 0x48
pop edx
call fcn.180ff616
mov ecx, dword [esi + 0x28]
add esp, 0xc
mov dword [esp + 0x40], ecx
push dword [esp + 0x8c]
lea eax, [ecx + 1]
push 0
push ecx
push 0x64
pop edx
mov ecx, edi
mov dword [esi + 0x28], eax
call fcn.180ff616
add esp, 0xc
mov edi, eax
cmp dword [ebp + 0x1c], 0
mov dword [esp + 0x50], edi
je 0x18133015
and dword [esp + 0xa8], 0
push 0x10
push dword [esp + 0x50]
mov dword [esp + 0x4c], 1
push dword [ebp + 0xc]
push esi
call fcn.181138ef
add esp, 0x10
and dword [esp + 0xb0], 0
mov ecx, dword [esp + 0x1c]
test byte [ebx + 0x24], 0x80
jne 0x1813314c
push 0
push dword [esp + 0x40]
mov edx, 0x80
push ecx
mov ecx, dword [esp + 0x20]
call fcn.180ff616
mov ecx, dword [esp + 0x50]
add esp, 0xc
test ecx, ecx
jne 0x18133134
push dword [esp + 0x3c]
mov ecx, dword [esp + 0xb0]
push dword [esp + 0x90]
mov edx, dword [esp + 0x90]
push dword [esp + 0x48]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0x20]
push 0x7a
pop edx
call fcn.180ff616
add esp, 0xc
jmp 0x18133212
mov eax, dword [esp + 0x34]
test eax, eax
je 0x18132f20
movzx ecx, word [eax + 0x32]
jmp 0x18132f22
mov ecx, edx
mov eax, dword [esi + 0x2c]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x9c], ecx
inc edi
movsx ecx, cx
lea edx, [eax + 1]
add eax, ecx
add eax, edi
mov dword [esp + 0x6c], edx
cmp dword [ebp + 0x1c], 0
mov dword [esp + 0x58], eax
mov dword [esi + 0x2c], eax
jne 0x181330f4
cmp dword [esp + 0x54], 0
je 0x18132f5d
movsx eax, word [ebx + 0x2a]
jmp 0x18132f5f
xor eax, eax
lea edi, [eax + ecx]
mov eax, dword [esi + 0x28]
add edi, dword [esp + 0x30]
mov dword [esp + 0x40], eax
inc eax
cmp dword [esp + 0x34], 0
mov dword [esi + 0x28], eax
je 0x18132f90
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x14]
add eax, edx
push eax
push edx
push 0
push 0x48
pop edx
call fcn.180ff616
add esp, 0xc
mov ecx, dword [esp + 0x14]
push 0
push edi
push dword [esp + 0x48]
push 0x64
pop edx
call fcn.180ff616
mov dword [esp + 0x5c], eax
add esp, 0xc
mov eax, dword [esp + 0x34]
test eax, eax
je 0x18132fd5
mov edx, eax
mov ecx, esi
call fcn.1811d65c
test eax, eax
je 0x18132fd1
mov ecx, dword [esp + 0x14]
mov edx, eax
push 0xfffffffffffffff7
mov word [eax + 8], di
call fcn.180ffdea
pop ecx
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x30], 0
je 0x18133011
mov edi, dword [esp + 0x40]
mov edx, edi
push ecx
push ecx
push dword [ebp + 0xc]
mov ecx, dword [esp + 0x80]
push ecx
push dword [ebp + 8]
mov ecx, esi
push eax
call fcn.181322ed
add esp, 0x18
cmp dword [esp + 0x54], 0
je 0x18133111
mov dword [esp + 0x1c], edi
jmp 0x18133111
mov edi, dword [esp + 0x50]
cmp byte [esi + 0x12], 0
push 4
pop eax
jne 0x18133043
cmp dword [esp + 0x48], 0
jne 0x18133043
cmp dword [esp + 0x24], 0
jne 0x18133043
cmp byte [esp + 0x84], 0
jne 0x18133043
cmp dword [esp + 0x94], 0
jne 0x18133043
push 0xc
pop eax
push dword [esp + 0x98]
mov edx, dword [esp + 0x78]
mov ecx, esi
push eax
push 0
push 0
push dword [ebp + 0xc]
call fcn.1813e43f
add esp, 0x14
mov dword [esp + 0xa8], eax
test eax, eax
je 0x181329ec
add eax, 0x14
push 8
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.18175220
mov eax, dword [esp + 0xb4]
add esp, 0xc
movzx edx, byte [eax + 0x2e]
mov eax, dword [eax + 0x30]
and eax, 1
mov dword [esp + 0x44], edx
mov dword [esp + 0xb0], eax
cmp edx, 1
je 0x18132ea6
mov ecx, esi
call fcn.1811d250
cmp edx, 2
jne 0x18132ea6
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x1c]
test eax, eax
js 0x18132eaa
cmp eax, ecx
je 0x18132eaa
sub eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x78]
cmp byte [eax + edx], 0
je 0x18132eaa
and dword [esp + 0x44], 0
jmp 0x18132eaa
and dword [esp + 0x40], 0
xor edi, edi
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x50], edi
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x30], edi
je 0x18132e7c
mov ecx, esi
call fcn.1811d250
mov edx, dword [esp + 0x9c]
xor ecx, ecx
movsx eax, dx
mov dword [esp + 0x44], ecx
mov dword [esp + 0xa4], eax
jmp 0x181331c1
test edi, edi
je 0x18133216
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.180ffccd
jmp 0x18133212
mov edx, dword [esp + 0x9c]
and dword [esp + 0x8c], 0
movsx edi, dx
test edi, edi
jle 0x1813319b
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x6c]
mov edx, ebx
add eax, esi
push eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push ecx
mov ecx, dword [esp + 0x20]
call fcn.18111fca
mov ecx, dword [esp + 0x28]
add esp, 0xc
inc esi
cmp esi, edi
jl 0x18133169
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x181331cb
mov eax, dword [esp + 0x50]
test eax, eax
je 0x181331ba
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.180ffccd
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x58], eax
jmp 0x18133216
mov edx, dword [esp + 0x34]
push edi
push ecx
mov ecx, dword [esp + 0x40]
call fcn.181225ab
pop ecx
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x60]
push edi
push dword [esp + 0x7c]
push 0x5b
pop edx
call fcn.180ff738
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov edx, 0x83
push edi
push dword [esp + 0x70]
push dword [esp + 0x60]
push dword [esp + 0x4c]
call fcn.180ff900
add esp, 0x10
mov ecx, dword [esp + 0x44]
cmp dword [ebp + 0x1c], 0
jne 0x181334bf
cmp dword [esp + 0x30], 0
jne 0x18133238
cmp ecx, 2
je 0x18133238
mov ecx, dword [esp + 0xa8]
call fcn.1813ee22
mov ecx, dword [esp + 0x54]
test ecx, ecx
jne 0x181332e3
mov ecx, dword [esp + 0x44]
xor edi, edi
test ecx, ecx
je 0x181332af
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x78]
test eax, eax
js 0x18133268
sub eax, dword [esp + 0xa0]
mov byte [eax + edx], 0
mov eax, dword [esp + 0xc4]
test eax, eax
js 0x1813327e
sub eax, dword [esp + 0xa0]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x181332af
mov ecx, dword [esp + 0x5c]
xor eax, eax
cmp dword [esp + 0xc4], eax
setge al
sub ecx, eax
test ecx, ecx
jle 0x181332af
mov ecx, dword [esp + 0x14]
xor eax, eax
push eax
push eax
push eax
push 0x11
pop edx
call fcn.180ff616
add esp, 0xc
mov edi, eax
xor ecx, ecx
mov edx, ebx
push ecx
push ecx
push dword [esp + 0x80]
push dword [esp + 0xac]
push ecx
push 0x61
mov ecx, esi
call fcn.18124b11
add esp, 0x18
test edi, edi
je 0x181332e9
mov edx, edi
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.180ffb86
jmp 0x181332ed
mov edi, dword [esp + 0x14]
jmp 0x181332f1
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x44]
test eax, eax
je 0x1813336b
test ecx, ecx
jne 0x18133334
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0xc0], ecx
je 0x18133334
cmp dword [esp + 0xc4], ecx
je 0x18133334
push dword [esp + 0xa4]
push dword [esp + 0x5c]
push dword [esp + 0x54]
push ecx
push 0x1d
pop edx
mov ecx, edi
call fcn.180ff900
mov eax, dword [esp + 0x54]
add esp, 0x10
cmp eax, 1
je 0x18133343
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x58]
jne 0x18133352
mov eax, dword [esp + 0x3c]
push 0
push dword [esp + 0x50]
push eax
push 0x32
pop edx
mov ecx, edi
call fcn.180ff616
add esp, 0xc
jmp 0x181334c3
cmp dword [esp + 0x34], 0
jne 0x181333ca
cmp dword [esp + 0x30], 0
jne 0x181333ca
push 0
push dword [esp + 0x50]
mov ecx, edi
push dword [esp + 0x48]
push 0x25
pop edx
call fcn.180ff616
add esp, 0xc
mov edx, 0x80
dec dword [esi + 0x38]
mov ecx, edi
mov eax, dword [esi + 0x38]
mov dword [esp + 0x20], eax
push 0
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.180ff616
mov dword [esp + 0xc4], eax
add esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x24]
push dword [esp + 0x24]
push 0x20
jmp 0x1813335b
dec dword [esi + 0x38]
mov ecx, edi
mov eax, dword [esi + 0x38]
push 0
push dword [esp + 0x50]
mov dword [esp + 0x28], eax
push dword [esp + 0x48]
push 0x25
pop edx
call fcn.180ff616
mov eax, dword [edi + 0x6c]
add esp, 0xc
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1813348b
cmp dword [esp + 0x54], 0
jne 0x181334c7
cmp dword [esp + 0x34], 0
je 0x18133470
mov eax, dword [esp + 0x9c]
xor edi, edi
movsx ebx, ax
test ebx, ebx
jle 0x1813344c
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
mov ecx, esi
add eax, edi
push eax
push edi
push dword [esp + 0x48]
push 0x59
pop edx
call fcn.180ff616
add esp, 0xc
inc edi
cmp edi, ebx
jl 0x18133427
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x14]
mov ecx, edi
push ebx
push dword [esp + 0x70]
push dword [esp + 0x28]
push dword [esp + 0x28]
push 0x1d
pop edx
call fcn.180ff900
mov ebx, dword [esp + 0x3c]
add esp, 0x10
jmp 0x181334c3
push 0
push dword [esp + 0x40]
mov edx, 0x80
mov ecx, edi
push dword [esp + 0x48]
call fcn.180ff616
jmp 0x181333b7
push 0
push dword [esp + 0x5c]
mov ecx, edi
push dword [esp + 0x48]
push 0x7f
pop edx
call fcn.180ff616
add esp, 0xc
mov ecx, edi
push 0
push dword [esp + 0x5c]
push dword [esp + 0x28]
push dword [esp + 0x28]
push 0x1d
pop edx
call fcn.180ff900
add esp, 0x10
jmp 0x181334c3
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
cmp byte [esp + 0x13], 0
je 0x18133512
push dword [esp + 0x60]
test eax, eax
jne 0x181334e4
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.181132e5
pop ecx
jmp 0x181334fd
mov edx, dword [esp + 0x80]
mov ecx, edi
push edx
push dword [esp + 0x48]
push 0x59
pop edx
call fcn.180ff616
add esp, 0xc
push 0
push 0
push dword [esp + 0x68]
mov ecx, edi
push 0xf
pop edx
call fcn.180ff616
add esp, 0xc
cmp byte [esp + 0x2b], 0
mov eax, dword [esp + 0x24]
jne 0x1813352b
test eax, eax
jne 0x1813352f
cmp dword [esp + 0x48], eax
je 0x18133606
test eax, eax
je 0x1813353c
mov edx, ebx
mov ecx, esi
call fcn.18121d03
mov ebx, eax
jmp 0x1813353e
xor ebx, ebx
push dword [ebp + 0x10]
mov edx, dword [esp + 0x4c]
mov ecx, esi
push dword [esp + 0x30]
push 3
push 0
push dword [ebp + 8]
call fcn.181321ec
or ebx, eax
xor ecx, ecx
mov eax, dword [esp + 0x40]
add esp, 0x14
xor edi, edi
cmp cx, word [eax + 0x2a]
jge 0x181335df
and dword [esp + 0x5c], ecx
mov esi, eax
mov edx, edi
mov ecx, esi
call fcn.18119072
movsx edx, ax
add edx, dword [esp + 0x64]
cmp ebx, 0xffffffff
je 0x181335b6
cmp edi, 0x20
jge 0x18133595
xor eax, eax
mov ecx, edi
inc eax
shl eax, cl
test ebx, eax
jne 0x181335b6
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x5c]
test byte [eax + ecx + 0x10], 1
jne 0x181335b6
mov ecx, dword [esp + 0x14]
push 0
push edx
push 0
push 0x48
pop edx
call fcn.180ff616
jmp 0x181335c7
mov ecx, dword [esp + 0x14]
push edx
push edi
push dword [esp + 0x24]
mov edx, esi
call fcn.18111fca
movsx eax, word [esi + 0x2a]
add esp, 0xc
add dword [esp + 0x5c], 0x14
inc edi
cmp edi, eax
jl 0x18133570
mov esi, dword [esp + 0x80]
cmp byte [esp + 0x13], 0
jne 0x18133606
cmp dword [esp + 0x34], 0
jne 0x18133606
mov ecx, dword [esp + 0x14]
push 0
push dword [esp + 0x64]
push dword [esp + 0x44]
push 0x4d
pop edx
call fcn.180ff616
add esp, 0xc
push dword [ebp + 0x10]
mov edx, dword [esp + 0x4c]
mov ecx, esi
push dword [esp + 0x30]
push 1
push 1
push dword [ebp + 8]
call fcn.181321ec
mov edx, dword [esp + 0xa4]
xor ebx, ebx
and dword [esp + 0x78], ebx
add esp, 0x14
mov dword [esp + 0x50], eax
mov edi, edx
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax + 0x2a]
cmp word [esp + 0x64], cx
jge 0x18133741
mov dword [esp + 0x64], ecx
xor ecx, ecx
mov dword [esp + 0x5c], ecx
movsx eax, word [eax + 0x28]
cmp ebx, eax
je 0x181336e4
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
movzx eax, word [eax + ecx + 0x10]
test al, 0x60
je 0x1813367c
test al, 0x20
je 0x18133714
dec edi
jmp 0x18133714
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
js 0x181336c5
cmp dword [esp + 0x30], 0
je 0x181336b0
cmp dword [esp + 0x54], 0
mov eax, dword [esp + 0x64]
jne 0x181336a0
mov eax, dword [esp + 0x9c]
movzx eax, ax
push edi
cwde
add eax, ecx
push eax
push dword [esp + 0x48]
push 0x59
jmp 0x181336eb
mov eax, dword [ebp + 8]
imul edx, ecx, 0x14
mov ecx, esi
push edi
mov edx, dword [edx + eax + 4]
call fcn.181132e5
pop ecx
jmp 0x18133714
test dword [esp + 0xb4], 1
je 0x181336fa
cmp ebx, 0x1f
jg 0x181336fa
xor eax, eax
mov ecx, ebx
inc eax
shl eax, cl
test dword [esp + 0x50], eax
jne 0x181336fa
push 0
push edi
push 0
push 0x48
mov ecx, dword [esp + 0x24]
pop edx
call fcn.180ff616
add esp, 0xc
jmp 0x18133714
mov ecx, dword [esp + 0x14]
push edi
push ebx
push dword [esp + 0x24]
call fcn.18111fca
add esp, 0xc
and dword [esp + 0xb0], 0
mov eax, dword [esp + 0x2c]
inc ebx
add dword [esp + 0x5c], 0x14
inc edi
movzx eax, word [eax + 0x2a]
mov ecx, eax
cwde
mov dword [esp + 0x64], ecx
cmp ebx, eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x5c]
jl 0x18133652
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x2c]
test byte [ebx + 0x24], 0x60
je 0x18133754
push ebx
mov ecx, esi
call fcn.181227c0
pop ecx
test byte [esp + 0xb4], 1
je 0x18133898
push dword [esp + 0x90]
mov ecx, dword [esp + 0x18]
mov edx, ebx
call fcn.18122659
mov eax, dword [esp + 0x4c]
mov edi, eax
pop ecx
test eax, eax
je 0x181337b9
cmp byte [edi + 8], 0x7f
jne 0x181337b2
cmp byte [edi + 9], 1
jne 0x181337b2
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 0x10]
call fcn.18131b42
test eax, eax
je 0x181337b2
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
push dword [ebp + 0x10]
push dword [esp + 0x44]
push ebx
call fcn.18132120
add esp, 0x10
mov edi, dword [edi + 0x20]
test edi, edi
jne 0x1813377f
cmp dword [esp + 0x54], 0
jne 0x18133a45
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x14]
je 0x181337ef
push dword [esp + 0xa4]
push dword [esp + 0x5c]
push dword [esp + 0x28]
push dword [esp + 0x28]
push 0x1d
pop edx
call fcn.180ff900
add esp, 0x10
jmp 0x18133806
push dword [esp + 0x3c]
push dword [esp + 0x24]
push dword [esp + 0x24]
push 0x20
pop edx
call fcn.180ff616
add esp, 0xc
mov eax, dword [esp + 0x2c]
xor edx, edx
mov ecx, dword [esp + 0x90]
xor edi, edi
mov ebx, ecx
cmp dx, word [eax + 0x2a]
jge 0x18133881
xor ecx, ecx
mov esi, eax
mov dword [esp + 0x64], ecx
mov eax, dword [esi + 4]
movzx eax, word [eax + ecx + 0x10]
test al, 0x60
je 0x18133838
test al, 0x20
je 0x18133862
dec ebx
jmp 0x18133862
mov eax, dword [esp + 0x18]
cmp dword [eax + edi*4], 0
jge 0x18133862
movsx eax, word [esi + 0x28]
cmp edi, eax
je 0x18133862
mov ecx, dword [esp + 0x14]
mov edx, esi
push ebx
push edi
push dword [esp + 0x24]
call fcn.18111fca
mov ecx, dword [esp + 0x70]
add esp, 0xc
movsx eax, word [esi + 0x2a]
add ecx, 0x14
inc edi
mov dword [esp + 0x64], ecx
inc ebx
cmp edi, eax
jl 0x18133825
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x2c]
test byte [ebx + 0x24], 0x60
je 0x181338a3
mov edx, ecx
mov ecx, esi
push ebx
call fcn.181227c0
pop ecx
jmp 0x181338a3
cmp dword [esp + 0x54], 0
jne 0x18133a45
mov edi, dword [esp + 0x20]
lea eax, [esp + 0x94]
push 0
push dword [esp + 0x1c]
mov edx, ebx
mov ecx, esi
push eax
push edi
push dword [ebp + 0x10]
push dword [esp + 0x98]
push dword [esp + 0x54]
push dword [esp + 0x7c]
push dword [esp + 0xb8]
push dword [esp + 0x40]
push dword [esp + 0xb0]
call fcn.18123aa5
add esp, 0x2c
cmp dword [esp + 0x94], 0
jne 0x181338fa
cmp byte [esp + 0x84], 0
je 0x18133940
cmp dword [esp + 0x34], 0
je 0x18133924
push dword [esp + 0xa4]
push dword [esp + 0x5c]
push edi
push dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov ecx, edi
push 0x1d
pop edx
call fcn.180ff900
add esp, 0x10
jmp 0x18133944
push dword [esp + 0x3c]
push edi
push dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ecx, edi
push 0x20
pop edx
call fcn.180ff616
add esp, 0xc
jmp 0x18133944
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 0
je 0x18133965
push dword [esp + 0x68]
mov edx, ebx
mov ecx, esi
push dword [esp + 0x1c]
push 0
push dword [esp + 0x48]
call fcn.181218f7
add esp, 0x10
push 0xffffffffffffffff
push dword [esp + 0x8c]
mov edx, ebx
mov ecx, esi
push dword [esp + 0xa0]
push dword [esp + 0x28]
call fcn.1811eb8a
add esp, 0x10
cmp dword [esp + 0xb0], 0
je 0x181339a6
push 0
push 0
push dword [esp + 0x24]
mov edx, 0x88
mov ecx, edi
call fcn.180ff616
add esp, 0xc
cmp dword [esp + 0x24], 1
jg 0x181339b7
cmp byte [esp + 0x84], 0
je 0x181339cc
push 0
push 0
push dword [esp + 0x24]
mov ecx, edi
push 0x7b
pop edx
call fcn.180ff616
add esp, 0xc
mov edi, dword [esp + 0x24]
test edi, edi
je 0x181339ee
push dword [esp + 0x68]
mov edx, ebx
mov ecx, esi
push dword [esp + 0x1c]
push dword [esp + 0x68]
push 0
call fcn.181218f7
add esp, 0x10
xor eax, eax
mov edx, ebx
cmp dword [esp + 0x44], 2
mov ecx, esi
push 0
sete al
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0x94]
push dword [esp + 0x70]
push dword [esp + 0xac]
push dword [esp + 0x34]
call fcn.181249d0
add esp, 0x1c
test edi, edi
je 0x18133a45
push dword [esp + 0x68]
mov edx, ebx
mov ecx, esi
push dword [esp + 0x1c]
push dword [esp + 0x44]
push dword [ebp + 8]
call fcn.18122434
add esp, 0x10
mov eax, dword [esp + 0xbc]
mov edi, dword [esp + 0x14]
test eax, eax
je 0x18133a66
push 0
push 1
push eax
push 0x52
pop edx
mov ecx, edi
call fcn.180ff616
add esp, 0xc
mov eax, dword [esp + 0x48]
test eax, eax
je 0x18133ab7
mov edi, dword [esp + 0x20]
cmp byte [eax + 8], 0x7f
jne 0x18133aa8
cmp byte [eax + 9], 2
jne 0x18133aa8
mov edx, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
call fcn.18131b42
test eax, eax
je 0x18133aa4
mov edx, dword [esp + 0x48]
mov ecx, esi
push edi
push dword [ebp + 0x10]
push dword [esp + 0x44]
push ebx
call fcn.18132120
add esp, 0x10
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x48], eax
test eax, eax
jne 0x18133a72
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
cmp eax, 1
je 0x18133afd
mov edx, dword [esp + 0x20]
mov ecx, edi
cmp eax, 2
jne 0x18133ade
call fcn.180ff99a
mov ecx, dword [esp + 0xa8]
call fcn.1813ee22
jmp 0x18133afd
call fcn.180ff99a
push 0
push dword [esp + 0xbc]
mov ecx, edi
push dword [esp + 0x48]
push 5
pop edx
call fcn.180ff616
add esp, 0xc
mov edx, dword [esp + 0x4c]
mov ecx, edi
call fcn.180ff99a
cmp byte [esi + 0x12], 0
jne 0x18133b27
cmp dword [esi + 0x78], 0
jne 0x18133b27
cmp dword [ebp + 0x1c], 0
jne 0x18133b27
cmp dword [esi + 0x70], 0
je 0x18133b27
mov ecx, esi
call fcn.18122aab
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x181329ec
push 0
push 1
push eax
push 0x50
pop edx
mov ecx, edi
call fcn.180ff616
add esp, 0xc
xor edx, edx
inc edx
mov ecx, edi
call fcn.18100b39
push 0
push str.rows_updated
push 0
xor edx, edx
mov ecx, edi
call fcn.18100ba4
jmp 0x181329e9
mov edx, dword [esp + 0x18]
mov edi, dword [ebp + 8]
jmp 0x181329f7