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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov eax, dword [0x57f0b4]
xor eax, esp
mov dword [esp + 0xc4], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
mov dword [esp + 0x68], edx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x38], edi
cmp dword [edi + 0x24], 0
mov ecx, dword [edi]
mov dword [esp + 0x48], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x4c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov byte [esp + 0x1e], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x6c], ecx
jne 0x476895
mov dword [esp + 0x28], 0
test eax, eax
je 0x475734
test dword [eax + 4], 0x200
je 0x475734
cmp dword [eax + 0x34], 0
jne 0x475734
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x70], edx
mov edx, eax
push 1
mov dword [eax + 0x1c], 0
call fcn.0047f570
add esp, 4
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x68]
mov ecx, edi
call fcn.0046d2d0
mov esi, eax
mov dword [esp + 0x3c], esi
test esi, esi
je 0x476891
mov ecx, dword [esi + 0x3c]
mov edx, 0xffff8000
mov dword [esp + 0x24], edx
test ecx, ecx
je 0x47577d
mov eax, dword [esp + 0x6c]
xor edx, edx
mov dword [esp + 0x24], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x47577d
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x475771
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x6c]
mov ecx, edx
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.004648a0
add esp, 0xc
test eax, eax
jne 0x476891
mov eax, dword [esi + 0x1c]
shr eax, 7
and eax, 0xffffff01
cmp dword [esi + 0x38], 0
mov dword [esp + 0x64], eax
jne 0x4757cd
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x4757d6
cmp dword [eax + 0x30], 0
je 0x4757d6
cmp byte [edi + 0x97], 0
je 0x4757e8
mov dword [esp + 0x54], 0
mov dword [esp + 0x78], 0
jmp 0x475812
lea eax, [esp + 0x9c]
mov edx, esi
push eax
push 0
push 0x7f
mov ecx, edi
call fcn.0048c360
mov dword [esp + 0x84], eax
add esp, 0xc
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x54], eax
mov al, byte [esi + 0x2b]
mov edx, esi
mov ecx, edi
mov byte [esp + 0x37], al
call fcn.00468d00
test eax, eax
jne 0x476891
push dword [esp + 0x54]
mov edx, esi
mov ecx, edi
call fcn.0046d440
add esp, 4
test eax, eax
jne 0x476891
mov ecx, edi
call fcn.00482840
mov dword [esp + 0x14], eax
test eax, eax
je 0x476891
cmp byte [edi + 0x12], 0
jne 0x475862
or dword [eax + 0x98], 0x10
cmp dword [esp + 0x48], 0
jne 0x475874
cmp dword [esp + 0x78], 0
jne 0x475874
xor edx, edx
jmp 0x475879
mov edx, 1
push dword [esp + 0x24]
mov ecx, edi
call fcn.0046be90
add esp, 4
cmp dword [esp + 0x18], 0
jne 0x4758b9
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4758b9
cmp dword [esp + 0x78], 0
jne 0x4758b9
push dword [esp + 0x24]
mov edx, esi
mov ecx, edi
push dword [ebp + 0x10]
push eax
call fcn.00479180
add esp, 0xc
test eax, eax
jne 0x476858
mov edx, dword [esp + 0x24]
mov ecx, edi
push esi
call fcn.00475410
mov ecx, dword [edi + 0x2c]
add esp, 4
mov dword [esp + 0x90], eax
lea eax, [ecx + 1]
mov edx, eax
mov dword [esp + 0x80], eax
movsx eax, word [esi + 0x22]
inc eax
mov dword [esp + 0x40], edx
add eax, ecx
mov dword [edi + 0x2c], eax
cmp byte [esi + 0x2b], 1
jne 0x4758fd
lea edx, [ecx + 2]
inc eax
mov dword [esp + 0x40], edx
mov dword [edi + 0x2c], eax
test dword [esi + 0x1c], 0x440
lea eax, [edx + 1]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
sete byte [esp + 0x1f]
test eax, eax
je 0x475a80
mov edx, dword [eax]
xor ecx, ecx
mov byte [eax + 4], 1
test edx, edx
jle 0x475944
mov edi, dword [esp + 0x18]
add eax, 0xc
nop
mov dword [eax], 0xffffffff
lea eax, [eax + 8]
mov edx, dword [edi]
inc ecx
cmp ecx, edx
jl 0x475930
mov edi, dword [esp + 0x38]
xor ecx, ecx
mov dword [esp + 0x20], ecx
test edx, edx
jle 0x475a80
movzx eax, word [esi + 0x22]
mov dword [esp + 0x2c], eax
nop word [eax + eax]
cwde
xor esi, esi
test eax, eax
jle 0x4759fb
mov eax, dword [esp + 0x3c]
shl ecx, 3
mov dword [esp + 0x60], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
nop dword [eax]
mov edx, dword [eax]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + ecx + 8]
call fcn.00421800
test eax, eax
je 0x4759b0
mov eax, dword [esp + 0x30]
inc esi
mov edx, dword [esp + 0x2c]
add eax, 0x10
movsx ecx, dx
cmp esi, ecx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x60]
jl 0x475980
jmp 0x4759f7
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx + 0xc], esi
xor ecx, ecx
cmp dword [esp + 0x20], esi
movzx eax, byte [esp + 0x1f]
cmove ecx, eax
movsx eax, word [edx + 0x20]
cmp esi, eax
mov byte [esp + 0x1f], cl
mov ecx, dword [esp + 0x20]
mov eax, esi
cmovne ecx, dword [esp + 0x44]
add eax, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [edx + 4]
test byte [ecx + eax*8 + 0xe], 0x60
jne 0x475bb1
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 0x22]
mov dword [esp + 0x30], eax
cwde
cmp esi, eax
jl 0x475a60
mov eax, dword [esp + 0x18]
mov edx, str._ROWID_
mov esi, dword [eax + ecx*8 + 8]
mov ecx, esi
call fcn.00421800
test eax, eax
je 0x475a48
mov edx, str.ROWID
mov ecx, esi
call fcn.00421800
test eax, eax
je 0x475a48
mov edx, 0x5708e4
mov ecx, esi
call fcn.00421800
test eax, eax
jne 0x475bc9
cmp byte [esp + 0x64], 0
jne 0x475bc9
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x44], ecx
mov byte [esp + 0x1f], 0
mov edx, dword [esp + 0x18]
inc ecx
mov eax, dword [esp + 0x30]
movzx eax, ax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
cmp ecx, dword [edx]
jl 0x475960
mov esi, dword [esp + 0x3c]
cmp dword [esp + 0x48], 0
je 0x475d66
mov eax, dword [esp + 0x14]
mov edx, 0xa
inc dword [edi + 0x2c]
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x60], eax
inc eax
push eax
push 0
push ecx
mov ecx, dword [esp + 0x20]
call fcn.0043fd40
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, edi
mov dword [esp + 0xa4], eax
xor eax, eax
cmp byte [esp + 0x1f], al
mov byte [esp + 0xa0], 0xd
cmovne eax, dword [esp + 0x5c]
mov dword [esp + 0xac], eax
movsx eax, word [esi + 0x22]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xa0]
push eax
mov dword [esp + 0xac], 0
mov dword [esp + 0xb8], 0
call fcn.00488180
mov ecx, dword [esp + 0xb0]
add esp, 4
mov dword [esp + 0x7c], ecx
test eax, eax
jne 0x476891
cmp dword [edi + 0x24], eax
jne 0x476891
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
call fcn.00440400
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x14]
call fcn.00440760
cmp dword [esp + 0x78], 0
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jne 0x475c8d
mov eax, dword [edi + 8]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x475b87
cmp dword [edi + 0x74], eax
jne 0x475b7c
mov eax, dword [edi]
test byte [eax + 0x50], 8
jne 0x475b7c
mov byte [edi + 0x17], 1
mov ecx, edi
call fcn.0043fb10
mov dword [esp + 0x28], eax
cmp byte [esi + 0x2b], 1
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x20], eax
jne 0x475be9
mov edx, dword [esi + 0x34]
test edx, edx
je 0x475beb
mov eax, dword [edi]
nop dword [eax]
cmp dword [edx], eax
je 0x475bab
mov edx, dword [edx + 0x18]
test edx, edx
jne 0x475ba0
mov eax, dword [esp + 0x20]
jmp 0x475beb
add esi, esi
push dword [ecx + esi*8]
push str.cannot_INSERT_into_generated_column___s_
push edi
call fcn.00421640
add esp, 0xc
jmp 0x476891
mov eax, dword [esp + 0x68]
push esi
add eax, 8
push eax
push str.table__S_has_no_column_named__s
push edi
call fcn.00421640
add esp, 0x10
mov byte [edi + 0x11], 1
jmp 0x476891
xor edx, edx
mov ecx, 1
mov dword [esp + 0x30], ecx
cmp eax, ecx
jle 0x475c79
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov al, byte [eax + 0x57]
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x20]
nop dword [eax]
dec eax
test ecx, ecx
cmovns eax, ecx
cmp byte [esp + 0x1f], 0
je 0x475c24
mov eax, 0x629608
jmp 0x475c31
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x68]
lea eax, [eax + ecx*4]
mov cl, byte [eax]
cmp cl, 0x70
jne 0x475c5e
mov ecx, dword [esp + 0x24]
cmp dword [eax + 0xc], ecx
jne 0x475c68
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 0x14]
je 0x475c8d
mov eax, dword [esi + 8]
test eax, eax
je 0x475c68
cmp ecx, dword [eax + 0x2c]
je 0x475c8d
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x475c50
jmp 0x475c68
cmp cl, 0xad
jne 0x475c68
cmp dword [eax + 0x10], edx
je 0x475c8d
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, eax
jl 0x475c10
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
jmp 0x475db8
mov edx, dword [edi + 0x28]
mov ecx, edi
mov byte [esp + 0x1e], 1
mov dword [esp + 0x4c], edx
lea eax, [edx + 1]
mov dword [edi + 0x28], eax
call fcn.0045eb00
mov ecx, dword [esp + 0x38]
mov edi, eax
call fcn.0045eb00
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
push edx
mov edx, 0x76
mov dword [esp + 0x28], eax
call fcn.0043fe70
mov eax, dword [esp + 0xac]
mov edx, 0xb
mov ecx, dword [esp + 0x1c]
push eax
mov dword [esp + 0x34], eax
call fcn.0043fe10
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, 0x61
mov esi, eax
push edi
push dword [esp + 0x30]
push dword [esp + 0x84]
call fcn.0043fd40
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, 0x7f
push dword [esp + 0x20]
push dword [esp + 0x50]
call fcn.0043fe70
push dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov edx, 0x80
push edi
push dword [esp + 0x5c]
call fcn.0043fd40
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov edx, esi
call fcn.0043fee0
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.00440760
mov edx, edi
mov edi, dword [esp + 0x38]
mov ecx, edi
call fcn.0045eb20
mov edx, dword [esp + 0x20]
call fcn.0045eb20
mov edx, dword [esp + 0x2c]
jmp 0x475db8
mov ecx, dword [esp + 0x70]
xorps xmm0, xmm0
movaps xmmword [esp + 0xa0], xmm0
movaps xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xa0], edi
mov dword [esp + 0x4c], 0xffffffff
test ecx, ecx
je 0x475db2
mov eax, dword [ecx]
mov edx, ecx
lea ecx, [esp + 0xa0]
mov dword [esp + 0x2c], eax
call fcn.00455a10
test eax, eax
jne 0x476891
mov edx, dword [esp + 0x2c]
jmp 0x475db8
xor edx, edx
mov dword [esp + 0x2c], edx
mov esi, dword [esp + 0x18]
test esi, esi
jne 0x475e7d
mov esi, dword [esp + 0x3c]
test edx, edx
jle 0x475e9c
movsx eax, word [esi + 0x20]
mov dword [esp + 0x44], eax
test eax, eax
js 0x475e1f
test byte [esi + 0x1c], 0x60
je 0x475e1f
lea edx, [eax - 1]
test edx, edx
js 0x475e1b
mov eax, dword [esi + 4]
mov ecx, edx
add eax, 0xe
shl ecx, 4
add ecx, eax
mov eax, dword [esp + 0x44]
nop word [eax + eax]
test byte [ecx], 0x60
lea eax, [eax - 1]
lea ecx, [ecx - 0x10]
cmove eax, dword [esp + 0x44]
sub edx, 1
mov dword [esp + 0x44], eax
jns 0x475e00
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x2c]
test byte [esi + 0x1c], 0x62
je 0x475e54
movsx edx, word [esi + 0x22]
test edx, edx
jle 0x475e50
mov ecx, dword [esi + 4]
add ecx, 0xe
xor edi, edi
test byte [ecx], 0x62
lea eax, [edi + 1]
lea ecx, [ecx + 0x10]
cmove eax, edi
mov edi, eax
sub edx, 1
jne 0x475e35
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
movsx eax, word [esi + 0x22]
sub eax, dword [esp + 0x50]
cmp edx, eax
je 0x475e9c
push edx
push eax
mov eax, dword [esp + 0x70]
add eax, 8
push eax
push str.table__S_has__d_columns_but__d_values_were_supplied
push edi
call fcn.00421640
add esp, 0x14
jmp 0x476891
mov eax, dword [esi]
cmp edx, eax
je 0x475e98
push eax
push edx
push str._d_values_for__d_columns
push edi
call fcn.00421640
add esp, 0x10
jmp 0x476895
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x475ee2
cmp byte [edi + 0x12], 0
jne 0x475ee2
cmp dword [edi + 0x78], 0
jne 0x475ee2
cmp byte [edi + 0x95], 0
jne 0x475ee2
inc dword [edi + 0x2c]
mov edx, 0x47
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 0
mov dword [esp + 0xa0], eax
call fcn.0043fe70
add esp, 8
cmp byte [esp + 0x37], 2
je 0x475f7a
lea eax, [esp + 0x94]
mov edx, esi
push eax
lea eax, [esp + 0x5c]
mov ecx, edi
push eax
push 0
push 0xffffffffffffffff
push 0
push 0x71
call fcn.00478e40
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x68], eax
push 0
lea eax, [eax*4 + 8]
push eax
call fcn.0041e1f0
mov ecx, eax
add esp, 0x20
mov dword [esp + 0x74], ecx
test ecx, ecx
je 0x476891
mov eax, dword [esi + 8]
xor edx, edx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x50], edx
jle 0x475f70
mov esi, 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 + 0x74]
mov dword [edi + 0x2c], eax
mov esi, dword [esi + 0x14]
cmp edx, dword [esp + 0x50]
jl 0x475f47
mov esi, dword [esp + 0x3c]
jmp 0x475f73
mov eax, dword [edi + 0x2c]
inc eax
mov dword [edi + 0x2c], eax
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x476025
mov al, byte [esi + 0x2b]
cmp al, 1
jne 0x475fa5
push dword [esi]
push str.UPSERT_not_implemented_for_virtual_table___s_
push edi
call fcn.00421640
add esp, 0xc
jmp 0x476891
cmp al, 2
jne 0x475fbc
push str.cannot_UPSERT_a_view
push edi
call fcn.00421640
add esp, 8
jmp 0x476891
mov edx, dword [ecx]
mov ecx, edi
call fcn.0046a0a0
test eax, eax
jne 0x476891
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x5c]
mov dword [edx + 0x34], ecx
cmp dword [esi], 0
mov edi, dword [esp + 0x94]
mov dword [esi + 0x2c], edi
mov edi, dword [esp + 0x38]
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], ecx
je 0x47601e
push esi
mov ecx, edi
call fcn.00490bb0
add esp, 4
test eax, eax
jne 0x476891
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x68]
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x475fe3
cmp byte [esp + 0x1e], 0
je 0x476056
push dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
mov edx, 0x23
mov ecx, esi
call fcn.0043fe10
mov dword [esp + 0x8c], eax
add esp, 4
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x84], eax
jmp 0x4760a4
cmp dword [esp + 0x48], 0
je 0x4760a4
push dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov edx, 0xb
mov ecx, esi
call fcn.0043fe10
mov dword [esp + 0x88], eax
add esp, 4
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x44]
test eax, eax
js 0x4760a4
mov ecx, dword [esp + 0x7c]
mov edx, 0x50
push dword [esp + 0x40]
add ecx, eax
push ecx
mov ecx, esi
call fcn.0043fe70
add esp, 8
mov esi, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [esp + 0x5c]
xor eax, eax
mov dword [esp + 0x60], 0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
cmp ax, word [esi + 0x22]
jge 0x4762b0
mov dword [esp + 0x30], eax
nop
movsx eax, word [esi + 0x20]
cmp edx, eax
jne 0x4760ec
push ecx
mov ecx, dword [esp + 0x18]
mov edx, 0x4c
call fcn.0043fe10
jmp 0x47628a
mov eax, dword [esi + 4]
add eax, dword [esp + 0x30]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x28], eax
movzx eax, word [eax + 0xe]
test al, 0x62
je 0x476155
inc dword [esp + 0x60]
test al, 0x20
je 0x476111
dec ecx
jmp 0x476295
test al, 0x40
je 0x476134
test byte [esp + 0x54], 1
je 0x476295
push ecx
mov ecx, dword [esp + 0x18]
mov edx, 0x4c
call fcn.0043fe10
jmp 0x47628a
cmp dword [esp + 0x18], 0
jne 0x476160
mov edx, dword [esp + 0x28]
push ecx
mov ecx, esi
call fcn.00465b50
mov edx, eax
mov ecx, edi
call fcn.0045cea0
jmp 0x47628a
cmp dword [esp + 0x18], 0
je 0x476205
mov edx, dword [esp + 0x18]
xor eax, eax
mov edx, dword [edx]
test edx, edx
jle 0x47618b
mov ecx, dword [esp + 0x18]
add ecx, 0xc
mov edi, dword [esp + 0x20]
cmp dword [ecx], edi
mov edi, dword [esp + 0x38]
je 0x4761a7
inc eax
add ecx, 8
cmp eax, edx
jl 0x476173
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
movzx eax, word [edx + 0xc]
test ax, ax
jne 0x4761b5
push ecx
xor edx, edx
mov ecx, edi
call fcn.0045cea0
jmp 0x47628a
cmp eax, edx
jge 0x476187
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
jmp 0x476229
cmp byte [esi + 0x2b], 0
je 0x4761ca
push ecx
xor edx, edx
mov ecx, edi
call fcn.0045cea0
jmp 0x47628a
mov edx, dword [esi + 0x34]
test edx, edx
jne 0x4761de
push ecx
mov ecx, edi
call fcn.0045cea0
jmp 0x47628a
cmp dword [edx], eax
jge 0x4761f1
push ecx
xor edx, edx
mov ecx, edi
call fcn.0045cea0
jmp 0x47628a
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*4 - 0xc]
push ecx
mov ecx, edi
call fcn.0045cea0
jmp 0x47628a
cmp dword [esp + 0x2c], 0
jne 0x476223
mov edx, dword [esp + 0x28]
push ecx
mov ecx, esi
call fcn.00465b50
mov edx, eax
mov ecx, edi
call fcn.0045cea0
jmp 0x47628a
mov eax, edx
sub eax, dword [esp + 0x60]
cmp byte [esp + 0x1e], 0
je 0x476249
push ecx
mov ecx, dword [esp + 0x18]
mov edx, 0x5e
push eax
push dword [esp + 0x54]
call fcn.0043fd40
add esp, 0xc
jmp 0x47628d
cmp dword [esp + 0x48], 0
je 0x476277
mov esi, dword [esp + 0x7c]
cmp esi, dword [esp + 0x5c]
mov esi, dword [esp + 0x3c]
je 0x476295
add eax, dword [esp + 0x7c]
mov edx, 0x51
push ecx
mov ecx, dword [esp + 0x18]
push eax
call fcn.0043fe70
add esp, 8
jmp 0x47628d
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x70]
push ecx
mov ecx, edi
mov edx, dword [eax + edx*4 + 8]
call fcn.0045ce00
add esp, 4
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
movsx eax, word [esi + 0x22]
inc edx
add dword [esp + 0x30], 0x10
inc ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
cmp edx, eax
jl 0x4760d0
dec dword [edi + 0x38]
test byte [esp + 0x54], 1
mov eax, dword [edi + 0x38]
mov dword [esp + 0x28], eax
je 0x476455
movsx edx, word [esi + 0x22]
mov ecx, edi
inc edx
call fcn.0045eb40
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x38], eax
push eax
test ecx, ecx
jns 0x4762f6
mov ecx, dword [esp + 0x18]
mov edx, 0x47
push 0xffffffffffffffff
call fcn.0043fe70
add esp, 8
jmp 0x4763a0
cmp byte [esp + 0x22], 0
je 0x476315
push ecx
push dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
mov edx, 0x5e
call fcn.0043fd40
add esp, 0xc
jmp 0x47632a
mov eax, dword [esp + 0x74]
lea edx, [ecx + ecx*4]
mov ecx, edi
mov edx, dword [eax + edx*4 + 8]
call fcn.0045ce00
add esp, 4
push dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
mov edx, 0x33
call fcn.0043fe10
mov ecx, dword [esp + 0x18]
add esp, 4
mov edx, 0x47
mov dword [esp + 0x50], eax
push dword [esp + 0x38]
push 0xffffffffffffffff
call fcn.0043fe70
mov eax, dword [esp + 0x1c]
add esp, 8
mov ecx, dword [esp + 0x50]
mov edx, dword [eax + 0x6c]
test ecx, ecx
jns 0x47636c
lea ecx, [edx - 1]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
je 0x47637b
mov eax, 0x629608
jmp 0x476388
mov eax, dword [esp + 0x14]
lea ecx, [ecx + ecx*4]
mov eax, dword [eax + 0x68]
lea eax, [eax + ecx*4]
push dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], edx
mov edx, 0xc
call fcn.0043fe10
add esp, 4
movsx eax, word [esi + 0x24]
mov edx, 0x50
mov ecx, dword [esp + 0x38]
dec eax
inc ecx
push eax
push ecx
push dword [esp + 0x64]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x20]
call fcn.0043fd40
add esp, 0xc
test byte [esi + 0x1c], 0x60
je 0x4763da
mov edx, dword [esp + 0x50]
mov ecx, edi
push esi
call fcn.004751f0
add esp, 4
cmp byte [esp + 0x37], 2
je 0x4763f3
push dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov edx, esi
call fcn.00475020
add esp, 4
push dword [esp + 0x28]
movsx eax, word [esi + 0x22]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x80]
sub ecx, eax
dec ecx
push ecx
push esi
push 1
push 0
push 0x7f
mov ecx, edi
call fcn.0048d3a0
movsx eax, word [esi + 0x22]
add esp, 0x1c
inc eax
cmp eax, 1
jne 0x476446
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x476455
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x476455
movzx eax, al
mov dword [edi + eax*4 + 0x98], ecx
inc byte [edi + 0x13]
jmp 0x476455
cmp eax, dword [edi + 0x1c]
jle 0x476455
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x20], eax
cmp byte [esp + 0x37], 2
je 0x476735
mov cl, byte [esi + 0x2b]
cmp cl, 1
jne 0x476485
push dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
mov edx, 0x4b
push 0
call fcn.0043fe70
mov cl, byte [esi + 0x2b]
add esp, 8
mov eax, dword [esp + 0x44]
test eax, eax
js 0x47655f
cmp byte [esp + 0x1e], 0
je 0x4764b4
push dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov edx, 0x5e
push eax
push dword [esp + 0x54]
call fcn.0043fd40
add esp, 0xc
jmp 0x4764e2
cmp dword [esp + 0x48], 0
jne 0x4764e2
mov edx, dword [esp + 0x70]
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*4 + 8]
cmp byte [edx], 0x79
jne 0x4764d4
cmp cl, 1
jne 0x47656b
push dword [esp + 0x40]
mov ecx, edi
call fcn.0045ce00
add esp, 4
cmp byte [esi + 0x2b], 1
mov ecx, dword [esp + 0x14]
je 0x476530
push dword [esp + 0x40]
mov edx, 0x33
call fcn.0043fe10
mov ecx, dword [esp + 0x18]
add esp, 4
mov edx, 0x7f
mov esi, eax
push dword [esp + 0x90]
push dword [esp + 0x44]
push dword [esp + 0x60]
call fcn.0043fd40
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, esi
call fcn.00440760
mov esi, dword [esp + 0x3c]
jmp 0x476548
mov eax, dword [ecx + 0x6c]
mov edx, 0x32
add eax, 2
push eax
push dword [esp + 0x44]
call fcn.0043fe70
add esp, 8
push dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov edx, 0xc
call fcn.0043fe10
add esp, 4
jmp 0x4765ac
cmp cl, 1
je 0x476595
cmp byte [esp + 0x64], 0
jne 0x476595
push dword [esp + 0x90]
mov ecx, dword [esp + 0x18]
mov edx, 0x7f
push dword [esp + 0x44]
push dword [esp + 0x60]
call fcn.0043fd40
add esp, 0xc
mov dword [esp + 0x54], 1
jmp 0x4765b4
push dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov edx, 0x4b
push 0
call fcn.0043fe70
add esp, 8
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x4765d4
push dword [esp + 0x40]
mov ecx, dword [edi + 8]
mov edx, 0x9f
push eax
call fcn.0043fe70
add esp, 8
test byte [esi + 0x1c], 0x60
je 0x4765e9
mov edx, dword [esp + 0x5c]
mov ecx, edi
push esi
call fcn.004751f0
add esp, 4
cmp byte [esi + 0x2b], 1
jne 0x476682
mov esi, dword [esi + 0x34]
test esi, esi
je 0x47660b
mov eax, dword [esp + 0x6c]
nop
cmp dword [esi], eax
je 0x47660b
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x476600
mov edx, dword [esp + 0x3c]
mov ecx, edi
call fcn.00493090
mov ecx, dword [esp + 0x14]
mov edx, 7
push 0xfffffffffffffff5
push esi
mov esi, dword [esp + 0x44]
push dword [esp + 0x88]
movsx eax, word [esi + 0x22]
add eax, 2
push eax
push 1
call fcn.00440100
mov eax, dword [esp + 0x28]
add esp, 0x14
mov eax, dword [eax + 0x6c]
test eax, eax
jle 0x47666f
mov ecx, dword [ebp + 0x10]
cmp ecx, 0xb
movzx edx, cx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
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 0x476735
push dword [esp + 0x8c]
lea eax, [esp + 0x68]
mov dword [esp + 0x68], 0
push 0
push eax
push dword [esp + 0x34]
mov eax, dword [esp + 0x54]
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 + 0x9c]
push dword [esp + 0xb4]
push dword [esp + 0x7c]
push dword [esp + 0x9c]
call fcn.00476950
add esp, 0x2c
mov edx, esi
mov ecx, edi
push 0
push 0
push dword [esp + 0x88]
push 0
call fcn.00473ba0
add esp, 0x10
cmp dword [esp + 0x64], 0
je 0x476704
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xe0], 0
je 0x476704
xor eax, eax
jmp 0x476709
mov eax, 1
push eax
push dword [esp + 0x58]
mov edx, esi
mov ecx, edi
push 0
push dword [esp + 0x80]
push dword [esp + 0x90]
push dword [esp + 0xa8]
push dword [esp + 0x70]
call fcn.00478c20
add esp, 0x1c
mov eax, dword [esp + 0x98]
test eax, eax
je 0x476754
mov ecx, dword [esp + 0x14]
mov edx, 0x56
push 1
push eax
call fcn.0043fe70
add esp, 8
mov edx, dword [esp + 0x78]
test edx, edx
je 0x476782
push dword [esp + 0x28]
movsx eax, word [esi + 0x22]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x64]
sub ecx, eax
sub ecx, 2
push ecx
push esi
push 2
push 0
push 0x7f
mov ecx, edi
call fcn.0048d3a0
add esp, 0x1c
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
not edx
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4767a4
push edx
mov edx, esi
call fcn.00440470
add esp, 4
jmp 0x4767ad
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
cmp byte [esp + 0x1e], 0
je 0x476810
push dword [esp + 0x84]
mov edx, 0x26
mov ecx, esi
push dword [esp + 0x50]
call fcn.0043fe70
mov eax, dword [esi]
add esp, 8
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4767e0
mov eax, 0x629608
jmp 0x4767f8
mov ecx, dword [esp + 0x88]
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 + 0x4c]
mov dword [eax + 8], edx
mov ecx, esi
mov edx, 0x7a
call fcn.0043fe10
add esp, 4
jmp 0x47685c
cmp dword [esp + 0x48], 0
je 0x47685c
mov edx, dword [esp + 0x84]
mov ecx, esi
call fcn.0043fee0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x47683a
mov eax, 0x629608
mov dword [eax + 8], edx
jmp 0x47685c
mov ecx, dword [esp + 0x88]
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 0x47685c
mov esi, dword [esp + 0x14]
cmp byte [edi + 0x12], 0
jne 0x476875
cmp dword [edi + 0x78], 0
jne 0x476875
cmp dword [edi + 0x70], 0
je 0x476875
mov ecx, edi
call fcn.004754e0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x476891
push str.rows_inserted
mov edx, eax
mov ecx, esi
call fcn.0046d360
add esp, 4
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x6c]
mov ecx, edi
mov edx, dword [esp + 0x68]
call fcn.0046b5b0
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4768b5
mov edx, eax
mov ecx, edi
call fcn.00458310
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4768c9
mov edx, eax
mov ecx, edi
call fcn.004909c0
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4768df
push 1
mov edx, eax
mov ecx, edi
call fcn.0047f570
add esp, 4
mov edx, esi
mov ecx, edi
call fcn.0046b210
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4768f9
mov edx, eax
mov ecx, edi
call fcn.0041def0
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
xor ecx, esp
call fcn.00518690
mov esp, ebp
pop ebp
ret