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

Disassembly:
sub esp, 0xd4
push ebx
push ebp
push esi
mov esi, ecx
xor ecx, ecx
push edi
mov edi, edx
mov dword [esp + 0x84], esi
mov dword [esp + 0x38], edi
mov ebp, dword [esi]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x7c], ebp
cmp dword [esi + 0x24], ecx
jne 0x1006a7db
cmp byte [ebp + 0x51], cl
jne 0x1006a7db
mov ecx, esi
call fcn.10056a1f
mov ebx, eax
mov dword [esp + 0x40], ebx
test ebx, ebx
je 0x1006a7db
mov edx, dword [ebx + 0x48]
mov ecx, dword [esi]
call fcn.10061082
mov ecx, dword [esp + 0xe8]
mov edx, ebx
mov dword [esp + 0x54], eax
lea eax, [esp + 0xa4]
push eax
push ecx
push 0x7a
mov ecx, esi
call fcn.10068f66
add esp, 0xc
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0xc]
mov edx, ebx
mov ecx, esi
mov dword [esp + 0x88], eax
call fcn.10053b41
test eax, eax
jne 0x1006a7db
push dword [esp + 0xa4]
mov edx, ebx
mov ecx, esi
call fcn.10056a5b
pop ecx
test eax, eax
jne 0x1006a7db
mov edx, dword [esi + 0x28]
mov edi, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x90], edi
lea ecx, [edx + 1]
mov dword [esi + 0x28], ecx
test byte [ebx + 0x24], 0x20
mov dword [esp + 0x80], ecx
jne 0x10069788
and dword [esp + 0x24], eax
jmp 0x1006979a
mov ecx, ebx
call fcn.1005224b
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 8]
xor ebp, ebp
mov dword [esp + 0xa0], ebp
test eax, eax
je 0x100697c9
cmp dword [esp + 0x24], eax
jne 0x100697b2
mov edx, ecx
inc ecx
inc ebp
mov dword [esi + 0x28], ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x100697aa
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x100697e8
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x18], edx
mov dword [esp + 0x80], eax
mov dword [esi + 0x28], edi
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x7c]
push 0
mov dword [edi + 0x34], edx
movsx eax, word [ebx + 0x2a]
add eax, ebp
lea eax, [eax*4 + 6]
add eax, ebp
push eax
call fcn.10023fa8
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x1006a7d7
movsx eax, word [ebx + 0x2a]
lea eax, [ecx + eax*4]
lea edi, [eax + 4]
mov dword [esp + 0x68], eax
lea eax, [ebp + 1]
push eax
lea edi, [edi + ebp*4]
push 1
push edi
mov dword [esp + 0x84], edi
call sub.VCRUNTIME140.dll_memset
xor edx, edx
xor eax, eax
add esp, 0xc
mov byte [edi + ebp + 1], dl
mov ecx, edx
cmp ax, word [ebx + 0x2a]
jge 0x10069869
mov esi, dword [esp + 0x28]
or dword [esi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [ebx + 0x2a]
cmp ecx, eax
jl 0x10069855
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0xfc]
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc8], eax
mov al, dl
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], edx
mov dword [esp + 0xdc], edx
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], edi
mov dword [esp + 0xd8], 0x200
mov byte [esp + 0x1f], dl
mov byte [esp + 0x17], al
mov dword [esp + 0x30], edx
cmp dword [ecx], edx
jle 0x10069a24
lea ebp, [ecx + 4]
mov dword [esp + 0x2c], ebp
mov edx, dword [ebp]
lea ecx, [esp + 0xc0]
call fcn.1004907e
test eax, eax
jne 0x10069a5e
movsx eax, word [ebx + 0x2a]
xor edi, edi
test eax, eax
jle 0x10069962
mov ecx, dword [ebp + 4]
mov ebp, dword [ebx + 4]
mov dword [esp + 0x20], ecx
mov edx, ecx
mov ecx, dword [ebp]
call fcn.100262c7
test eax, eax
je 0x10069923
movsx eax, word [ebx + 0x2a]
inc edi
mov ecx, dword [esp + 0x20]
add ebp, 0x10
cmp edi, eax
jl 0x100698ff
mov ebp, dword [esp + 0x2c]
jmp 0x10069962
movsx eax, word [ebx + 0x28]
mov ebp, dword [esp + 0x2c]
cmp edi, eax
jne 0x1006993d
mov eax, dword [ebp]
mov byte [esp + 0x17], 1
mov dword [esp + 0x58], eax
jmp 0x10069957
cmp dword [esp + 0x24], 0
je 0x10069957
mov ecx, dword [ebx + 4]
mov eax, edi
add eax, eax
test byte [ecx + eax*8 + 0xf], 1
je 0x10069957
mov byte [esp + 0x1f], 1
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov dword [ecx + edi*4], eax
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0x58]
mov byte [esp + 0x17], al
movsx eax, word [ebx + 0x2a]
mov dword [esp + 0x58], ecx
cmp edi, eax
jl 0x100699a6
cmp dword [esp + 0x24], 0
jne 0x10069a3c
mov ecx, dword [ebp + 4]
call fcn.1004aca0
test eax, eax
je 0x10069a3c
mov eax, dword [ebp]
or edi, 0xffffffff
mov byte [esp + 0x17], 1
mov dword [esp + 0x58], eax
jmp 0x100699aa
test edi, edi
jns 0x100699b1
mov edx, str.ROWID
jmp 0x100699cb
mov eax, dword [ebx + 4]
mov ecx, edi
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov al, byte [esp + 0x17]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x54]
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.100517b7
add esp, 0xc
cmp eax, 1
je 0x10069a5e
cmp eax, 2
jne 0x100699fd
mov eax, dword [esp + 0x28]
or dword [eax + edi*4], 0xffffffff
mov edi, dword [esp + 0x30]
add ebp, 0x18
mov eax, dword [esp + 0xe8]
inc edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebp
cmp edi, dword [eax]
jl 0x100698d4
mov al, byte [esp + 0x17]
mov edi, dword [esp + 0x38]
mov dl, byte [esp + 0x1f]
add dl, al
cmp dword [ebx + 0x38], 0
mov byte [esp + 0x2c], dl
je 0x10069a76
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x10069a7a
imul eax, dword [esp + 0x30], 0x18
mov ecx, dword [esp + 0xe8]
push dword [eax + ecx + 8]
push str.no_such_column:__s
push esi
call fcn.100261f3
add esp, 0xc
mov byte [esi + 0x11], 1
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x7c]
mov ecx, ebp
mov edx, dword [esp + 0x28]
call fcn.10023dc7
jmp 0x1006a7db
xor eax, eax
xor ecx, ecx
mov dword [edi + 0x40], eax
movzx eax, dl
mov edx, ebx
push eax
push dword [esp + 0x2c]
mov dword [edi + 0x44], ecx
mov ecx, esi
mov dword [esp + 0xb0], eax
call fcn.1005a72f
cmp dword [esp + 0xf8], 5
mov ebp, eax
pop ecx
pop ecx
mov dword [esp + 0x48], ebp
jne 0x10069ab2
mov dword [esp + 0x5c], 1
mov edi, dword [ebx + 8]
xor ecx, ecx
mov dword [esp + 0x74], ecx
test edi, edi
je 0x10069bfa
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x48]
inc eax
mov dword [esp + 0x4c], eax
cmp byte [esp + 0x2c], 0
jne 0x10069baf
cmp ebx, 1
jg 0x10069baf
cmp edi, dword [esp + 0x24]
je 0x10069baf
mov ecx, dword [edi + 0x24]
movzx eax, byte [esp + 0x17]
mov dword [esp + 0x70], eax
test ecx, ecx
je 0x10069b11
mov edx, dword [esp + 0x28]
push eax
call fcn.1005c135
pop ecx
test eax, eax
jne 0x10069baf
xor ecx, ecx
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x20], ecx
cmp ax, word [edi + 0x32]
jae 0x10069bc3
xor edx, edx
mov dword [esp + 0x30], edx
mov eax, dword [edi + 4]
movzx eax, word [eax + ecx*2]
test ax, ax
js 0x10069b4a
mov ebx, dword [esp + 0x28]
cwde
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0x48]
not eax
shr eax, 0x1f
jmp 0x10069b6b
mov ecx, dword [edi + 0x28]
mov eax, dword [esp + 0x30]
push dword [esp + 0x70]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + eax + 4]
call fcn.1005c135
mov edx, dword [esp + 0x34]
pop ecx
mov ecx, dword [esp + 0x20]
test eax, eax
jne 0x10069b85
movzx eax, word [edi + 0x32]
inc ecx
add edx, 0x18
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], edx
cmp ecx, eax
jl 0x10069b2b
jmp 0x10069bc3
mov ebp, dword [esi + 0x2c]
inc ebp
mov dword [esi + 0x2c], ebp
movzx eax, word [edi + 0x34]
add eax, ebp
cmp dword [esp + 0xf0], 0xb
mov dword [esi + 0x2c], eax
jne 0x10069bbf
cmp byte [edi + 0x36], 5
jne 0x10069bbf
mov dword [esp + 0x5c], 1
jmp 0x10069bbf
mov ebp, dword [esi + 0x2c]
inc ebp
mov dword [esi + 0x2c], ebp
movzx eax, word [edi + 0x34]
add eax, ebp
mov dword [esi + 0x2c], eax
test ebp, ebp
jne 0x10069bcc
mov eax, dword [esp + 0x4c]
mov byte [eax], 0
jmp 0x10069bd0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x68]
mov dword [edx + ecx*4], ebp
inc ecx
mov edi, dword [edi + 0x14]
inc eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x4c], eax
test edi, edi
jne 0x10069ad0
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x48]
jmp 0x10069bfe
mov edx, dword [esp + 0x68]
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esi + 0x2c], eax
mov dword [edx + ecx*4], eax
cmp dword [esp + 0x5c], 0
je 0x10069c29
mov eax, dword [esp + 0xa0]
inc eax
push eax
push 1
push dword [esp + 0x80]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, esi
call fcn.10063338
mov edi, eax
test edi, edi
je 0x10069a5e
cmp byte [esi + 0x12], 0
jne 0x10069c47
or dword [edi + 0x98], 0x20
cmp dword [esp + 0x50], 0
jne 0x10069c56
test ebp, ebp
jne 0x10069c56
xor edx, edx
jmp 0x10069c59
xor edx, edx
inc edx
push dword [esp + 0x54]
mov ecx, esi
call fcn.10055e59
cmp dword [ebx + 0x38], 0
pop ecx
jne 0x10069ce3
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
mov edx, dword [esi + 0x2c]
inc edx
cmp byte [esp + 0x1f], 0
mov dword [esp + 0x60], edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x94], eax
mov dword [esi + 0x2c], edx
mov dword [esp + 0x34], edx
jne 0x10069ca1
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x10069ca1
mov ecx, edx
test ebp, ebp
je 0x10069cb8
movsx ecx, word [ebx + 0x2a]
lea eax, [edx + 1]
add ecx, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x50]
mov dword [esi + 0x2c], ecx
cmp byte [esp + 0x2c], 0
jne 0x10069cc7
test eax, eax
jne 0x10069cc7
test ebp, ebp
je 0x10069cd3
lea eax, [ecx + 1]
mov dword [esp + 0x60], eax
mov ecx, eax
mov dword [esi + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x6c], eax
movsx eax, word [ebx + 0x2a]
add eax, ecx
mov dword [esi + 0x2c], eax
cmp dword [esp + 0x88], 0
je 0x10069d24
push dword [esp + 0x18]
mov eax, dword [esi + 0xe8]
mov edx, ebx
push 0
push 0
push dword [esp + 0xf8]
mov dword [esp + 0xc8], eax
mov ecx, esi
mov eax, dword [ebx]
mov dword [esp + 0xc4], esi
mov dword [esi + 0xe8], eax
call fcn.10056aef
add esp, 0x10
mov edx, dword [esp + 0xec]
lea ecx, [esp + 0xc0]
call fcn.1004907e
test eax, eax
jne 0x1006a7b2
xor ecx, ecx
cmp dword [ebx + 0x38], ecx
je 0x10069d79
push dword [esp + 0xf0]
mov edi, dword [esp + 0x3c]
mov ecx, esi
push dword [esp + 0xf0]
mov edx, edi
push dword [esp + 0x30]
push dword [esp + 0x64]
push dword [esp + 0xf8]
push ebx
call fcn.1006a811
add esp, 0x18
jmp 0x1006a7b6
mov eax, dword [esi + 0x38]
dec eax
mov dword [esp + 0x4c], eax
mov dword [esi + 0x38], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0x20]
and eax, 0x80
or eax, ecx
je 0x10069dca
cmp dword [esi + 0x70], ecx
jne 0x10069dca
cmp byte [esi + 0x12], cl
jne 0x10069dca
cmp dword [esp + 0xfc], ecx
jne 0x10069dca
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
push ecx
push eax
push ecx
push 0x46
pop edx
mov ecx, edi
mov dword [esp + 0xb8], eax
call fcn.1003b08d
add esp, 0xc
xor ecx, ecx
test byte [ebx + 0x24], 0x20
jne 0x10069e16
push dword [esp + 0x34]
push dword [esp + 0x98]
push ecx
push 0x49
pop edx
mov ecx, edi
call fcn.1003b08d
xor ecx, ecx
add esp, 0xc
mov ebp, ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], ecx
cmp dword [esp + 0xfc], ecx
je 0x10069e94
jmp 0x10069f44
mov eax, dword [esp + 0x24]
movzx ecx, word [eax + 0x32]
mov eax, dword [esi + 0x2c]
movsx ebp, cx
mov dword [esp + 0x20], ecx
lea edx, [eax + 1]
inc eax
add eax, ebp
mov dword [esp + 0x30], edx
cmp dword [esp + 0xfc], 0
mov dword [esp + 0x44], eax
mov dword [esi + 0x2c], eax
jne 0x10069f3e
mov eax, dword [esi + 0x28]
mov ecx, edi
mov dword [esp + 0x64], eax
inc eax
mov dword [esi + 0x28], eax
lea eax, [ebp - 1]
add eax, edx
push eax
push edx
push 0
push 0x49
pop edx
call fcn.1003b08d
add esp, 0xc
mov ecx, edi
push 0
push ebp
push dword [esp + 0x6c]
push 0x71
pop edx
call fcn.1003b08d
mov edx, dword [esp + 0x30]
add esp, 0xc
mov ecx, esi
mov dword [esp + 0x9c], eax
call fcn.1003b7c6
mov ebp, dword [esp + 0x20]
xor ecx, ecx
cmp byte [esi + 0x12], 0
mov eax, 0x1004
jne 0x10069ebe
cmp dword [esp + 0x50], 0
jne 0x10069ebe
cmp dword [esp + 0x48], 0
jne 0x10069ebe
cmp byte [esp + 0x2c], 0
jne 0x10069ebe
cmp dword [esp + 0x5c], 0
jne 0x10069ebe
add eax, 8
push dword [esp + 0x80]
mov edx, dword [esp + 0x3c]
push eax
push ecx
push ecx
push dword [esp + 0xfc]
mov ecx, esi
call fcn.10074538
mov edx, eax
add esp, 0x14
mov dword [esp + 0x20], edx
test edx, edx
je 0x1006a7b2
mov eax, dword [edx + 0x18]
mov ecx, dword [edx + 0x1c]
movzx edx, byte [edx + 0x31]
mov dword [esp + 0x70], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x3c], edx
cmp edx, 1
je 0x10069f7c
mov eax, dword [esi + 0x6c]
test eax, eax
jne 0x10069f0f
mov eax, esi
cmp edx, 2
mov byte [eax + 0x14], 1
mov edx, dword [esp + 0x18]
jne 0x10069f80
test ecx, ecx
js 0x10069f80
cmp ecx, edx
je 0x10069f80
mov eax, ecx
mov ecx, dword [esp + 0x78]
sub eax, dword [esp + 0x90]
cmp byte [eax + ecx], 0
je 0x10069f80
and dword [esp + 0x3c], 0
jmp 0x10069f80
mov ebp, dword [esp + 0x20]
xor ecx, ecx
push 0x10
push dword [esp + 0x50]
mov dword [esp + 0x28], ecx
push dword [esp + 0xf4]
mov dword [esp + 0x48], 1
push esi
call fcn.1004d68c
mov eax, dword [esp + 0xcc]
add esp, 0x10
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x18]
test byte [ebx + 0x24], 0x20
jne 0x10069fd8
mov ebp, dword [esp + 0x34]
mov ecx, edi
push 0
push ebp
push edx
mov edx, 0x80
call fcn.1003b08d
mov edx, dword [esp + 0x48]
add esp, 0xc
test edx, edx
jne 0x1006a093
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x68]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
push 0
mov dword [edx + ecx*4], eax
mov edx, 0x94
push ebp
push dword [esp + 0x9c]
mov ecx, edi
call fcn.1003b08d
add esp, 0xc
jmp 0x1006a08f
and dword [esp + 0x74], 0
movsx ebp, bp
test ebp, ebp
jle 0x1006a018
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x30]
mov ecx, edi
add eax, esi
push eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push edx
mov edx, ebx
call fcn.1004bfa1
mov edx, dword [esp + 0x24]
add esp, 0xc
inc esi
cmp esi, ebp
jl 0x10069fe8
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x1006a049
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x1006a038
mov edx, eax
mov ecx, edi
call fcn.1003b689
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x98], ebp
mov dword [esp + 0x44], eax
jmp 0x1006a093
mov edx, dword [esp + 0x24]
push ebp
push ecx
mov ecx, dword [esp + 0x84]
call fcn.1005adf2
pop ecx
push eax
push dword [esp + 0x4c]
mov ecx, edi
push ebp
push dword [esp + 0x40]
push 0x5c
pop edx
call fcn.1003b1c9
add esp, 0x14
mov edx, 0x84
mov ecx, edi
push ebp
push dword [esp + 0x34]
push dword [esp + 0x4c]
push dword [esp + 0x70]
call fcn.1003b2f2
add esp, 0x10
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0xfc], 0
jne 0x1006a25e
cmp edx, 2
je 0x1006a0b3
mov ecx, dword [esp + 0x20]
call fcn.10074ee3
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x1006a167
xor ebp, ebp
test edx, edx
je 0x1006a12c
mov eax, dword [esp + 0x70]
test eax, eax
js 0x1006a0df
sub eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x78]
mov byte [eax + ecx], 0
mov ecx, dword [esp + 0x54]
test ecx, ecx
js 0x1006a0ff
mov esi, dword [esp + 0x78]
mov eax, ecx
sub eax, dword [esp + 0x90]
mov byte [eax + esi], 0
mov esi, dword [esp + 0x84]
cmp edx, 2
jne 0x1006a12c
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0xa0]
setns al
sub ecx, eax
test ecx, ecx
jle 0x1006a12c
xor eax, eax
mov ecx, edi
push eax
push eax
push eax
push 0x11
pop edx
call fcn.1003b08d
add esp, 0xc
mov ebp, eax
xor edx, edx
mov ecx, esi
push edx
push edx
push dword [esp + 0x80]
push dword [esp + 0x9c]
push edx
push 0x6d
mov edx, ebx
call fcn.1005ce69
add esp, 0x18
test ebp, ebp
je 0x1006a160
mov edx, ebp
mov ecx, edi
call fcn.1003b7e1
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x88]
mov ebp, dword [esp + 0x3c]
test ebp, ebp
je 0x1006a1cc
test eax, eax
jne 0x1006a1a0
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x70], eax
je 0x1006a1a0
cmp dword [esp + 0x54], eax
je 0x1006a1a0
push dword [esp + 0x98]
mov ecx, edi
push dword [esp + 0x48]
push dword [esp + 0x54]
push eax
push 0x1c
pop edx
call fcn.1003b2f2
add esp, 0x10
cmp ebp, 1
je 0x1006a1af
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x24], 0
mov eax, dword [esp + 0x44]
jne 0x1006a1be
mov eax, dword [esp + 0x34]
push 0
push dword [esp + 0x50]
push eax
push 0x32
jmp 0x1006a253
cmp dword [esp + 0x24], 0
mov ecx, edi
je 0x1006a22c
dec dword [esi + 0x38]
mov ebp, dword [esi + 0x38]
push 0
push dword [esp + 0x50]
mov dword [esp + 0x48], ebp
push dword [esp + 0x6c]
push 0x24
pop edx
call fcn.1003b08d
add esp, 0xc
mov ecx, edi
push 0
push dword [esp + 0x48]
push dword [esp + 0x6c]
push 0x7f
pop edx
call fcn.1003b08d
add esp, 0xc
mov dword [esp + 0xb0], eax
mov ecx, edi
push 0
push dword [esp + 0x48]
push ebp
push dword [esp + 0x24]
push 0x1c
pop edx
call fcn.1003b2f2
add esp, 0x10
jmp 0x1006a25e
mov ebp, dword [esp + 0x34]
push ebp
push dword [esp + 0x50]
push dword [esp + 0x9c]
push 0x29
pop edx
call fcn.1003b08d
add esp, 0xc
mov dword [esp + 0x40], eax
push ebp
push eax
push dword [esp + 0x20]
push 0x1f
pop edx
mov ecx, edi
call fcn.1003b08d
add esp, 0xc
cmp byte [esp + 0x17], 0
je 0x1006a288
mov ebp, dword [esp + 0x60]
mov ecx, esi
mov edx, dword [esp + 0x58]
push ebp
call fcn.1004d02f
pop ecx
push 0
push 0
push ebp
push 0xf
pop edx
mov ecx, edi
call fcn.1003b08d
add esp, 0xc
cmp byte [esp + 0x1f], 0
mov eax, dword [esp + 0x48]
jne 0x1006a2a1
test eax, eax
jne 0x1006a2a5
cmp dword [esp + 0x50], eax
je 0x1006a383
test eax, eax
je 0x1006a2b2
mov edx, ebx
mov ecx, esi
call fcn.1005a65d
mov ebp, eax
jmp 0x1006a2b4
xor ebp, ebp
push dword [esp + 0xf0]
mov edx, dword [esp + 0x54]
mov ecx, esi
push ebx
push 3
push 0
push dword [esp + 0xf8]
call fcn.1006957b
or ebp, eax
add esp, 0x14
mov dword [esp + 0x70], ebp
xor eax, eax
xor ebp, ebp
cmp ax, word [ebx + 0x2a]
jge 0x1006a35e
mov esi, dword [esp + 0x70]
xor edx, edx
mov dword [esp + 0x54], edx
cmp esi, 0xffffffff
je 0x1006a328
cmp ebp, 0x20
jge 0x1006a304
xor eax, eax
mov ecx, ebp
inc eax
shl eax, cl
test esi, eax
jne 0x1006a328
mov eax, dword [ebx + 4]
test byte [eax + edx + 0xf], 1
jne 0x1006a328
mov eax, dword [esp + 0x8c]
mov ecx, edi
push 0
add eax, ebp
push eax
push 0
push 0x49
pop edx
call fcn.1003b08d
jmp 0x1006a340
mov eax, dword [esp + 0x8c]
mov edx, ebx
add eax, ebp
mov ecx, edi
push eax
push ebp
push dword [esp + 0x20]
call fcn.1004bfa1
mov edx, dword [esp + 0x60]
add esp, 0xc
movsx eax, word [ebx + 0x2a]
inc ebp
add edx, 0x10
mov dword [esp + 0x54], edx
cmp ebp, eax
jl 0x1006a2ef
mov esi, dword [esp + 0x84]
cmp byte [esp + 0x17], 0
jne 0x1006a383
cmp dword [esp + 0x24], 0
jne 0x1006a383
push 0
push dword [esp + 0x64]
mov ecx, edi
push dword [esp + 0x3c]
push 0x4e
pop edx
call fcn.1003b08d
add esp, 0xc
push dword [esp + 0xf0]
mov edx, dword [esp + 0x54]
mov ecx, esi
push ebx
push 1
push 1
push dword [esp + 0xf8]
call fcn.1006957b
mov edx, eax
add esp, 0x14
xor eax, eax
mov dword [esp + 0x8c], edx
xor ebp, ebp
cmp ax, word [ebx + 0x2a]
jge 0x1006a44d
movsx eax, word [ebx + 0x28]
cmp ebp, eax
jne 0x1006a3da
mov eax, dword [esp + 0x6c]
mov ecx, edi
push 0
add eax, ebp
push eax
push 0
push 0x49
pop edx
call fcn.1003b08d
jmp 0x1006a436
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + ebp*4]
test ecx, ecx
js 0x1006a404
mov eax, dword [esp + 0x6c]
imul edx, ecx, 0x18
add eax, ebp
push eax
mov eax, dword [esp + 0xec]
mov ecx, esi
mov edx, dword [edx + eax + 4]
call fcn.1004d02f
pop ecx
jmp 0x1006a439
test dword [esp + 0xa4], 1
je 0x1006a421
cmp ebp, 0x1f
jg 0x1006a421
xor eax, eax
mov ecx, ebp
inc eax
shl eax, cl
test edx, eax
je 0x1006a3c3
mov eax, dword [esp + 0x6c]
mov edx, ebx
add eax, ebp
mov ecx, edi
push eax
push ebp
push dword [esp + 0x20]
call fcn.1004bfa1
add esp, 0xc
movsx eax, word [ebx + 0x2a]
inc ebp
mov edx, dword [esp + 0x8c]
cmp ebp, eax
jl 0x1006a3bb
test byte [esp + 0xa4], 1
je 0x1006a512
push dword [esp + 0x6c]
mov edx, ebx
mov ecx, edi
call fcn.1005aea0
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
pop ecx
push ebp
push dword [esp + 0xf4]
mov ecx, esi
push dword [esp + 0x3c]
push ebx
push 1
push dword [esp + 0xfc]
push 0x7a
call fcn.10069527
add esp, 0x1c
mov ecx, edi
cmp dword [esp + 0x24], 0
je 0x1006a4b9
push dword [esp + 0x98]
push dword [esp + 0x48]
push ebp
push dword [esp + 0x24]
push 0x1c
pop edx
call fcn.1003b2f2
add esp, 0x10
jmp 0x1006a4cd
push dword [esp + 0x34]
push ebp
push dword [esp + 0x20]
push 0x1f
pop edx
call fcn.1003b08d
add esp, 0xc
xor eax, eax
xor ebp, ebp
cmp ax, word [ebx + 0x2a]
jge 0x1006a512
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
cmp dword [eax + ebp*4], 0
jge 0x1006a502
movsx eax, word [ebx + 0x28]
cmp ebp, eax
je 0x1006a502
mov eax, dword [esp + 0x6c]
mov edx, ebx
add eax, ebp
mov ecx, edi
push eax
push ebp
push esi
call fcn.1004bfa1
add esp, 0xc
movsx eax, word [ebx + 0x2a]
inc ebp
cmp ebp, eax
jl 0x1006a4db
mov esi, dword [esp + 0x84]
cmp dword [esp + 0x88], 0
jne 0x1006a6b2
xor ebp, ebp
lea eax, [esp + 0x5c]
push ebp
push dword [esp + 0x2c]
mov edx, ebx
mov ecx, esi
push eax
push dword [esp + 0x4c]
push dword [esp + 0x100]
push dword [esp + 0x40]
push dword [esp + 0x4c]
push dword [esp + 0x7c]
push dword [esp + 0xa0]
push dword [esp + 0x3c]
push dword [esp + 0x90]
call fcn.1005c178
add esp, 0x2c
cmp dword [esp + 0x48], ebp
je 0x1006a583
push dword [esp + 0xa8]
mov edx, ebx
mov ecx, esi
push dword [esp + 0x2c]
push ebp
push dword [esp + 0x40]
call fcn.1005a233
add esp, 0x10
cmp dword [esp + 0x5c], ebp
jne 0x1006a590
cmp byte [esp + 0x2c], 0
je 0x1006a5cd
mov ecx, edi
cmp dword [esp + 0x24], ebp
je 0x1006a5b6
push dword [esp + 0x98]
push dword [esp + 0x48]
push 0
push dword [esp + 0x24]
push 0x1c
pop edx
call fcn.1003b2f2
add esp, 0x10
jmp 0x1006a5cb
push dword [esp + 0x34]
push 0
push dword [esp + 0x20]
push 0x1f
pop edx
call fcn.1003b08d
add esp, 0xc
mov ebp, eax
push 0xffffffffffffffff
push dword [esp + 0x6c]
mov edx, ebx
mov ecx, esi
push dword [esp + 0x88]
push dword [esp + 0x24]
call fcn.100576b6
add esp, 0x10
cmp dword [esp + 0x48], 1
jg 0x1006a5f9
mov al, byte [esp + 0x2c]
test al, al
je 0x1006a612
push 0
push 0
push dword [esp + 0x20]
mov ecx, edi
push 0x7b
pop edx
call fcn.1003b08d
mov al, byte [esp + 0x38]
add esp, 0xc
cmp dword [esp + 0x5c], 0
jne 0x1006a61d
test al, al
je 0x1006a62c
mov edx, ebp
mov ecx, edi
call fcn.1003b7e1
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
cmp dword [esp + 0x48], 0
je 0x1006a650
push dword [esp + 0xa8]
mov edx, ebx
mov ecx, esi
push dword [esp + 0x2c]
push dword [esp + 0x68]
push 0
call fcn.1005a233
add esp, 0x10
mov ebp, dword [esp + 0x3c]
xor eax, eax
cmp ebp, 2
mov edx, ebx
push 0
sete al
mov ecx, esi
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0x74]
push dword [esp + 0x70]
push dword [esp + 0x94]
push dword [esp + 0x30]
call fcn.1005cd12
add esp, 0x1c
cmp dword [esp + 0x48], 0
je 0x1006a6b6
push dword [esp + 0xa8]
mov edx, ebx
mov ecx, esi
push dword [esp + 0x2c]
push dword [esp + 0x3c]
push dword [esp + 0xf4]
call fcn.1005ac9b
add esp, 0x10
jmp 0x1006a6b6
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0xac]
test eax, eax
je 0x1006a6d3
push 0
push 1
push eax
push 0x53
pop edx
mov ecx, edi
call fcn.1003b08d
add esp, 0xc
push dword [esp + 0x40]
mov edx, dword [esp + 0x54]
mov ecx, esi
push dword [esp + 0xf4]
push dword [esp + 0x3c]
push ebx
push 2
push dword [esp + 0xfc]
push 0x7a
call fcn.10069527
add esp, 0x1c
cmp ebp, 1
je 0x1006a749
mov edx, dword [esp + 0x40]
mov ecx, edi
cmp ebp, 2
jne 0x1006a71c
call fcn.1003b38b
mov ecx, dword [esp + 0x20]
call fcn.10074ee3
jmp 0x1006a749
cmp dword [esp + 0x24], 0
je 0x1006a744
call fcn.1003b38b
push 0
push dword [esp + 0xb4]
mov ecx, edi
push dword [esp + 0x6c]
push 5
pop edx
call fcn.1003b08d
add esp, 0xc
jmp 0x1006a749
call fcn.1003b10a
mov edx, dword [esp + 0x4c]
mov ecx, edi
call fcn.1003b38b
cmp byte [esi + 0x12], 0
jne 0x1006a777
cmp dword [esi + 0x70], 0
jne 0x1006a777
cmp dword [esp + 0xfc], 0
jne 0x1006a777
cmp dword [esi + 0x68], 0
je 0x1006a777
mov ecx, esi
call fcn.1005b13f
mov eax, dword [esp + 0xac]
test eax, eax
je 0x1006a7b2
push 0
push 1
push eax
push 0x51
pop edx
mov ecx, edi
call fcn.1003b08d
add esp, 0xc
xor edx, edx
inc edx
mov ecx, edi
call fcn.1003c37c
push 0
push str.rows_updated
push ecx
xor edx, edx
mov ecx, edi
call fcn.1003c3d8
add esp, 0xc
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x10069a62
mov ecx, dword [esp + 0xb8]
mov dword [eax + 0xe8], ecx
jmp 0x10069a62
mov ebp, dword [esp + 0x7c]
mov edx, edi
mov ecx, ebp
call fcn.10055a5c
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x1006a7f8
mov edx, eax
mov ecx, ebp
call fcn.1004a8e4
mov edx, dword [esp + 0xec]
mov ecx, ebp
call fcn.10049dd8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret