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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
xor eax, eax
mov dword [esp + 0x5c], edx
push esi
mov esi, ecx
mov dword [esp + 0x78], eax
push edi
xor edi, edi
mov dword [esp + 0x78], eax
mov byte [esp + 0xf], al
mov byte [esp + 0x1b], al
mov dword [esp + 0x58], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x84], eax
mov eax, dword [esi]
mov dword [esp + 0x60], esi
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x3c], 0
mov dword [esp + 0x28], edi
mov dword [esp + 0x54], eax
cmp dword [esi + 0x24], edi
jne 0x1006d628
cmp byte [eax + 0x51], 0
jne 0x1006d628
mov ecx, dword [ebp + 8]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x1006c559
test dword [ecx + 4], 0x200
je 0x1006c559
cmp dword [ecx + 0x34], edi
jne 0x1006c559
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0x58], edx
mov edx, ecx
mov dword [ecx + 0x1c], edi
mov ecx, eax
push 1
call fcn.100764d0
add esp, 4
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x64]
mov ecx, esi
call fcn.10064350
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
je 0x1006c936
mov ecx, dword [edi + 0x48]
mov edx, 0xfff0bdc0
mov dword [esp + 0x14], edx
test ecx, ecx
je 0x1006c5a2
mov eax, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x14], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x1006c5a2
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x1006c596
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x54]
mov ecx, edx
add ecx, ecx
mov edx, 0x12
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov ecx, esi
push 0
push dword [edi]
call fcn.1005ba70
add esp, 0xc
test eax, eax
jne 0x1006c936
mov eax, dword [edi + 0x24]
mov edx, edi
shr eax, 7
mov ecx, esi
and eax, 0xffffff01
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x80]
push eax
push 0
push 0x7d
call fcn.10082a00
mov dword [esp + 0x80], eax
add esp, 0xc
xor eax, eax
mov edx, edi
cmp dword [edi + 0xc], eax
mov ecx, esi
setne al
mov dword [esp + 0x88], eax
call fcn.1005f7a0
test eax, eax
jne 0x1006c936
push dword [esp + 0x80]
mov edx, edi
mov ecx, esi
call fcn.10064460
add esp, 4
test eax, eax
jne 0x1006c936
mov ecx, esi
call fcn.10079840
mov dword [esp + 8], eax
test eax, eax
je 0x1006c936
cmp byte [esi + 0x12], 0
jne 0x1006c657
or dword [eax + 0x98], 0x20
cmp dword [esp + 0x2c], 0
jne 0x1006c669
cmp dword [esp + 0x74], 0
jne 0x1006c669
xor edx, edx
jmp 0x1006c66e
mov edx, 1
push dword [esp + 0x14]
mov ecx, esi
call fcn.10062b90
add esp, 4
cmp dword [ebp + 0xc], 0
jne 0x1006c6a1
push dword [esp + 0x14]
mov edx, edi
mov ecx, esi
push dword [ebp + 0x10]
push dword [esp + 0x34]
call fcn.100700f0
add esp, 0xc
test eax, eax
jne 0x1006d4e0
mov edx, dword [esp + 0x14]
mov ecx, esi
push edi
call fcn.1006c140
mov ecx, dword [esi + 0x2c]
add esp, 4
mov dword [esp + 0x70], eax
lea eax, [ecx + 1]
mov edx, eax
mov dword [esp + 0x68], eax
movsx eax, word [edi + 0x2a]
inc eax
mov dword [esp + 0x30], edx
add eax, ecx
mov dword [esi + 0x2c], eax
cmp dword [edi + 0x38], 0
je 0x1006c6df
lea edx, [ecx + 2]
inc eax
mov dword [esp + 0x30], edx
mov dword [esi + 0x2c], eax
test dword [edi + 0x24], 0x440
lea eax, [edx + 1]
mov edx, dword [ebp + 0xc]
sete byte [esp + 0x1c]
mov dword [esp + 0x44], eax
test edx, edx
je 0x1006c822
xor ecx, ecx
cmp dword [edx + 4], ecx
jle 0x1006c714
mov eax, dword [edx]
mov dword [eax + ecx*8 + 4], 0xffffffff
inc ecx
cmp ecx, dword [edx + 4]
jl 0x1006c704
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [edx + 4], ecx
jle 0x1006c822
mov edx, dword [esp + 0x20]
jmp 0x1006c730
movsx eax, word [edx + 0x2a]
xor edi, edi
mov dword [esp + 0x38], eax
test eax, eax
jle 0x1006c7cf
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
lea ecx, [eax + ecx*8]
mov eax, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x5c], eax
mov edx, dword [eax]
mov ecx, dword [ecx]
call fcn.1001c790
test eax, eax
je 0x1006c77e
mov eax, dword [esp + 0x5c]
inc edi
mov ecx, dword [esp + 0x24]
add eax, 0x14
mov dword [esp + 0x5c], eax
cmp edi, dword [esp + 0x38]
jl 0x1006c755
mov edx, dword [esp + 0x20]
jmp 0x1006c7cb
mov eax, dword [esp + 0x24]
lea ecx, [edi + edi*4]
mov esi, dword [esp + 0x34]
xor edx, edx
cmp dword [esp + 0x10], edi
mov dword [esp + 0x34], esi
mov dword [eax + 4], edi
mov eax, dword [esp + 0x1c]
movzx eax, al
cmovne eax, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
movsx eax, word [edx + 0x28]
cmp edi, eax
mov eax, esi
mov esi, dword [esp + 0x60]
cmove eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 4]
test byte [eax + ecx*4 + 0x10], 0x60
jne 0x1006c922
mov ecx, dword [esp + 0x10]
movsx eax, word [edx + 0x2a]
cmp edi, eax
jl 0x1006c80d
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x10]
mov ecx, dword [eax]
mov ecx, dword [ecx + edi*8]
call fcn.10050f60
test eax, eax
je 0x1006c93d
cmp byte [esp + 0x8c], 0
jne 0x1006c93d
mov edx, dword [esp + 0x20]
mov ecx, edi
mov dword [esp + 0x34], ecx
mov byte [esp + 0x1c], 0
mov eax, dword [ebp + 0xc]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [eax + 4]
jl 0x1006c730
mov edi, dword [esp + 0x20]
cmp dword [esp + 0x2c], 0
je 0x1006ca36
mov eax, dword [esp + 8]
inc dword [esi + 0x2c]
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x24], edx
mov ecx, dword [eax + 0x6c]
inc ecx
push ecx
push 0
mov dword [esp + 0x40], ecx
mov ecx, eax
push edx
mov edx, 0xd
call fcn.10039ec0
mov eax, dword [esp + 0x30]
add esp, 0xc
mov edx, dword [esp + 0x2c]
mov ecx, esi
mov dword [esp + 0x94], eax
xor eax, eax
cmp byte [esp + 0x1c], al
mov byte [esp + 0x90], 0xd
cmovne eax, dword [esp + 0x44]
mov dword [esp + 0x98], eax
movsx eax, word [edi + 0x2a]
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0xa4], 0
call fcn.1007edd0
mov ecx, dword [esp + 0x9c]
add esp, 4
mov dword [esp + 0x40], ecx
test eax, eax
jne 0x1006c936
mov eax, dword [esp + 0x54]
cmp byte [eax + 0x51], 0
jne 0x1006c936
cmp dword [esi + 0x24], 0
jne 0x1006c936
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 8]
call fcn.1003a6a0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 8]
lea edx, [edx - 1]
call fcn.1003aa70
cmp dword [esp + 0x74], 0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
jne 0x1006c964
mov edx, dword [esp + 0x14]
mov ecx, esi
push edi
call fcn.1006be00
add esp, 4
test eax, eax
jne 0x1006c964
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
jmp 0x1006ca86
lea ecx, [edi + edi*4]
push dword [eax + ecx*4]
push str.cannot_INSERT_into_generated_column___s_
push esi
call fcn.1001c650
add esp, 0xc
xor edi, edi
jmp 0x1006cc3c
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push dword [eax + edi*8]
push 0
push dword [esp + 0x6c]
push str.table__S_has_no_column_named__s
push esi
call fcn.1001c650
add esp, 0x14
mov byte [esi + 0x11], 1
xor edi, edi
jmp 0x1006cc3c
mov edx, dword [esi + 0x28]
mov ecx, esi
mov byte [esp + 0xf], 1
mov dword [esp + 0x3c], edx
lea eax, [edx + 1]
mov dword [esi + 0x28], eax
call fcn.10056ab0
mov edi, eax
call fcn.10056ab0
push dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
push edx
mov edx, 0x64
mov dword [esp + 0x1c], eax
call fcn.10039ff0
mov eax, dword [esp + 0x9c]
mov edx, 0xe
mov ecx, dword [esp + 0x10]
push eax
mov dword [esp + 0x58], eax
call fcn.10039f90
mov ecx, dword [esp + 0x14]
add esp, 0xc
mov edx, 0x5b
mov esi, eax
push edi
push dword [esp + 0x20]
push dword [esp + 0x48]
call fcn.10039ec0
mov ecx, dword [esp + 0x14]
add esp, 0xc
mov edx, 0x78
push dword [esp + 0x14]
push dword [esp + 0x40]
call fcn.10039ff0
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, 0x79
push edi
push dword [esp + 0x4c]
call fcn.10039ec0
mov ecx, dword [esp + 0x1c]
add esp, 0x14
mov edx, esi
call fcn.1003a060
mov ecx, dword [esp + 8]
mov edx, esi
call fcn.1003aa70
mov esi, dword [esp + 0x60]
mov edx, edi
mov ecx, esi
call fcn.10056ad0
mov edx, dword [esp + 0x14]
call fcn.10056ad0
mov edi, dword [esp + 0x1c]
jmp 0x1006ca86
mov eax, dword [esp + 0x58]
xorps xmm0, xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0xa0], xmm0
mov dword [esp + 0x90], esi
mov dword [esp + 0x3c], 0xffffffff
test eax, eax
je 0x1006ca80
mov edi, dword [eax]
lea ecx, [esp + 0x90]
mov edx, eax
mov dword [esp + 0x1c], edi
call fcn.1004e390
test eax, eax
jne 0x1006c936
jmp 0x1006ca86
xor edi, edi
mov dword [esp + 0x1c], edi
cmp dword [ebp + 0xc], 0
jne 0x1006cad6
test edi, edi
mov edi, dword [esp + 0x20]
jle 0x1006cada
movsx eax, word [edi + 0x28]
mov dword [esp + 0x34], eax
test eax, eax
js 0x1006cada
test byte [edi + 0x24], 0x60
je 0x1006cada
lea edx, [eax - 1]
test edx, edx
js 0x1006cada
mov eax, dword [edi + 4]
lea ecx, [edx + edx*4]
mov esi, dword [esp + 0x34]
lea eax, [eax + ecx*4]
add eax, 0x10
lea ecx, [ecx]
test byte [eax], 0x60
je 0x1006cac6
dec esi
sub eax, 0x14
dec edx
jns 0x1006cac0
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x60]
jmp 0x1006cada
mov edi, dword [esp + 0x20]
movsx edx, word [edi + 0x2a]
test edx, edx
jle 0x1006caff
mov eax, dword [edi + 4]
mov ecx, edx
add eax, 0x10
lea ebx, [ebx]
test byte [eax], 0x62
je 0x1006caf9
inc dword [esp + 0x48]
add eax, 0x14
dec ecx
jne 0x1006caf0
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x1006cb33
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1006cb55
sub edx, dword [esp + 0x48]
cmp eax, edx
je 0x1006cb55
push eax
push edx
push 0
push dword [esp + 0x70]
push str.table__S_has__d_columns_but__d_values_were_supplied
push esi
call fcn.1001c650
add esp, 0x18
xor edi, edi
jmp 0x1006cc3c
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
je 0x1006cb55
push eax
push ecx
push str._d_values_for__d_columns
push esi
call fcn.1001c650
add esp, 0x10
xor edi, edi
jmp 0x1006cc3c
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x1006cb92
cmp byte [esi + 0x12], 0
jne 0x1006cb92
cmp dword [esi + 0x78], 0
jne 0x1006cb92
inc dword [esi + 0x2c]
mov edx, 0x45
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 8]
push eax
push 0
mov dword [esp + 0x8c], eax
call fcn.10039ff0
add esp, 8
cmp dword [esp + 0x88], 0
jne 0x1006cc13
lea eax, [esp + 0x6c]
mov edx, edi
push eax
lea eax, [esp + 0x54]
mov ecx, esi
push eax
push 0
push 0xffffffffffffffff
push 0
push 0x61
call fcn.1006fdc0
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x3c], eax
push 0
lea eax, [eax*4 + 8]
push eax
call fcn.10019540
add esp, 0x20
mov dword [esp + 0x28], eax
test eax, eax
je 0x1006cc38
mov edx, dword [edi + 8]
xor ecx, ecx
cmp dword [esp + 0x24], ecx
jle 0x1006cc06
inc dword [esi + 0x2c]
mov edi, dword [esp + 0x28]
mov eax, dword [esi + 0x2c]
mov dword [edi + ecx*4], eax
inc ecx
movzx eax, word [edx + 0x34]
add dword [esi + 0x2c], eax
mov edx, dword [edx + 0x14]
cmp ecx, dword [esp + 0x24]
jl 0x1006cbe4
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x1006cd5b
cmp dword [edi + 0x38], 0
je 0x1006ccfb
push dword [edi]
push str.UPSERT_not_implemented_for_virtual_table___s_
push esi
call fcn.1001c650
add esp, 0xc
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x54]
mov ecx, esi
mov edx, dword [esp + 0x64]
call fcn.10062370
mov eax, dword [esp + 0x58]
test eax, eax
je 0x1006cc5c
mov edx, eax
mov ecx, esi
call fcn.100507b0
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x1006ccaf
mov edx, dword [eax]
test edx, edx
je 0x1006cc73
mov ecx, esi
call fcn.100507b0
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 4]
test edx, edx
je 0x1006cc84
mov ecx, esi
call fcn.1004f6f0
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
test edx, edx
je 0x1006cc95
mov ecx, esi
call fcn.100507b0
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x1006cca6
mov ecx, esi
call fcn.1004f6f0
mov eax, dword [ebp + 0x14]
mov edx, eax
mov ecx, esi
call fcn.100191e0
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1006ccc5
push 1
mov edx, eax
mov ecx, esi
call fcn.100764d0
add esp, 4
mov edx, dword [ebp + 0xc]
mov ecx, esi
call fcn.10061f30
test edi, edi
je 0x1006d67d
test esi, esi
je 0x1006d674
cmp dword [esi + 0x1f8], 0
je 0x1006d634
mov edx, edi
mov ecx, esi
call fcn.10019190
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [edi + 0xc], 0
je 0x1006cd14
push str.cannot_UPSERT_a_view
push esi
call fcn.1001c650
add esp, 8
jmp 0x1006cc38
mov edx, dword [eax]
mov ecx, esi
call fcn.10060e10
test eax, eax
jne 0x1006cc38
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x50]
mov dword [ecx + 0x34], edx
cmp dword [eax], 0
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0x1c], edx
mov dword [eax + 0x20], ecx
je 0x1006cd5b
mov edx, dword [esp + 0x64]
mov ecx, esi
push eax
call fcn.10086290
add esp, 4
cmp byte [esp + 0xf], 0
mov ecx, dword [esp + 8]
je 0x1006cd88
push dword [esp + 0x3c]
mov edx, 0x25
call fcn.10039f90
mov ecx, dword [esp + 0xc]
add esp, 4
mov dword [esp + 0x7c], eax
mov eax, dword [ecx + 0x6c]
mov dword [esp + 0x78], eax
jmp 0x1006cdd0
cmp dword [esp + 0x2c], 0
je 0x1006cdd0
push dword [esp + 0x4c]
mov edx, 0xe
call fcn.10039f90
mov dword [esp + 0x7c], eax
add esp, 4
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x34]
test eax, eax
js 0x1006cdcc
mov ecx, dword [esp + 0x40]
mov edx, 0x4d
push dword [esp + 0x30]
add ecx, eax
push ecx
mov ecx, dword [esp + 0x10]
call fcn.10039ff0
add esp, 8
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x44]
xor eax, eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0
cmp ax, word [edi + 0x2a]
jge 0x1006cf7a
mov dword [esp + 0x5c], eax
jmp 0x1006ce04
mov ecx, dword [esp + 8]
movsx eax, word [edi + 0x28]
mov esi, dword [esp + 0x60]
cmp dword [esp + 0x14], eax
jne 0x1006ce22
push edx
mov edx, 0x49
call fcn.10039f90
jmp 0x1006cf54
mov eax, dword [edi + 4]
add eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
movzx eax, word [eax + 0x10]
test al, 0x62
je 0x1006ce83
inc dword [esp + 0x48]
test al, 0x20
je 0x1006ce47
dec edx
jmp 0x1006cf5b
test al, 0x40
je 0x1006ce69
test byte [esp + 0x80], 1
je 0x1006cf5b
push edx
mov edx, 0x49
call fcn.10039f90
jmp 0x1006cf54
cmp dword [ebp + 0xc], 0
jne 0x1006ce89
push edx
mov edx, dword [esp + 0x50]
mov ecx, esi
mov edx, dword [edx + 4]
call fcn.10055170
jmp 0x1006cf54
cmp dword [ebp + 0xc], 0
je 0x1006ced9
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x38], ecx
test ecx, ecx
jle 0x1006cec1
mov ecx, dword [ebp + 0xc]
mov edi, dword [esp + 0x14]
mov esi, dword [ebp + 0xc]
mov ecx, dword [ecx]
add ecx, 4
cmp dword [ecx], edi
je 0x1006ceb5
inc eax
add ecx, 8
cmp eax, dword [esi + 4]
jl 0x1006cea8
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jl 0x1006cef9
push edx
mov edx, dword [esp + 0x50]
mov ecx, esi
mov edx, dword [edx + 4]
call fcn.10055170
jmp 0x1006cf54
cmp dword [esp + 0x1c], 0
jne 0x1006cef1
push edx
mov edx, dword [esp + 0x50]
mov ecx, esi
mov edx, dword [edx + 4]
call fcn.10055170
jmp 0x1006cf54
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x48]
cmp byte [esp + 0xf], 0
je 0x1006cf19
mov ecx, dword [esp + 8]
push edx
push eax
push dword [esp + 0x44]
mov edx, 0x59
call fcn.10039ec0
add esp, 0xc
jmp 0x1006cf57
cmp dword [esp + 0x2c], 0
je 0x1006cf41
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x44]
je 0x1006cf5b
push edx
add eax, ecx
mov edx, 0x4e
mov ecx, dword [esp + 0xc]
push eax
call fcn.10039ff0
add esp, 8
jmp 0x1006cf57
push edx
lea edx, [eax + eax*4]
mov ecx, esi
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + edx*4 + 4]
call fcn.10055120
add esp, 4
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edx
movsx eax, word [edi + 0x2a]
inc ecx
add dword [esp + 0x5c], 0x14
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
cmp ecx, eax
jl 0x1006ce00
dec dword [esi + 0x38]
test byte [esp + 0x80], 1
mov eax, dword [esi + 0x38]
mov dword [esp + 0x40], eax
je 0x1006d126
movsx edx, word [edi + 0x2a]
mov ecx, esi
inc edx
call fcn.10056af0
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
push eax
test ecx, ecx
jns 0x1006cfc3
mov ecx, dword [esp + 0xc]
mov edx, 0x45
push 0xffffffffffffffff
call fcn.10039ff0
add esp, 8
jmp 0x1006d071
cmp byte [esp + 0x13], 0
je 0x1006cfe2
push ecx
push dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov edx, 0x59
call fcn.10039ec0
add esp, 0xc
jmp 0x1006cff7
mov eax, dword [esp + 0x5c]
lea edx, [ecx + ecx*4]
mov ecx, esi
mov edx, dword [eax + edx*4 + 4]
call fcn.10055120
add esp, 4
push dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, 0x33
call fcn.10039f90
mov ecx, dword [esp + 0xc]
add esp, 4
mov edx, 0x45
mov dword [esp + 0x38], eax
push dword [esp + 0x10]
push 0xffffffffffffffff
call fcn.10039ff0
mov edx, dword [esp + 0x10]
add esp, 8
mov ecx, dword [esp + 0x38]
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x24], eax
test ecx, ecx
jns 0x1006d03d
lea ecx, [eax - 1]
mov eax, dword [edx]
cmp byte [eax + 0x51], 0
je 0x1006d04c
mov eax, 0x100d03e4
jmp 0x1006d055
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov edx, 0xf
push dword [esp + 0x10]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xc]
call fcn.10039f90
add esp, 4
movsx eax, word [edi + 0x2c]
mov edx, 0x4d
mov ecx, dword [esp + 0x10]
dec eax
inc ecx
push eax
push ecx
push dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x14]
call fcn.10039ec0
add esp, 0xc
test byte [edi + 0x24], 0x60
je 0x1006d0ab
mov edx, dword [esp + 0x24]
mov ecx, esi
push edi
call fcn.1006bf10
add esp, 4
cmp dword [esp + 0x88], 0
jne 0x1006d0c7
push dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov edx, edi
call fcn.1006bd20
add esp, 4
push dword [esp + 0x40]
movsx eax, word [edi + 0x2a]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x7c]
sub ecx, eax
dec ecx
push ecx
push edi
push 1
push 0
push 0x7d
mov ecx, esi
call fcn.100833b0
movsx eax, word [edi + 0x2a]
add esp, 0x1c
inc eax
cmp eax, 1
jne 0x1006d117
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x1006d126
mov al, byte [esi + 0x13]
cmp al, 8
jae 0x1006d126
movzx eax, al
mov dword [esi + eax*4 + 0x94], ecx
inc byte [esi + 0x13]
jmp 0x1006d126
cmp eax, dword [esi + 0x1c]
jle 0x1006d126
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0x20], eax
cmp dword [esp + 0x88], 0
jne 0x1006d3c8
cmp dword [edi + 0x38], 0
je 0x1006d151
push dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
mov edx, 0x48
push 0
call fcn.10039ff0
add esp, 8
mov eax, dword [esp + 0x34]
test eax, eax
js 0x1006d229
cmp byte [esp + 0xf], 0
je 0x1006d180
push dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov edx, 0x59
push eax
push dword [esp + 0x44]
call fcn.10039ec0
add esp, 0xc
jmp 0x1006d1af
cmp dword [esp + 0x2c], 0
jne 0x1006d1af
mov edx, dword [esp + 0x58]
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*4 + 4]
cmp byte [edx], 0x77
jne 0x1006d1a1
cmp dword [edi + 0x38], 0
je 0x1006d239
push dword [esp + 0x30]
mov ecx, esi
call fcn.10055120
add esp, 4
cmp dword [edi + 0x38], 0
mov ecx, dword [esp + 8]
jne 0x1006d1fa
push dword [esp + 0x30]
mov edx, 0x33
call fcn.10039f90
mov ecx, dword [esp + 0xc]
add esp, 4
mov edx, 0x78
mov esi, eax
push dword [esp + 0x70]
push dword [esp + 0x34]
push dword [esp + 0x58]
call fcn.10039ec0
mov ecx, dword [esp + 0x14]
add esp, 0xc
mov edx, esi
call fcn.1003aa70
mov esi, dword [esp + 0x60]
jmp 0x1006d212
mov eax, dword [ecx + 0x6c]
mov edx, 0x32
add eax, 2
push eax
push dword [esp + 0x34]
call fcn.10039ff0
add esp, 8
push dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov edx, 0xf
call fcn.10039f90
add esp, 4
jmp 0x1006d274
cmp dword [edi + 0x38], 0
jne 0x1006d25d
cmp byte [esp + 0x8c], 0
jne 0x1006d25d
push dword [esp + 0x70]
mov ecx, dword [esp + 0xc]
mov edx, 0x78
push dword [esp + 0x34]
push dword [esp + 0x58]
call fcn.10039ec0
add esp, 0xc
mov byte [esp + 0x1b], 1
jmp 0x1006d274
push dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov edx, 0x48
push 0
call fcn.10039ff0
add esp, 8
push dword [esp + 0x30]
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.1006c2d0
add esp, 4
test byte [edi + 0x24], 0x60
je 0x1006d29b
mov edx, dword [esp + 0x44]
mov ecx, esi
push edi
call fcn.1006bf10
add esp, 4
cmp dword [edi + 0x38], 0
je 0x1006d32c
mov edi, dword [edi + 0x40]
test edi, edi
je 0x1006d2bb
mov eax, dword [esp + 0x54]
cmp dword [edi], eax
je 0x1006d2bb
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x1006d2b0
mov edx, dword [esp + 0x20]
mov ecx, esi
call fcn.10088760
mov ecx, dword [esp + 8]
mov edx, 0xa
push 0xfffffffffffffff4
push edi
mov edi, dword [esp + 0x28]
push dword [esp + 0x70]
movsx eax, word [edi + 0x2a]
add eax, 2
push eax
push 1
call fcn.1003a330
mov eax, dword [esp + 0x1c]
add esp, 0x14
mov ecx, dword [eax + 0x6c]
test ecx, ecx
jle 0x1006d319
mov edx, dword [ebp + 0x10]
lea ecx, [ecx + ecx*4]
cmp dword [ebp + 0x10], 0xb
mov eax, dword [eax + 0x68]
movzx edx, dx
mov dword [esp + 0x38], 2
cmove edx, dword [esp + 0x38]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esi + 0x74]
mov ecx, esi
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
jmp 0x1006d3c8
push dword [ebp + 0x14]
cmp dword [esp + 0x38], 0
lea eax, [esp + 0x3c]
push 0
push eax
push dword [esp + 0x4c]
setge al
mov edx, edi
push dword [ebp + 0x10]
movzx eax, al
mov ecx, esi
push eax
push 0
push dword [esp + 0x84]
push dword [esp + 0x8c]
push dword [esp + 0x74]
push dword [esp + 0x50]
call fcn.1006d6d0
add esp, 0x2c
mov edx, edi
mov ecx, esi
push 0
push 0
push dword [esp + 0x70]
push 0
call fcn.1006a9a0
add esp, 0x10
cmp dword [esp + 0x38], 0
je 0x1006d39b
mov eax, dword [esp + 8]
cmp dword [eax + 0xd8], 0
je 0x1006d39b
xor eax, eax
jmp 0x1006d3a0
mov eax, 1
push eax
movzx eax, byte [esp + 0x1f]
mov edx, edi
push eax
push 0
push dword [esp + 0x34]
mov ecx, esi
push dword [esp + 0x78]
push dword [esp + 0x80]
push dword [esp + 0x68]
call fcn.1006fb20
add esp, 0x1c
mov eax, dword [esp + 0x84]
test eax, eax
je 0x1006d3e7
mov ecx, dword [esp + 8]
mov edx, 0x52
push 1
push eax
call fcn.10039ff0
add esp, 8
mov edx, dword [esp + 0x74]
test edx, edx
je 0x1006d415
push dword [esp + 0x40]
movsx eax, word [edi + 0x2a]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x4c]
sub ecx, eax
sub ecx, 2
push ecx
push edi
push 2
push 0
push 0x7d
mov ecx, esi
call fcn.100833b0
add esp, 0x1c
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x40]
not edx
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x1006d437
push edx
mov edx, edi
call fcn.1003a710
add esp, 4
jmp 0x1006d440
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
cmp byte [esp + 0xf], 0
je 0x1006d49f
push dword [esp + 0x78]
mov edx, 5
mov ecx, edi
push dword [esp + 0x40]
call fcn.10039ff0
mov ecx, dword [esp + 0x84]
add esp, 8
mov edx, dword [edi + 0x6c]
test ecx, ecx
jns 0x1006d46f
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x1006d47e
mov eax, 0x100d03e4
jmp 0x1006d487
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
push dword [esp + 0x3c]
mov dword [eax + 8], edx
mov ecx, edi
mov edx, 0x74
call fcn.10039f90
add esp, 4
jmp 0x1006d4e4
cmp dword [esp + 0x2c], 0
je 0x1006d4e4
mov edx, dword [esp + 0x78]
mov ecx, edi
call fcn.1003a060
mov ecx, dword [esp + 0x7c]
mov edx, dword [edi + 0x6c]
test ecx, ecx
jns 0x1006d4bf
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x1006d4d1
mov eax, 0x100d03e4
mov dword [eax + 8], edx
jmp 0x1006d4e4
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x1006d4e4
mov edi, dword [esp + 8]
cmp byte [esi + 0x12], 0
jne 0x1006d4fd
cmp dword [esi + 0x78], 0
jne 0x1006d4fd
cmp dword [esi + 0x70], 0
je 0x1006d4fd
mov ecx, esi
call fcn.1006c340
mov eax, dword [esp + 0x84]
test eax, eax
je 0x1006cc38
push 1
push eax
mov edx, 0x50
mov ecx, edi
call fcn.10039ff0
add esp, 8
mov edx, 1
mov ecx, edi
call fcn.1003c280
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x1006cc38
mov edi, dword [edi + 0x74]
mov esi, str.rows_inserted
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x1006d541
sub esi, ecx
mov eax, 0x2400
and esi, 0x7fffffff
test word [edi + 8], ax
jne 0x1006d561
cmp dword [edi + 0x18], 0
je 0x1006d568
mov ecx, edi
call fcn.100389b0
xor eax, eax
mov dword [edi + 0x10], str.rows_inserted
cmp eax, 0x100190b0
jne 0x1006d610
mov eax, dword [edi + 0x20]
mov dword [edi + 0x14], str.rows_inserted
test eax, eax
je 0x1006d5ea
cmp dword [eax + 0x14c], str.rows_inserted
jbe 0x1006d5ea
cmp dword [eax + 0x144], str.rows_inserted
ja 0x1006d5bf
mov eax, 0x80
mov dword [edi + 0xc], esi
mov dword [edi + 0x18], eax
mov eax, 0x202
mov word [edi + 8], ax
mov byte [edi + 0xa], 1
jmp 0x1006cc38
cmp dword [eax + 0x148], str.rows_inserted
ja 0x1006d5ea
movzx eax, word [eax + 0x11e]
mov dword [edi + 0x18], eax
mov eax, 0x202
mov dword [edi + 0xc], esi
mov word [edi + 8], ax
mov byte [edi + 0xa], 1
jmp 0x1006cc38
push str.rows_inserted
call dword [0x100cecf4]
mov dword [edi + 0x18], eax
add esp, 4
mov eax, 0x202
mov dword [edi + 0xc], esi
mov word [edi + 8], ax
mov byte [edi + 0xa], 1
jmp 0x1006cc38
mov dword [edi + 0x24], eax
mov eax, 0xa02
mov dword [edi + 0xc], esi
mov word [edi + 8], ax
mov byte [edi + 0xa], 1
jmp 0x1006cc38
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
jmp 0x1006cc3c
cmp edi, dword [esi + 0x14c]
jae 0x1006d674
cmp edi, dword [esi + 0x144]
jb 0x1006d658
mov eax, dword [esi + 0x140]
mov dword [edi], eax
mov dword [esi + 0x140], edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp edi, dword [esi + 0x148]
jb 0x1006d674
mov eax, dword [esi + 0x138]
mov dword [edi], eax
mov dword [esi + 0x138], edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push edi
call fcn.10019120
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret