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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
push ebx
push esi
push edi
mov ebx, edx
mov dword [esp + 0x68], ebx
mov edi, ecx
mov dword [esp + 0x8c], edi
xor eax, eax
push 8
push eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], eax
lea eax, [esp + 0xc0]
push eax
call fcn.181620e0
mov esi, dword [edi]
add esp, 0xc
cmp dword [edi + 0x24], 0
mov dword [esp + 0x28], esi
jne 0x18125528
cmp byte [esi + 0x49], 0
jne 0x18125528
mov edx, ebx
mov ecx, edi
call fcn.1811220d
mov esi, eax
mov dword [esp + 0x34], esi
test esi, esi
je 0x18125531
mov edx, dword [esi + 0x48]
mov ecx, dword [edi]
call fcn.1811c668
mov ebx, dword [ebp + 8]
mov edx, esi
mov dword [esp + 0xb0], eax
mov ecx, edi
lea eax, [esp + 0x6c]
push eax
push ebx
push 0x6e
call fcn.18123d9c
add esp, 0xc
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0xc]
mov edx, esi
mov ecx, edi
mov dword [esp + 0x7c], eax
call fcn.1810f480
test eax, eax
jne 0x181248a2
push dword [esp + 0x6c]
mov edx, esi
mov ecx, edi
call fcn.18112249
pop ecx
test eax, eax
jne 0x181248a2
mov eax, dword [esp + 0x68]
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x60], ecx
mov dword [eax + 0x38], ecx
mov edx, dword [edi + 0x28]
lea eax, [ecx + 1]
inc edx
mov dword [esp + 0x98], eax
mov dword [edi + 0x28], edx
test byte [esi + 0x24], 0x20
jne 0x181245e9
and dword [esp + 0x30], 0
jmp 0x181245f4
mov ecx, esi
call fcn.1810dd7a
mov dword [esp + 0x30], eax
mov ecx, dword [esi + 8]
xor ebx, ebx
mov dword [esp + 0x88], ebx
test ecx, ecx
je 0x18124646
mov esi, ebx
mov eax, dword [ecx + 0x38]
mov ebx, edx
and al, 3
cmp al, 2
jne 0x18124626
cmp dword [esp + 0x30], 0
je 0x18124626
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [eax + 0x38], edx
mov ebx, dword [edi + 0x28]
lea edx, [ebx + 1]
inc esi
mov dword [edi + 0x28], edx
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x18124606
mov dword [esp + 0x88], esi
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x88]
movsx eax, word [esi + 0x2a]
mov ecx, dword [esp + 0x28]
add eax, ebx
push 0
lea eax, [eax*4 + 2]
add eax, ebx
push eax
call fcn.180dfde7
mov edx, eax
mov dword [esp + 0x1c], edx
pop ecx
pop ecx
test edx, edx
je 0x18125535
movsx eax, word [esi + 0x2a]
lea eax, [edx + eax*4]
lea ecx, [eax + ebx*4]
mov dword [esp + 0x94], eax
lea eax, [ebx + 1]
mov dword [esp + 0x20], ecx
push eax
push 1
push ecx
call fcn.181620e0
mov eax, dword [esp + 0x2c]
add esp, 0xc
xor ecx, ecx
mov byte [eax + ebx + 1], 0
xor eax, eax
cmp ax, word [esi + 0x2a]
jge 0x181246c0
mov edi, dword [esp + 0x14]
or dword [edi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [esi + 0x2a]
cmp ecx, eax
jl 0x181246ac
mov edi, dword [esp + 0x8c]
push 0x20
lea eax, [esp + 0xc4]
push 0
push eax
call fcn.181620e0
mov ebx, dword [ebp + 8]
add esp, 0xc
mov eax, dword [esp + 0x68]
and dword [esp + 0x18], 0
mov dword [esp + 0xc4], eax
xor al, al
cmp dword [ebx], 0
mov dword [esp + 0xc0], edi
mov byte [esp + 0x27], 0
mov byte [esp + 0x13], al
jle 0x1812486c
lea eax, [ebx + 4]
mov dword [esp + 0x38], eax
mov edx, dword [eax]
lea ecx, [esp + 0xc0]
call fcn.18105a3b
test eax, eax
jne 0x18125531
movsx eax, word [esi + 0x2a]
xor ebx, ebx
test eax, eax
jle 0x181247a0
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x4c], eax
mov edx, ecx
mov ecx, dword [eax]
call fcn.180e206d
test eax, eax
je 0x18124762
mov eax, dword [esp + 0x4c]
inc ebx
movsx ecx, word [esi + 0x2a]
add eax, 0x10
cmp ebx, ecx
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x70]
jl 0x1812473b
jmp 0x181247a0
movsx eax, word [esi + 0x28]
cmp ebx, eax
jne 0x1812477b
mov eax, dword [esp + 0x38]
mov byte [esp + 0x13], 1
mov eax, dword [eax]
mov dword [esp + 0x58], eax
jmp 0x18124795
cmp dword [esp + 0x30], 0
je 0x18124795
mov ecx, dword [esi + 4]
mov eax, ebx
add eax, eax
test byte [ecx + eax*8 + 0xf], 1
je 0x18124795
mov byte [esp + 0x27], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [ecx + ebx*4], eax
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x58]
mov byte [esp + 0x13], al
movsx eax, word [esi + 0x2a]
mov dword [esp + 0x58], ecx
cmp ebx, eax
jl 0x181247eb
cmp dword [esp + 0x30], 0
jne 0x18124884
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 4]
call fcn.1810764c
test eax, eax
je 0x18124884
mov eax, dword [esp + 0x38]
or ebx, 0xffffffff
mov byte [esp + 0x13], 1
mov eax, dword [eax]
mov dword [esp + 0x58], eax
jmp 0x181247ef
test ebx, ebx
jns 0x181247f6
mov edx, str.ROWID
jmp 0x18124810
mov eax, dword [esi + 4]
mov ecx, ebx
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov al, byte [esp + 0x13]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xb0]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov ecx, edi
push edx
push dword [esi]
push 0x17
pop edx
call fcn.1810d188
add esp, 0xc
cmp eax, 1
je 0x18125531
cmp eax, 2
jne 0x18124849
mov eax, dword [esp + 0x14]
or dword [eax + ebx*4], 0xffffffff
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebp + 8]
inc ebx
mov eax, dword [esp + 0x38]
add eax, 0x18
mov dword [esp + 0x18], ebx
mov dword [esp + 0x38], eax
cmp ebx, dword [ecx]
jl 0x18124709
mov al, byte [esp + 0x13]
mov dl, byte [esp + 0x27]
add dl, al
cmp dword [esi + 0x38], 0
mov byte [esp + 0x38], dl
je 0x181248ab
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x181248af
imul eax, dword [esp + 0x18], 0x18
mov ebx, dword [ebp + 8]
push dword [eax + ebx + 8]
push str.no_such_column:__s
push edi
call fcn.180e1fb6
add esp, 0xc
mov byte [edi + 0x11], 1
mov edx, dword [esp + 0x14]
jmp 0x18125538
xor eax, eax
xor ecx, ecx
mov ebx, dword [esp + 0x68]
mov dword [ebx + 0x48], eax
movzx eax, dl
mov edx, esi
push eax
push dword [esp + 0x18]
mov dword [ebx + 0x4c], ecx
mov ecx, edi
mov dword [esp + 0xa8], eax
call fcn.18115e66
pop ecx
pop ecx
mov ecx, dword [esi + 8]
mov ebx, eax
mov dword [esp + 0x44], ebx
test ecx, ecx
je 0x181249b8
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x94]
inc edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x18], edx
cmp byte [esp + 0x38], 0
jne 0x18124afd
cmp ebx, 1
jg 0x18124afd
cmp dword [ecx + 0x24], 0
jne 0x18124afd
cmp ecx, dword [esp + 0x30]
je 0x18124afd
movzx eax, word [ecx + 0x32]
xor ebx, ebx
and dword [esp + 0x4c], ebx
mov dword [esp + 0x54], eax
test eax, eax
je 0x18124994
mov edx, dword [ecx + 4]
movzx eax, word [edx]
test ax, ax
js 0x18124963
mov esi, dword [esp + 0x14]
cwde
cmp dword [esi + eax*4], ebx
mov esi, dword [esp + 0x34]
jge 0x18124963
mov eax, dword [esp + 0x4c]
add edx, 2
inc eax
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x54]
jl 0x18124935
mov edx, dword [esp + 0x18]
jmp 0x18124994
inc dword [edi + 0x2c]
movzx eax, word [ecx + 0x34]
mov ebx, dword [edi + 0x2c]
add eax, ebx
cmp dword [ebp + 0x10], 5
mov dword [edi + 0x2c], eax
je 0x18124984
cmp dword [ebp + 0x10], 0xa
jne 0x1812498c
cmp byte [ecx + 0x36], 5
jne 0x1812498c
mov dword [esp + 0x78], 1
mov edx, dword [esp + 0x18]
test ebx, ebx
jne 0x18124997
mov byte [edx], 0
mov eax, dword [esp + 0x70]
inc edx
mov dword [esp + 0x18], edx
mov dword [eax], ebx
add eax, 4
mov ecx, dword [ecx + 0x14]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x70], eax
test ecx, ecx
jne 0x181248f8
cmp dword [esp + 0x78], 0
je 0x181249d6
mov eax, dword [esp + 0x88]
inc eax
push eax
push 1
push dword [esp + 0x28]
call fcn.181620e0
add esp, 0xc
mov ecx, edi
call fcn.1811e998
mov ebx, eax
mov dword [esp + 0x70], ebx
test ebx, ebx
je 0x18125531
cmp byte [edi + 0x12], 0
jne 0x181249f8
or dword [ebx + 0x94], 0x10
push dword [esp + 0xb0]
xor edx, edx
mov ecx, edi
inc edx
call fcn.181115f9
cmp dword [esi + 0x38], 0
pop ecx
jne 0x18124a7f
mov eax, dword [edi + 0x2c]
mov edx, dword [esp + 0x3c]
inc eax
cmp byte [esp + 0x27], 0
mov dword [esp + 0x50], eax
lea ecx, [eax + 1]
mov dword [esp + 0x48], ecx
mov dword [edi + 0x2c], ecx
mov dword [esp + 0x2c], ecx
jne 0x18124a3d
test edx, edx
jne 0x18124a3d
mov eax, dword [esp + 0x44]
test eax, eax
je 0x18124a54
lea eax, [ecx + 1]
mov dword [esp + 0x9c], eax
movsx eax, word [esi + 0x2a]
add ecx, eax
mov eax, dword [esp + 0x44]
mov dword [edi + 0x2c], ecx
cmp byte [esp + 0x38], 0
jne 0x18124a63
test edx, edx
jne 0x18124a63
test eax, eax
je 0x18124a6f
lea eax, [ecx + 1]
mov dword [esp + 0x48], eax
mov ecx, eax
mov dword [edi + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x64], eax
movsx eax, word [esi + 0x2a]
add eax, ecx
mov dword [edi + 0x2c], eax
cmp dword [esp + 0x7c], 0
je 0x18124ab9
push dword [esp + 0x1c]
mov ecx, dword [esi]
mov edx, esi
mov eax, dword [edi + 0x1b8]
push 0
push 0
push dword [ebp + 0xc]
mov dword [edi + 0x1b8], ecx
mov ecx, edi
mov dword [esp + 0xcc], edi
mov dword [esp + 0xc8], eax
call fcn.181122aa
add esp, 0x10
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0xc0]
call fcn.18105a3b
test eax, eax
jne 0x18125531
xor ecx, ecx
cmp dword [esi + 0x38], ecx
je 0x18124b11
push dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov ecx, edi
push dword [ebp + 0xc]
mov edx, dword [esp + 0x70]
push dword [esp + 0x1c]
push dword [esp + 0x64]
push ebx
push esi
call fcn.18125596
add esp, 0x18
jmp 0x181248a2
inc dword [edi + 0x2c]
movzx eax, word [ecx + 0x34]
mov ebx, dword [edi + 0x2c]
add eax, ebx
mov dword [edi + 0x2c], eax
jmp 0x18124990
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 0x80
je 0x18124b3f
cmp dword [edi + 0x7c], ecx
jne 0x18124b3f
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
push ecx
push eax
push ecx
push 0x43
pop edx
mov ecx, ebx
mov dword [esp + 0xb0], eax
call fcn.180f7767
add esp, 0xc
xor ecx, ecx
test byte [esi + 0x24], 0x20
jne 0x18124b5d
push dword [esp + 0x2c]
push dword [esp + 0x54]
push ecx
push 0x46
pop edx
mov ecx, ebx
call fcn.180f7767
add esp, 0xc
jmp 0x18124bce
mov eax, dword [esp + 0x30]
movzx edx, word [eax + 0x32]
mov eax, dword [edi + 0x2c]
movsx esi, dx
mov dword [esp + 0x84], edx
lea ecx, [eax + 1]
inc eax
add eax, esi
mov dword [esp + 0x80], ecx
mov dword [esp + 0x40], eax
mov dword [edi + 0x2c], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x74], eax
inc eax
mov dword [edi + 0x28], eax
lea eax, [esi - 1]
add eax, ecx
push eax
push ecx
push 0
push 0x46
pop edx
mov ecx, ebx
call fcn.180f7767
add esp, 0xc
mov ecx, ebx
push 0
push esi
push dword [esp + 0x7c]
push 0x6e
pop edx
call fcn.180f7767
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov ecx, edi
mov dword [esp + 0x5c], eax
call fcn.180f7e8d
mov esi, dword [esp + 0x34]
cmp byte [edi + 0x12], 0
mov eax, 0x1004
jne 0x18124bf8
cmp dword [esp + 0x3c], 0
jne 0x18124bf8
cmp dword [esp + 0x44], 0
jne 0x18124bf8
cmp byte [esp + 0x38], 0
jne 0x18124bf8
cmp dword [esp + 0x78], 0
jne 0x18124bf8
add eax, 8
push dword [esp + 0x98]
mov edx, dword [esp + 0x6c]
mov ecx, edi
push eax
push 0
push 0
push dword [ebp + 0xc]
call fcn.1812ef3e
add esp, 0x14
mov dword [esp + 0x4c], eax
test eax, eax
je 0x18125531
add eax, 0x18
push 8
push eax
lea eax, [esp + 0xb0]
push eax
call fcn.18161b60
mov eax, dword [esp + 0x58]
add esp, 0xc
mov edx, dword [esp + 0x1c]
movzx eax, byte [eax + 0x31]
mov dword [esp + 0x34], eax
cmp eax, 2
jne 0x18124c6e
mov eax, dword [esp + 0xac]
test eax, eax
js 0x18124c6e
cmp eax, edx
je 0x18124c6e
sub eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x20]
cmp byte [eax + ecx], 0
je 0x18124c6e
and dword [esp + 0x34], 0
test byte [esi + 0x24], 0x20
jne 0x18124cb1
push 0
push dword [esp + 0x30]
mov ecx, ebx
push edx
push 0x7d
pop edx
call fcn.180f7767
mov eax, dword [esp + 0x40]
add esp, 0xc
test eax, eax
jne 0x18124d3d
push eax
push dword [esp + 0x30]
mov edx, 0x91
mov ecx, ebx
push dword [esp + 0x58]
call fcn.180f7767
add esp, 0xc
jmp 0x18124d39
mov eax, dword [esp + 0x84]
xor ecx, ecx
cwde
mov dword [esp + 0x18], eax
mov dword [esp + 0x84], ecx
test eax, eax
jle 0x18124d11
mov edi, eax
mov eax, dword [esp + 0x80]
add eax, ecx
push eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
movsx eax, word [eax + ecx*2]
mov ecx, ebx
push eax
push edx
mov edx, esi
call fcn.181089c1
mov ecx, dword [esp + 0x90]
add esp, 0xc
mov edx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x84], ecx
cmp ecx, edi
jl 0x18124ccc
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x34], 0
je 0x18124d44
mov edx, dword [esp + 0x5c]
mov ecx, ebx
call fcn.180f7d39
mov eax, dword [esp + 0x18]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x34]
cmp eax, 2
je 0x18124d9f
jmp 0x18124d96
mov edx, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [esp + 0x30]
call fcn.1811665b
pop ecx
push eax
push dword [esp + 0x48]
mov ecx, ebx
push dword [esp + 0x24]
push dword [esp + 0x90]
push 0x65
pop edx
call fcn.180f7892
add esp, 0x14
mov edx, 0x81
mov ecx, ebx
push dword [esp + 0x18]
push dword [esp + 0x84]
push dword [esp + 0x48]
push dword [esp + 0x80]
call fcn.180f794f
add esp, 0x10
mov ecx, dword [esp + 0x4c]
call fcn.1812f8ec
mov ecx, ebx
call fcn.180f79a6
mov edx, dword [esp + 0x7c]
mov ecx, eax
mov dword [esp + 0x18], ecx
test edx, edx
jne 0x18124e67
mov edx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x5c], eax
test edx, edx
je 0x18124e2a
mov eax, dword [esp + 0xa8]
test eax, eax
js 0x18124ddd
sub eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x20]
mov byte [eax + ecx], 0
mov ecx, dword [esp + 0xac]
test ecx, ecx
js 0x18124dfb
sub ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov byte [ecx + eax], 0
mov ecx, dword [esp + 0xac]
cmp edx, 2
jne 0x18124e2a
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x88]
setns al
sub ecx, eax
test ecx, ecx
jle 0x18124e2a
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 0x14
pop edx
call fcn.180f7767
add esp, 0xc
mov dword [esp + 0x5c], eax
xor eax, eax
mov edx, esi
push eax
push eax
push dword [esp + 0x28]
mov ecx, edi
push dword [esp + 0x6c]
push eax
push 0x6b
call fcn.1811840a
mov eax, dword [esp + 0x74]
add esp, 0x18
test eax, eax
je 0x18124e5f
mov edx, eax
mov ecx, ebx
call fcn.180f7ea8
mov ecx, dword [ebx + 0x88]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x18124edf
test edx, edx
jne 0x18124ea7
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0xa8], edx
je 0x18124ea7
cmp dword [esp + 0xac], edx
je 0x18124ea7
push dword [esp + 0x90]
push dword [esp + 0x44]
push ecx
push edx
push 0x1d
pop edx
mov ecx, ebx
call fcn.180f794f
mov eax, dword [esp + 0x44]
add esp, 0x10
cmp eax, 1
jne 0x18124eb6
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
jmp 0x18124ec5
mov ecx, ebx
call fcn.180f79a6
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x30], 0
mov eax, dword [esp + 0x40]
jne 0x18124ed4
mov eax, dword [esp + 0x2c]
push 0
push ecx
push eax
push 0x32
jmp 0x18124f68
cmp dword [esp + 0x30], 0
je 0x18124f43
mov ecx, ebx
call fcn.180f79a6
push 0
push dword [esp + 0x1c]
mov ecx, ebx
mov dword [esp + 0x28], eax
push dword [esp + 0x7c]
push 0x25
pop edx
call fcn.180f7767
add esp, 0xc
mov ecx, ebx
push 0
push dword [esp + 0x44]
push dword [esp + 0x7c]
push 0x7c
pop edx
call fcn.180f7767
add esp, 0xc
mov dword [esp + 0xb4], eax
mov ecx, ebx
push 0
push dword [esp + 0x44]
push dword [esp + 0x28]
push dword [esp + 0x28]
push 0x1d
pop edx
call fcn.180f794f
add esp, 0x10
jmp 0x18124f73
push dword [esp + 0x2c]
push ecx
push dword [esp + 0x58]
mov ecx, ebx
push 0x2a
pop edx
call fcn.180f7767
add esp, 0xc
mov dword [esp + 0x20], eax
push dword [esp + 0x2c]
push eax
push dword [esp + 0x24]
push 0x20
pop edx
mov ecx, ebx
call fcn.180f7767
add esp, 0xc
cmp byte [esp + 0x13], 0
je 0x18124f9f
push dword [esp + 0x48]
mov edx, dword [esp + 0x5c]
mov ecx, edi
call fcn.18109acc
pop ecx
push 0
push 0
push dword [esp + 0x50]
mov ecx, ebx
push 0x11
pop edx
call fcn.180f7767
add esp, 0xc
cmp byte [esp + 0x27], 0
mov eax, dword [esp + 0x44]
jne 0x18124fb8
test eax, eax
jne 0x18124fbc
cmp dword [esp + 0x3c], eax
je 0x181250a7
test eax, eax
je 0x18124fc7
mov edx, esi
mov ecx, edi
call fcn.18115d99
jmp 0x18124fc9
xor eax, eax
push dword [ebp + 0x10]
mov edx, dword [esp + 0x40]
mov ecx, edi
push esi
push 3
push 0
push dword [ebp + 8]
mov dword [esp + 0x64], eax
call fcn.181243c8
mov edx, dword [esp + 0x64]
add esp, 0x14
and dword [esp + 0x54], 0
or edx, eax
xor eax, eax
mov dword [esp + 0x50], edx
cmp ax, word [esi + 0x2a]
jge 0x18125082
mov edi, dword [esp + 0x54]
xor ecx, ecx
mov dword [esp + 0x60], ecx
cmp edx, 0xffffffff
je 0x18125048
cmp edi, 0x20
jge 0x18125024
xor eax, eax
mov ecx, edi
inc eax
shl eax, cl
test edx, eax
jne 0x18125048
mov ecx, dword [esp + 0x60]
mov eax, dword [esi + 4]
test byte [eax + ecx + 0xf], 1
jne 0x18125048
mov eax, dword [esp + 0x9c]
mov ecx, ebx
push 0
add eax, edi
push eax
push 0
push 0x46
pop edx
call fcn.180f7767
jmp 0x18125060
mov eax, dword [esp + 0x9c]
mov edx, esi
add eax, edi
mov ecx, ebx
push eax
push edi
push dword [esp + 0x24]
call fcn.181089c1
mov ecx, dword [esp + 0x6c]
add esp, 0xc
movsx eax, word [esi + 0x2a]
inc edi
mov edx, dword [esp + 0x50]
add ecx, 0x10
mov dword [esp + 0x60], ecx
cmp edi, eax
jl 0x1812500b
mov edi, dword [esp + 0x8c]
cmp byte [esp + 0x13], 0
jne 0x181250a7
cmp dword [esp + 0x30], 0
jne 0x181250a7
push 0
push dword [esp + 0x4c]
mov ecx, ebx
push dword [esp + 0x34]
push 0x4b
pop edx
call fcn.180f7767
add esp, 0xc
push dword [ebp + 0x10]
mov edx, dword [esp + 0x40]
mov ecx, edi
push esi
push 1
push 1
push dword [ebp + 8]
call fcn.181243c8
mov dword [esp + 0x68], eax
add esp, 0x14
xor eax, eax
xor ecx, ecx
cmp ax, word [esi + 0x2a]
jmp 0x18125153
movsx eax, word [esi + 0x28]
cmp ecx, eax
jne 0x181250f0
mov eax, dword [esp + 0x64]
push 0
add eax, ecx
mov ecx, ebx
push eax
push 0
push 0x46
pop edx
call fcn.180f7767
jmp 0x18125145
mov eax, dword [esp + 0x14]
mov edx, dword [eax + ecx*4]
test edx, edx
js 0x18125116
mov eax, dword [esp + 0x64]
add eax, ecx
imul edx, edx, 0x18
push eax
mov eax, dword [ebp + 8]
mov ecx, edi
mov edx, dword [edx + eax + 4]
call fcn.18109acc
pop ecx
jmp 0x18125148
test dword [esp + 0x6c], 1
je 0x18125130
cmp ecx, 0x1f
jg 0x18125130
xor eax, eax
inc eax
shl eax, cl
test dword [esp + 0x54], eax
je 0x181250d9
mov eax, dword [esp + 0x64]
mov edx, esi
add eax, ecx
push eax
push dword [esp + 0x20]
push ecx
mov ecx, edi
call fcn.18108b10
add esp, 0xc
mov ecx, dword [esp + 0x5c]
movsx eax, word [esi + 0x2a]
inc ecx
cmp ecx, eax
mov dword [esp + 0x5c], ecx
jl 0x181250d1
test byte [esp + 0x6c], 1
je 0x18125249
push dword [esp + 0x64]
mov edx, esi
mov ecx, ebx
call fcn.1811670e
mov eax, dword [esp + 0x40]
pop ecx
test eax, eax
je 0x181251be
mov ebx, eax
cmp byte [ebx + 8], 0x6e
jne 0x181251b3
cmp byte [ebx + 9], 1
jne 0x181251b3
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 0x10]
call fcn.18123d59
test eax, eax
je 0x181251b3
push dword [esp + 0x20]
mov edx, ebx
mov ecx, edi
push dword [ebp + 0x10]
push dword [esp + 0x34]
push esi
call fcn.18124304
add esp, 0x10
mov ebx, dword [ebx + 0x20]
test ebx, ebx
jne 0x18125180
mov ebx, dword [esp + 0x70]
cmp dword [esp + 0x30], 0
mov ecx, ebx
je 0x181251e7
push dword [esp + 0x90]
push dword [esp + 0x44]
push dword [esp + 0x28]
push dword [esp + 0x28]
push 0x1d
pop edx
call fcn.180f794f
add esp, 0x10
jmp 0x181251fe
push dword [esp + 0x2c]
push dword [esp + 0x24]
push dword [esp + 0x24]
push 0x20
pop edx
call fcn.180f7767
add esp, 0xc
and dword [esp + 0x54], 0
xor eax, eax
cmp ax, word [esi + 0x2a]
jge 0x18125249
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4], 0
jge 0x18125239
movsx eax, word [esi + 0x28]
cmp edi, eax
je 0x18125239
mov eax, dword [esp + 0x64]
mov edx, esi
add eax, edi
mov ecx, ebx
push eax
push edi
push dword [esp + 0x24]
call fcn.181089c1
add esp, 0xc
movsx eax, word [esi + 0x2a]
inc edi
cmp edi, eax
jl 0x1812520f
mov edi, dword [esp + 0x8c]
cmp dword [esp + 0x7c], 0
jne 0x181253ed
push dword [esp + 0x14]
and dword [esp + 0x70], 0
lea eax, [esp + 0x7c]
push eax
push dword [esp + 0x28]
mov edx, esi
mov ecx, edi
push dword [ebp + 0x10]
push dword [esp + 0x48]
push dword [esp + 0x40]
push dword [esp + 0x60]
push dword [esp + 0xb4]
push dword [esp + 0x3c]
push dword [esp + 0xb8]
call fcn.18117949
add esp, 0x28
cmp dword [esp + 0x44], 0
je 0x181252b7
push dword [esp + 0xa0]
mov edx, esi
mov ecx, edi
push dword [esp + 0x18]
push 0
push dword [esp + 0x38]
call fcn.18115990
add esp, 0x10
cmp dword [esp + 0x78], 0
jne 0x181252c5
cmp byte [esp + 0x38], 0
je 0x18125305
cmp dword [esp + 0x30], 0
mov ecx, ebx
je 0x181252ec
push dword [esp + 0x90]
push dword [esp + 0x44]
push 0
push dword [esp + 0x28]
push 0x1d
pop edx
call fcn.180f794f
add esp, 0x10
jmp 0x18125301
push dword [esp + 0x2c]
push 0
push dword [esp + 0x24]
push 0x20
pop edx
call fcn.180f7767
add esp, 0xc
mov dword [esp + 0x6c], eax
push 0xffffffffffffffff
push dword [esp + 0x98]
mov edx, esi
mov ecx, edi
push dword [esp + 0xa0]
push dword [esp + 0x28]
call fcn.18112e61
add esp, 0x10
cmp dword [esp + 0x44], 1
jg 0x18125334
mov al, byte [esp + 0x38]
test al, al
je 0x1812534d
push 0
push 0
push dword [esp + 0x24]
mov ecx, ebx
push 0x78
pop edx
call fcn.180f7767
mov al, byte [esp + 0x44]
add esp, 0xc
cmp dword [esp + 0x78], 0
jne 0x18125358
test al, al
je 0x1812536c
mov edx, dword [esp + 0x6c]
mov ecx, ebx
call fcn.180f7ea8
mov ecx, dword [ebx + 0x88]
mov dword [eax + 8], ecx
cmp dword [esp + 0x44], 0
je 0x18125390
push dword [esp + 0xa0]
mov edx, esi
mov ecx, edi
push dword [esp + 0x18]
push dword [esp + 0x50]
push 0
call fcn.18115990
add esp, 0x10
xor eax, eax
mov edx, esi
cmp dword [esp + 0x34], 2
mov ecx, edi
push 0
sete al
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0xa0]
push dword [esp + 0x58]
push dword [esp + 0xac]
push dword [esp + 0x34]
call fcn.18118276
add esp, 0x1c
cmp dword [esp + 0x44], 0
je 0x181253ed
push dword [esp + 0xa0]
mov edx, esi
mov ecx, edi
push dword [esp + 0x18]
push dword [esp + 0x34]
push dword [ebp + 8]
call fcn.181164e2
add esp, 0x10
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 0x80
je 0x18125415
cmp dword [edi + 0x7c], 0
jne 0x18125415
push 0
push 1
push dword [esp + 0xac]
mov ecx, ebx
push 0x50
pop edx
call fcn.180f7767
add esp, 0xc
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x18125466
mov ebx, dword [esp + 0x20]
cmp byte [eax + 8], 0x6e
jne 0x18125457
cmp byte [eax + 9], 2
jne 0x18125457
mov edx, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
call fcn.18123d59
test eax, eax
je 0x18125453
mov edx, dword [esp + 0x3c]
mov ecx, edi
push ebx
push dword [ebp + 0x10]
push dword [esp + 0x34]
push esi
call fcn.18124304
add esp, 0x10
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x18125421
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x34]
cmp eax, 1
je 0x181254b7
mov edx, dword [esp + 0x20]
mov ecx, ebx
cmp eax, 2
jne 0x1812548a
call fcn.180f79e8
mov ecx, dword [esp + 0x4c]
call fcn.1812f8ec
jmp 0x181254b7
cmp dword [esp + 0x30], 0
je 0x181254b2
call fcn.180f79e8
push 0
push dword [esp + 0xb8]
mov ecx, ebx
push dword [esp + 0x7c]
push 7
pop edx
call fcn.180f7767
add esp, 0xc
jmp 0x181254b7
call fcn.180f77c9
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.180f79e8
cmp byte [edi + 0x12], 0
jne 0x181254db
cmp dword [edi + 0x7c], 0
jne 0x181254db
cmp dword [edi + 0x74], 0
je 0x181254db
mov ecx, edi
call fcn.18116967
mov esi, dword [esp + 0x28]
test byte [esi + 0x1c], 0x80
je 0x18125528
cmp dword [edi + 0x7c], 0
jne 0x18125528
cmp byte [edi + 0x12], 0
jne 0x18125528
push 0
push 1
push dword [esp + 0xac]
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_updated
push 0
xor edx, edx
mov ecx, ebx
call fcn.180f8ac1
add esp, 0xc
mov edx, dword [esp + 0x14]
mov ebx, dword [ebp + 8]
jmp 0x1812553c
mov edx, dword [esp + 0x14]
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x1812555c
mov eax, dword [esp + 0xb8]
mov dword [ecx + 0x1b8], eax
and dword [esp + 0xbc], 0
test edx, edx
je 0x18125567
mov ecx, esi
call fcn.180dfba4
mov edx, dword [esp + 0x68]
mov ecx, esi
call fcn.18111206
test ebx, ebx
je 0x1812557f
mov edx, ebx
mov ecx, esi
call fcn.18107343
cmp dword [ebp + 0xc], 0
je 0x1812558f
mov edx, dword [ebp + 0xc]
mov ecx, esi
call fcn.181068fb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret