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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0
cmp dword [edi + 0x24], 0
mov eax, dword [edi]
mov dword [esp + 0x74], 0
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x3c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov byte [esp + 0x1a], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x50], eax
jne 0x497d83
cmp byte [eax + 0x51], 0
jne 0x497d83
mov ecx, dword [ebp + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x496c5e
test dword [ecx + 4], 0x200
je 0x496c5e
cmp dword [ecx + 0x34], 0
jne 0x496c5e
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0x5c], edx
mov edx, ecx
mov dword [ecx + 0x1c], 0
mov ecx, eax
push 1
call fcn.004a0c10
add esp, 4
mov dword [esp + 0x38], 0
mov edx, dword [esp + 0x6c]
mov ecx, edi
call fcn.0048ddd0
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
je 0x49707d
mov edx, dword [esi + 0x48]
mov ecx, dword [esp + 0x50]
call fcn.004a01a0
mov ecx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
add ecx, ecx
mov edx, 0x12
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov ecx, edi
push 0
push dword [esi]
call fcn.00484e00
add esp, 0xc
test eax, eax
jne 0x49707d
mov eax, dword [esi + 0x24]
mov edx, esi
shr eax, 7
mov ecx, edi
and eax, 0xffffff01
mov dword [esp + 0x64], eax
lea eax, [esp + 0x84]
push eax
push 0
push 0x7d
call fcn.004ad610
add esp, 0xc
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0xc]
mov edx, esi
mov ecx, edi
mov dword [esp + 0x88], eax
call fcn.00488ef0
test eax, eax
jne 0x49707d
push dword [esp + 0x84]
mov edx, esi
mov ecx, edi
call fcn.0048df00
add esp, 4
test eax, eax
jne 0x49707d
mov ecx, edi
call fcn.004a3f10
mov dword [esp + 0x10], eax
test eax, eax
je 0x49707d
cmp byte [edi + 0x12], 0
jne 0x496d31
or dword [eax + 0x98], 0x20
cmp dword [esp + 0x38], 0
jne 0x496d43
cmp dword [esp + 0x78], 0
jne 0x496d43
xor edx, edx
jmp 0x496d48
mov edx, 1
push dword [esp + 0x20]
mov ecx, edi
call fcn.0048c4b0
add esp, 4
cmp dword [ebp + 0xc], 0
jne 0x496d7b
push dword [esp + 0x20]
mov edx, esi
mov ecx, edi
push dword [ebp + 0x10]
push dword [esp + 0x40]
call fcn.0049a720
add esp, 0xc
test eax, eax
jne 0x497ceb
mov edx, dword [esp + 0x20]
mov ecx, edi
push esi
call fcn.004967c0
mov ecx, dword [edi + 0x2c]
add esp, 4
mov dword [esp + 0x70], eax
lea eax, [ecx + 1]
mov edx, eax
mov dword [esp + 0x68], eax
movsx eax, word [esi + 0x2a]
inc eax
mov dword [esp + 0x30], edx
add eax, ecx
mov dword [edi + 0x2c], eax
cmp dword [esi + 0x38], 0
je 0x496db9
lea edx, [ecx + 2]
inc eax
mov dword [esp + 0x30], edx
mov dword [edi + 0x2c], eax
test dword [esi + 0x24], 0x440
lea eax, [edx + 1]
mov edx, dword [ebp + 0xc]
sete byte [esp + 0x1b]
mov dword [esp + 0x4c], eax
test edx, edx
je 0x496f30
mov eax, dword [edx + 4]
xor ecx, ecx
test eax, eax
jle 0x496df2
mov eax, dword [edx]
mov dword [eax + ecx*8 + 4], 0xffffffff
inc ecx
mov eax, dword [edx + 4]
cmp ecx, eax
jl 0x496de0
xor edx, edx
mov dword [esp + 0x24], edx
test eax, eax
jle 0x496f30
movzx eax, word [esi + 0x2a]
mov dword [esp + 0x2c], eax
cwde
xor esi, esi
test eax, eax
jle 0x496eab
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
lea ecx, [eax + edx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
nop word [eax + eax]
mov edx, dword [eax]
mov ecx, dword [ecx]
call fcn.0043e6c0
test eax, eax
je 0x496e5e
mov eax, dword [esp + 0x44]
inc esi
mov edx, dword [esp + 0x2c]
add eax, 0x14
movsx ecx, dx
cmp esi, ecx
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x28]
jl 0x496e30
mov edx, dword [esp + 0x24]
jmp 0x496eab
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [esp + 0x24]
cmp edx, esi
mov dword [eax + 4], esi
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x1b]
cmove ecx, eax
mov eax, dword [esp + 0x14]
mov byte [esp + 0x1b], cl
mov ecx, edx
movsx eax, word [eax + 0x28]
cmp esi, eax
lea eax, [esi + esi*4]
cmovne ecx, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x2c]
test byte [ecx + eax*4 + 0x10], 0x60
jne 0x497069
mov eax, dword [esp + 0x14]
movzx eax, word [eax + 0x2a]
mov dword [esp + 0x2c], eax
cwde
cmp esi, eax
jl 0x496f10
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov esi, dword [eax + edx*8]
mov edx, str._ROWID_
mov ecx, esi
call fcn.0043e6c0
test eax, eax
je 0x496ef8
mov edx, str.ROWID
mov ecx, esi
call fcn.0043e6c0
test eax, eax
je 0x496ef8
mov edx, 0x523d24
mov ecx, esi
call fcn.0043e6c0
test eax, eax
jne 0x497142
cmp byte [esp + 0x64], 0
jne 0x497142
mov edx, dword [esp + 0x24]
mov dword [esp + 0x34], edx
mov byte [esp + 0x1b], 0
mov ecx, dword [ebp + 0xc]
inc edx
mov eax, dword [esp + 0x2c]
movzx eax, ax
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], eax
cmp edx, dword [ecx + 4]
jl 0x496e08
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x38], 0
je 0x4972d3
mov ecx, dword [esp + 0x10]
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x2c], edx
mov eax, dword [ecx + 0x6c]
mov dword [esp + 0x44], eax
inc eax
push eax
push 0
push edx
mov edx, 0xd
call fcn.00460630
mov eax, dword [esp + 0x38]
add esp, 0xc
mov edx, dword [esp + 0x38]
mov ecx, edi
mov dword [esp + 0x94], eax
xor eax, eax
cmp byte [esp + 0x1b], al
mov byte [esp + 0x90], 0xd
cmovne eax, dword [esp + 0x4c]
mov dword [esp + 0x98], eax
movsx eax, word [esi + 0x2a]
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0xa4], 0
call fcn.004a9530
mov ecx, dword [esp + 0x9c]
add esp, 4
mov dword [esp + 0x40], ecx
test eax, eax
jne 0x49707d
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x51], 0
jne 0x49707d
cmp dword [edi + 0x24], 0
jne 0x49707d
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
call fcn.00460d80
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
call fcn.00461220
cmp dword [esp + 0x78], 0
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
jne 0x497201
mov eax, dword [edi + 8]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x497037
cmp dword [edi + 0x74], eax
jne 0x49702c
mov eax, dword [edi]
test byte [eax + 0x4c], 8
jne 0x49702c
mov byte [edi + 0x17], 1
mov ecx, edi
call fcn.00460280
mov dword [esp + 0x1c], eax
cmp dword [esi + 0x38], 0
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x28], eax
je 0x497160
mov edx, dword [esi + 0x40]
test edx, edx
je 0x497162
mov eax, dword [edi]
cmp dword [edx], eax
je 0x497060
mov edx, dword [edx + 0x18]
test edx, edx
jne 0x497055
mov eax, dword [esp + 0x28]
jmp 0x497162
lea eax, [esi + esi*4]
push dword [ecx + eax*4]
push str.cannot_INSERT_into_generated_column___s_
push edi
call fcn.0043e570
add esp, 0xc
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x50]
mov ecx, edi
mov edx, dword [esp + 0x6c]
call fcn.0048bcf0
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4970a0
mov edx, eax
mov ecx, edi
call fcn.00479540
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4970f3
mov edx, dword [eax]
test edx, edx
je 0x4970b7
mov ecx, edi
call fcn.00479540
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 4]
test edx, edx
je 0x4970c8
mov ecx, edi
call fcn.00478210
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
test edx, edx
je 0x4970d9
mov ecx, edi
call fcn.00479540
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x4970ea
mov ecx, edi
call fcn.00478210
mov eax, dword [ebp + 0x14]
mov edx, eax
mov ecx, edi
call fcn.0043acb0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x497109
push 1
mov edx, eax
mov ecx, edi
call fcn.004a0c10
add esp, 4
mov edx, esi
mov ecx, edi
call fcn.0048b8c0
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x497dd8
test edi, edi
je 0x497dcf
cmp dword [edi + 0x1f8], 0
je 0x497d8f
mov edx, ecx
mov ecx, edi
call fcn.0043ac60
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push esi
push 0
push dword [esp + 0x74]
push str.table__S_has_no_column_named__s
push edi
call fcn.0043e570
add esp, 0x14
mov byte [edi + 0x11], 1
jmp 0x49707d
xor edx, edx
mov ecx, 1
mov dword [esp + 0x2c], ecx
cmp eax, ecx
jle 0x4971ed
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov al, byte [eax + 0x51]
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x28]
dec eax
test ecx, ecx
cmovns eax, ecx
cmp byte [esp + 0x1b], 0
je 0x497198
mov eax, 0x538670
jmp 0x4971a5
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x68]
lea eax, [eax + ecx*4]
mov cl, byte [eax]
cmp cl, 0x60
jne 0x4971d2
mov ecx, dword [esp + 0x20]
cmp dword [eax + 0xc], ecx
jne 0x4971dc
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 0x1c]
je 0x497201
mov eax, dword [esi + 8]
test eax, eax
je 0x4971dc
cmp ecx, dword [eax + 0x2c]
je 0x497201
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4971c4
jmp 0x4971dc
cmp cl, 0xa5
jne 0x4971dc
cmp dword [eax + 0x10], edx
je 0x497201
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, eax
jl 0x497184
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
jmp 0x497321
mov edx, dword [edi + 0x28]
mov ecx, edi
mov byte [esp + 0x1a], 1
mov dword [esp + 0x3c], edx
lea eax, [edx + 1]
mov dword [edi + 0x28], eax
call fcn.0047fc30
mov edi, eax
call fcn.0047fc30
push dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
push edx
mov edx, 0x64
mov dword [esp + 0x30], eax
call fcn.00460760
mov eax, dword [esp + 0x9c]
mov edx, 0xe
mov ecx, dword [esp + 0x18]
push eax
mov dword [esp + 0x28], eax
call fcn.00460700
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, 0x5b
mov esi, eax
push edi
push dword [esp + 0x28]
push dword [esp + 0x48]
call fcn.00460630
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, 0x78
push dword [esp + 0x28]
push dword [esp + 0x40]
call fcn.00460760
push dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov edx, 0x79
push edi
push dword [esp + 0x4c]
call fcn.00460630
mov ecx, dword [esp + 0x24]
add esp, 0x14
mov edx, esi
call fcn.004607d0
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.00461220
mov edx, edi
mov edi, dword [esp + 0x58]
mov ecx, edi
call fcn.0047fc50
mov edx, dword [esp + 0x28]
call fcn.0047fc50
mov esi, dword [esp + 0x24]
jmp 0x497321
mov eax, dword [esp + 0x5c]
xorps xmm0, xmm0
movaps xmmword [esp + 0x90], xmm0
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0x90], edi
mov dword [esp + 0x3c], 0xffffffff
test eax, eax
je 0x49731b
mov esi, dword [eax]
lea ecx, [esp + 0x90]
mov edx, eax
mov dword [esp + 0x24], esi
call fcn.00476a80
test eax, eax
jne 0x49707d
jmp 0x497321
xor esi, esi
mov dword [esp + 0x24], esi
cmp dword [ebp + 0xc], 0
jne 0x49737d
test esi, esi
mov esi, dword [esp + 0x14]
jle 0x497381
movsx eax, word [esi + 0x28]
mov dword [esp + 0x34], eax
test eax, eax
js 0x497381
test byte [esi + 0x24], 0x60
je 0x497381
lea edx, [eax - 1]
test edx, edx
js 0x497381
mov eax, dword [esi + 4]
lea ecx, [edx + 1]
lea ecx, [edx + ecx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x34]
nop dword [eax + eax]
test byte [ecx], 0x60
lea eax, [eax - 1]
lea ecx, [ecx - 0x14]
cmove eax, dword [esp + 0x34]
sub edx, 1
mov dword [esp + 0x34], eax
jns 0x497360
mov dword [esp + 0x34], eax
jmp 0x497381
mov esi, dword [esp + 0x14]
movsx eax, word [esi + 0x2a]
test eax, eax
jle 0x4973b2
mov ecx, dword [esi + 4]
mov edx, eax
add ecx, 0x10
xor edi, edi
test byte [ecx], 0x62
lea eax, [edi + 1]
lea ecx, [ecx + 0x14]
cmove eax, edi
mov edi, eax
sub edx, 1
jne 0x497393
movsx eax, word [esi + 0x2a]
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x58]
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
test ecx, ecx
jne 0x4973e3
test edx, edx
je 0x4973ff
sub eax, dword [esp + 0x54]
cmp edx, eax
je 0x4973ff
push edx
push eax
push ecx
push dword [esp + 0x78]
push str.table__S_has__d_columns_but__d_values_were_supplied
push edi
call fcn.0043e570
add esp, 0x18
jmp 0x49707d
mov eax, dword [ecx + 4]
cmp edx, eax
je 0x4973ff
push eax
push edx
push str._d_values_for__d_columns
push edi
call fcn.0043e570
add esp, 0x10
jmp 0x49707d
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x49743c
cmp byte [edi + 0x12], 0
jne 0x49743c
cmp dword [edi + 0x78], 0
jne 0x49743c
inc dword [edi + 0x2c]
mov edx, 0x45
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x10]
push eax
push 0
mov dword [esp + 0x94], eax
call fcn.00460760
add esp, 8
cmp dword [esp + 0x88], 0
jne 0x4974d3
lea eax, [esp + 0x74]
mov edx, esi
push eax
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
push 0
push 0xffffffffffffffff
push 0
push 0x61
call fcn.0049a3f0
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], eax
push 0
lea eax, [eax*4 + 8]
push eax
call fcn.0043b020
mov ecx, eax
add esp, 0x20
mov dword [esp + 0x60], ecx
test ecx, ecx
je 0x49707d
mov esi, dword [esi + 8]
xor edx, edx
cmp dword [esp + 0x54], edx
jle 0x4974c5
nop dword [eax + eax]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [ecx + edx*4], eax
inc edx
movzx ecx, word [esi + 0x34]
mov eax, dword [edi + 0x2c]
add eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [edi + 0x2c], eax
mov esi, dword [esi + 0x14]
cmp edx, dword [esp + 0x54]
jl 0x4974a0
jmp 0x4974c8
mov eax, dword [edi + 0x2c]
mov esi, dword [esp + 0x14]
inc eax
mov dword [edi + 0x2c], eax
mov dword [ecx + edx*4], eax
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x49754a
cmp dword [esi + 0x38], 0
je 0x4974ec
push dword [esi]
push str.UPSERT_not_implemented_for_virtual_table___s_
jmp 0x497074
cmp dword [esi + 0xc], 0
je 0x497505
push str.cannot_UPSERT_a_view
push edi
call fcn.0043e570
add esp, 8
jmp 0x49707d
mov edx, dword [eax]
mov ecx, edi
call fcn.0048a6c0
test eax, eax
jne 0x49707d
mov eax, dword [ebp + 0x14]
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [esi + 0x34], edx
cmp dword [eax], 0
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 0x14], esi
mov dword [eax + 0x1c], edx
mov dword [eax + 0x20], ecx
je 0x49754a
push eax
mov edx, esi
mov ecx, edi
call fcn.004b1150
add esp, 4
cmp byte [esp + 0x1a], 0
je 0x497578
push dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
mov edx, 0x25
mov ecx, esi
call fcn.00460700
mov dword [esp + 0x84], eax
add esp, 4
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x7c], eax
jmp 0x4975c6
cmp dword [esp + 0x38], 0
je 0x4975c6
push dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov edx, 0xe
mov ecx, esi
call fcn.00460700
mov dword [esp + 0x80], eax
add esp, 4
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x34]
test eax, eax
js 0x4975c6
mov ecx, dword [esp + 0x40]
mov edx, 0x4d
push dword [esp + 0x30]
add ecx, eax
push ecx
mov ecx, esi
call fcn.00460760
add esp, 8
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov esi, dword [esp + 0x4c]
xor eax, eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
cmp ax, word [edx + 0x2a]
jge 0x497763
mov dword [esp + 0x44], eax
nop dword [eax]
movsx eax, word [edx + 0x28]
cmp ecx, eax
jne 0x49760c
mov ecx, dword [esp + 0x10]
mov edx, 0x49
push esi
call fcn.00460700
jmp 0x497741
mov eax, dword [edx + 4]
add eax, dword [esp + 0x44]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x28], eax
movzx eax, word [eax + 0x10]
test al, 0x62
je 0x497671
inc dword [esp + 0x1c]
test al, 0x20
je 0x497631
dec esi
jmp 0x49774c
test al, 0x40
je 0x497657
test byte [esp + 0x84], 1
je 0x49774c
mov ecx, dword [esp + 0x10]
mov edx, 0x49
push esi
call fcn.00460700
jmp 0x497741
cmp dword [ebp + 0xc], 0
jne 0x497677
mov edx, dword [esp + 0x28]
mov ecx, edi
push esi
mov edx, dword [edx + 4]
call fcn.0047e0e0
jmp 0x497741
cmp dword [ebp + 0xc], 0
je 0x4976c2
mov edx, dword [ebp + 0xc]
xor eax, eax
mov edx, dword [edx + 4]
test edx, edx
jle 0x4976a4
mov ecx, dword [ebp + 0xc]
mov edi, dword [esp + 0x20]
mov ecx, dword [ecx]
add ecx, 4
nop
cmp dword [ecx], edi
je 0x49769c
inc eax
add ecx, 8
cmp eax, edx
jl 0x497690
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x20]
cmp eax, edx
jl 0x4976bc
mov edx, dword [esp + 0x28]
mov ecx, edi
push esi
mov edx, dword [edx + 4]
call fcn.0047e0e0
jmp 0x497741
mov edx, dword [esp + 0x14]
jmp 0x4976e0
cmp dword [esp + 0x24], 0
jne 0x4976da
mov edx, dword [esp + 0x28]
mov ecx, edi
push esi
mov edx, dword [edx + 4]
call fcn.0047e0e0
jmp 0x497741
mov eax, ecx
sub eax, dword [esp + 0x1c]
cmp byte [esp + 0x1a], 0
je 0x497700
mov ecx, dword [esp + 0x10]
mov edx, 0x59
push esi
push eax
push dword [esp + 0x44]
call fcn.00460630
add esp, 0xc
jmp 0x497744
cmp dword [esp + 0x38], 0
je 0x49772e
mov edi, dword [esp + 0x40]
cmp edi, dword [esp + 0x4c]
mov edi, dword [esp + 0x58]
je 0x49774c
add eax, dword [esp + 0x40]
mov edx, 0x4e
mov ecx, dword [esp + 0x10]
push esi
push eax
call fcn.00460760
add esp, 8
jmp 0x497744
lea edx, [eax + eax*4]
mov ecx, edi
mov eax, dword [esp + 0x5c]
push esi
mov edx, dword [eax + edx*4 + 4]
call fcn.0047e040
add esp, 4
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
movsx eax, word [edx + 0x2a]
inc ecx
add dword [esp + 0x44], 0x14
inc esi
mov dword [esp + 0x20], ecx
cmp ecx, eax
jl 0x4975f0
dec dword [edi + 0x38]
test byte [esp + 0x84], 1
mov eax, dword [edi + 0x38]
mov dword [esp + 0x40], eax
je 0x49790a
movsx edx, word [edx + 0x2a]
mov ecx, edi
inc edx
call fcn.0047fc70
mov esi, eax
mov eax, dword [esp + 0x34]
push esi
test eax, eax
jns 0x4977aa
mov ecx, dword [esp + 0x14]
mov edx, 0x45
push 0xffffffffffffffff
call fcn.00460760
add esp, 8
jmp 0x49784f
cmp byte [esp + 0x1e], 0
je 0x4977c9
mov ecx, dword [esp + 0x14]
mov edx, 0x59
push eax
push dword [esp + 0x44]
call fcn.00460630
add esp, 0xc
jmp 0x4977de
lea edx, [eax + eax*4]
mov ecx, edi
mov eax, dword [esp + 0x60]
mov edx, dword [eax + edx*4 + 4]
call fcn.0047e040
add esp, 4
mov ecx, dword [esp + 0x10]
mov edx, 0x33
push esi
call fcn.00460700
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, 0x45
mov dword [esp + 0x54], eax
push esi
push 0xffffffffffffffff
call fcn.00460760
mov edx, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x54]
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x2c], eax
test ecx, ecx
jns 0x49781e
lea ecx, [eax - 1]
mov eax, dword [edx]
cmp byte [eax + 0x51], 0
je 0x49782d
mov eax, 0x538670
jmp 0x497836
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x2c]
mov edx, 0xf
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x10]
push esi
call fcn.00460700
add esp, 4
mov eax, dword [esp + 0x14]
lea ecx, [esi + 1]
mov edx, 0x4d
movsx eax, word [eax + 0x2c]
dec eax
push eax
push ecx
push dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
call fcn.00460630
mov eax, dword [esp + 0x20]
add esp, 0xc
test byte [eax + 0x24], 0x60
je 0x49788e
push eax
lea edx, [esi + 1]
mov ecx, edi
call fcn.004965f0
mov eax, dword [esp + 0x18]
add esp, 4
cmp dword [esp + 0x88], 0
jne 0x4978aa
lea ecx, [esi + 1]
mov edx, eax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.004963f0
add esp, 4
mov edx, dword [esp + 0x14]
mov ecx, esi
push dword [esp + 0x40]
push dword [ebp + 0x10]
movsx eax, word [edx + 0x2a]
sub ecx, eax
dec ecx
push ecx
push edx
mov edx, dword [esp + 0x88]
mov ecx, edi
push 1
push 0
push 0x7d
call fcn.004ae310
mov eax, dword [esp + 0x30]
add esp, 0x1c
movsx eax, word [eax + 0x2a]
inc eax
cmp eax, 1
jne 0x4978ff
test esi, esi
je 0x49790a
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x49790a
movzx eax, al
mov dword [edi + eax*4 + 0x94], esi
inc byte [edi + 0x13]
jmp 0x49790a
cmp eax, dword [edi + 0x1c]
jle 0x49790a
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], esi
cmp dword [esp + 0x88], 0
mov esi, dword [esp + 0x14]
jne 0x497bce
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x49793d
push dword [esp + 0x68]
mov ecx, dword [esp + 0x14]
mov edx, 0x48
push 0
call fcn.00460760
mov ecx, dword [esi + 0x38]
add esp, 8
mov eax, dword [esp + 0x34]
test eax, eax
js 0x497a13
cmp byte [esp + 0x1a], 0
je 0x49796c
push dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, 0x59
push eax
push dword [esp + 0x44]
call fcn.00460630
add esp, 0xc
jmp 0x497999
cmp dword [esp + 0x38], 0
jne 0x497999
mov edx, dword [esp + 0x5c]
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*4 + 4]
cmp byte [edx], 0x77
jne 0x49798b
test ecx, ecx
je 0x497a1d
push dword [esp + 0x30]
mov ecx, edi
call fcn.0047e040
add esp, 4
cmp dword [esi + 0x38], 0
mov ecx, dword [esp + 0x10]
jne 0x4979e4
push dword [esp + 0x30]
mov edx, 0x33
call fcn.00460700
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, 0x78
mov esi, eax
push dword [esp + 0x70]
push dword [esp + 0x34]
push dword [esp + 0x50]
call fcn.00460630
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, esi
call fcn.00461220
mov esi, dword [esp + 0x14]
jmp 0x4979fc
mov eax, dword [ecx + 0x6c]
mov edx, 0x32
add eax, 2
push eax
push dword [esp + 0x34]
call fcn.00460760
add esp, 8
push dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, 0xf
call fcn.00460700
add esp, 4
jmp 0x497a5b
test ecx, ecx
jne 0x497a44
cmp byte [esp + 0x64], cl
jne 0x497a44
push dword [esp + 0x70]
mov ecx, dword [esp + 0x14]
mov edx, 0x78
push dword [esp + 0x34]
push dword [esp + 0x50]
call fcn.00460630
add esp, 0xc
mov dword [esp + 0x1c], 1
jmp 0x497a63
push dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, 0x48
push 0
call fcn.00460760
add esp, 8
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x70]
test eax, eax
jle 0x497a80
push dword [esp + 0x30]
mov ecx, dword [edi + 8]
mov edx, 0x97
push eax
call fcn.00460760
add esp, 8
test byte [esi + 0x24], 0x60
je 0x497a95
mov edx, dword [esp + 0x4c]
mov ecx, edi
push esi
call fcn.004965f0
add esp, 4
cmp dword [esi + 0x38], 0
je 0x497b2f
mov esi, dword [esi + 0x40]
test esi, esi
je 0x497abb
mov eax, dword [esp + 0x50]
nop word [eax + eax]
cmp dword [esi], eax
je 0x497abb
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x497ab0
mov edx, dword [esp + 0x14]
mov ecx, edi
call fcn.004b3700
mov ecx, dword [esp + 0x10]
mov edx, 0xa
push 0xfffffffffffffff4
push esi
mov esi, dword [esp + 0x1c]
push dword [esp + 0x70]
movsx eax, word [esi + 0x2a]
add eax, 2
push eax
push 1
call fcn.00460a10
mov eax, dword [esp + 0x24]
add esp, 0x14
mov eax, dword [eax + 0x6c]
test eax, eax
jle 0x497b1c
mov ecx, dword [ebp + 0x10]
cmp ecx, 0xb
movzx edx, cx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x64], 2
cmove edx, dword [esp + 0x64]
mov eax, dword [eax + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [edi + 0x74]
mov ecx, edi
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
jmp 0x497bce
mov ecx, dword [ebp + 0x14]
lea eax, [esp + 0x64]
push ecx
push 0
push eax
push dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
mov edx, esi
push dword [ebp + 0x10]
shr eax, 0x1f
mov ecx, edi
xor al, 1
movzx eax, al
push eax
push 0
push dword [esp + 0x84]
push dword [esp + 0x94]
push dword [esp + 0x6c]
push dword [esp + 0x88]
call fcn.00497e70
add esp, 0x2c
mov edx, esi
mov ecx, edi
push 0
push 0
push dword [esp + 0x70]
push 0
call fcn.00494de0
add esp, 0x10
cmp dword [esp + 0x64], 0
je 0x497ba3
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
je 0x497ba3
xor eax, eax
jmp 0x497ba8
mov eax, 1
push eax
push dword [esp + 0x20]
mov edx, esi
mov ecx, edi
push 0
push dword [esp + 0x6c]
push dword [esp + 0x78]
push dword [esp + 0x88]
push dword [esp + 0x60]
call fcn.0049a1b0
add esp, 0x1c
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x497bed
mov ecx, dword [esp + 0x10]
mov edx, 0x52
push 1
push eax
call fcn.00460760
add esp, 8
mov edx, dword [esp + 0x78]
test edx, edx
je 0x497c1b
push dword [esp + 0x40]
movsx eax, word [esi + 0x2a]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x54]
sub ecx, eax
sub ecx, 2
push ecx
push esi
push 2
push 0
push 0x7d
mov ecx, edi
call fcn.004ae310
add esp, 0x1c
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
not edx
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x497c3d
push edx
mov edx, esi
call fcn.00460e00
add esp, 4
jmp 0x497c46
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
cmp byte [esp + 0x1a], 0
je 0x497ca6
push dword [esp + 0x7c]
mov edx, 5
mov ecx, esi
push dword [esp + 0x40]
call fcn.00460760
mov eax, dword [esi]
add esp, 8
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x497c76
mov eax, 0x538670
jmp 0x497c8e
mov ecx, dword [esp + 0x80]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
push dword [esp + 0x3c]
mov dword [eax + 8], edx
mov ecx, esi
mov edx, 0x74
call fcn.00460700
add esp, 4
jmp 0x497cef
cmp dword [esp + 0x38], 0
je 0x497cef
mov edx, dword [esp + 0x7c]
mov ecx, esi
call fcn.004607d0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x497ccd
mov eax, 0x538670
mov dword [eax + 8], edx
jmp 0x497cef
mov ecx, dword [esp + 0x80]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x497cef
mov esi, dword [esp + 0x10]
cmp byte [edi + 0x12], 0
jne 0x497d08
cmp dword [edi + 0x78], 0
jne 0x497d08
cmp dword [edi + 0x70], 0
je 0x497d08
mov ecx, edi
call fcn.00496a10
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x49707d
push 1
push eax
mov edx, 0x50
mov ecx, esi
call fcn.00460760
add esp, 8
mov edx, 1
mov ecx, esi
call fcn.00462bd0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x49707d
mov esi, dword [esi + 0x74]
mov eax, 0x2400
test word [esi + 8], ax
jne 0x497d55
cmp dword [esi + 0x18], 0
je 0x497d5c
mov ecx, esi
call fcn.0045ed50
mov eax, 0xa02
mov dword [esi + 0x10], str.rows_inserted
mov dword [esi + 0x24], 0
mov dword [esi + 0xc], 0xd
mov word [esi + 8], ax
mov byte [esi + 0xa], 1
jmp 0x49707d
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], eax
jmp 0x497080
cmp ecx, dword [edi + 0x14c]
jae 0x497dcf
cmp ecx, dword [edi + 0x144]
jb 0x497db3
mov eax, dword [edi + 0x140]
mov dword [ecx], eax
mov dword [edi + 0x140], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp ecx, dword [edi + 0x148]
jb 0x497dcf
mov eax, dword [edi + 0x138]
mov dword [ecx], eax
mov dword [edi + 0x138], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push ecx
call fcn.0043abf0
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret