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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
push ebx
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx]
push esi
xor esi, esi
cmp dword [ebx + 0x24], esi
push edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x44], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x64], esi
mov byte [esp + 0x13], 0
mov byte [esp + 0x1a], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x34], ecx
jne 0x470c27
mov eax, dword [ebp + 0x10]
cmp eax, esi
mov dword [esp + 0x88], esi
je 0x46fc32
test dword [eax + 4], 0x200
je 0x46fc32
cmp dword [eax + 0x34], esi
jne 0x46fc32
mov edx, dword [eax + 0x1c]
push 1
push eax
push ecx
mov dword [esp + 0x58], edx
mov dword [eax + 0x1c], esi
call fcn.0047a490
add esp, 0xc
mov dword [ebp + 0x10], esi
mov ecx, dword [ebp + 0xc]
mov eax, ebx
call fcn.00467fc0
cmp eax, esi
mov dword [esp + 0xc], eax
je 0x470c27
mov esi, dword [esp + 0x34]
mov edi, eax
mov ecx, dword [edi + 0x3c]
test ecx, ecx
mov edx, 0xffff8000
mov dword [esp + 0x20], edx
je 0x46fc7e
mov eax, dword [esi + 0x10]
xor edx, edx
cmp dword [eax + 0xc], ecx
mov dword [esp + 0x20], edx
je 0x46fc7e
add eax, 0xc
nop
add eax, 0x10
add edx, 1
cmp dword [eax], ecx
jne 0x46fc70
mov dword [esp + 0x20], edx
mov ecx, dword [esi + 0x10]
mov eax, dword [edi]
shl edx, 4
mov edx, dword [edx + ecx]
push edx
push 0
push eax
push 0x12
mov eax, ebx
call fcn.0045f990
add esp, 0x10
test eax, eax
jne 0x470c27
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x1c]
shr eax, 7
and al, 1
push 0
push 0x7f
lea esi, [esp + 0x7c]
mov edx, edi
mov ecx, ebx
mov byte [esp + 0x3b], al
call fcn.00486f90
xor ecx, ecx
mov dword [esp + 0x64], eax
mov al, byte [edi + 0x2b]
add esp, 8
cmp al, 2
sete cl
cmp al, 1
mov dword [esp + 0x54], ecx
je 0x46fce2
cmp word [edi + 0x22], 0
jg 0x46fcf5
push edi
mov eax, ebx
call fcn.00463ad0
add esp, 4
test eax, eax
jne 0x470c27
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0xc]
push edx
mov eax, ebx
call fcn.00468160
add esp, 4
test eax, eax
jne 0x470c27
mov eax, ebx
call fcn.0047d640
mov edi, eax
test edi, edi
mov dword [esp + 0x6c], edi
je 0x470c27
cmp byte [ebx + 0x12], 0
jne 0x46fd32
or dword [edi + 0x98], 0x10
cmp dword [ebp + 0x10], 0
jne 0x46fd43
cmp dword [esp + 0x5c], 0
jne 0x46fd43
xor eax, eax
jmp 0x46fd48
mov eax, 1
mov ecx, dword [esp + 0x20]
push eax
mov eax, ebx
call fcn.00466b50
mov esi, dword [ebp + 0x14]
add esp, 4
test esi, esi
jne 0x46fd8b
cmp dword [ebp + 0x10], esi
je 0x46fd8b
cmp dword [esp + 0x5c], esi
jne 0x46fd8b
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0xc]
push eax
mov eax, dword [ebp + 0x10]
push ecx
push edx
push ebx
call fcn.00473400
add esp, 0x10
test eax, eax
jne 0x470bf6
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
push eax
push ecx
push ebx
call fcn.0046f7f0
mov edx, dword [esp + 0x18]
movsx edx, word [edx + 0x22]
mov dword [esp + 0x6c], eax
mov eax, dword [ebx + 0x2c]
lea ecx, [eax + 1]
lea eax, [edx + eax + 1]
mov edx, dword [esp + 0x18]
add esp, 0xc
mov dword [ebx + 0x2c], eax
cmp byte [edx + 0x2b], 1
mov dword [esp + 0x78], ecx
mov dword [esp + 0x3c], ecx
jne 0x46fdd6
add ecx, 1
add eax, 1
mov dword [esp + 0x3c], ecx
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc]
add eax, 1
test dword [ecx + 0x1c], 0x440
mov dword [esp + 0x48], eax
sete byte [esp + 0x1b]
test esi, esi
je 0x46ff46
xor eax, eax
cmp dword [esi], eax
mov byte [esi + 4], 1
jle 0x46fe20
lea ecx, [esi + 0xc]
jmp 0x46fe10
mov dword [ecx], 0xffffffff
add eax, 1
add ecx, 8
cmp eax, dword [esi]
jl 0x46fe10
cmp dword [esi], 0
mov dword [esp + 0x24], 0
jle 0x46ff46
add esi, 8
mov dword [esp + 0x14], esi
jmp 0x46fe40
mov ecx, dword [esp + 0xc]
movsx eax, word [ecx + 0x22]
xor esi, esi
test eax, eax
mov dword [esp + 0x1c], eax
jle 0x46fecd
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x80], eax
mov dword [esp + 0x2c], ecx
jmp 0x46fe70
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov edx, dword [esp + 0x80]
call fcn.0041cd90
test eax, eax
je 0x46fe96
add dword [esp + 0x2c], 0x10
add esi, 1
cmp esi, dword [esp + 0x1c]
jl 0x46fe70
jmp 0x46fecd
mov ecx, dword [esp + 0x24]
cmp ecx, esi
mov eax, dword [esp + 0x14]
mov dword [eax + 4], esi
je 0x46feaa
mov byte [esp + 0x1b], 0
mov eax, dword [esp + 0xc]
movsx edx, word [eax + 0x20]
cmp esi, edx
jne 0x46feba
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov ecx, esi
shl ecx, 4
test byte [ecx + edx + 0xe], 0x60
jne 0x4700fd
mov eax, dword [esp + 0xc]
movsx ecx, word [eax + 0x22]
cmp esi, ecx
jl 0x46ff2b
mov edx, dword [esp + 0x14]
mov esi, dword [edx]
mov eax, str._ROWID_
mov edx, esi
call fcn.0041cd90
test eax, eax
je 0x46ff13
mov eax, str.ROWID
mov edx, esi
call fcn.0041cd90
test eax, eax
je 0x46ff13
mov eax, 0x4c82f8
mov edx, esi
call fcn.0041cd90
test eax, eax
jne 0x47011c
cmp byte [esp + 0x33], 0
jne 0x47011c
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov byte [esp + 0x1b], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x14]
add dword [esp + 0x14], 8
add eax, 1
cmp eax, dword [ecx]
mov dword [esp + 0x24], eax
jl 0x46fe40
cmp dword [ebp + 0x10], 0
je 0x470147
add dword [ebx + 0x2c], 1
mov eax, dword [edi + 0x6c]
mov esi, dword [ebx + 0x2c]
add eax, 1
push eax
push 0
push esi
push 0xb
push edi
mov dword [esp + 0x30], eax
call fcn.0043c3f0
xor eax, eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xac], eax
mov al, byte [esp + 0x2f]
add esp, 0x14
neg al
lea edx, [esp + 0x84]
push edx
mov byte [esp + 0x88], 0xd
mov dword [esp + 0x8c], esi
sbb eax, eax
and eax, dword [esp + 0x4c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x10]
movsx ecx, word [eax + 0x22]
mov eax, dword [ebp + 0x10]
push eax
push ebx
mov dword [esp + 0xa0], ecx
call fcn.004832b0
mov ecx, dword [esp + 0x9c]
add esp, 0xc
test eax, eax
mov dword [esp + 0x38], ecx
jne 0x470c27
cmp dword [ebx + 0x24], eax
jne 0x470c27
mov eax, esi
mov esi, edi
call fcn.0043c9d0
mov edx, dword [esp + 0x1c]
add edx, 0xffffffff
mov eax, edi
call fcn.0043cd40
cmp dword [esp + 0x5c], 0
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x1c]
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
jne 0x470028
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
push esi
push edx
mov eax, ebx
call fcn.0046f460
add esp, 8
test eax, eax
je 0x4701c7
mov esi, dword [ebx + 0x28]
lea eax, [esi + 1]
mov dword [ebx + 0x28], eax
mov eax, ebx
mov byte [esp + 0x13], 1
mov dword [esp + 0x44], esi
call fcn.00459eb0
mov dword [esp + 0x2c], eax
mov eax, ebx
call fcn.00459eb0
mov ecx, dword [esp + 0x14]
push 0
push ecx
push esi
push 0x76
push edi
mov dword [esp + 0x34], eax
call fcn.0043c3f0
mov edx, dword [esp + 0x9c]
add esp, 0x14
push 0
push 0
push edx
push 0xc
push edi
call fcn.0043c3f0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xa4]
add esp, 0x14
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
push eax
push ecx
push edx
push 0x61
push edi
call fcn.0043c3f0
mov eax, dword [esp + 0x34]
add esp, 0x14
push 0
push eax
push esi
push 0x7f
push edi
call fcn.0043c3f0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
add esp, 0x14
push ecx
push edx
push esi
push 0x80
push edi
call fcn.0043c3f0
mov esi, dword [esp + 0x30]
add esp, 0x14
push 0
push esi
push 0
push 9
push edi
call fcn.0043c3f0
add esp, 0x14
mov edx, esi
mov eax, edi
call fcn.0043cd40
mov edx, dword [esp + 0x2c]
mov eax, ebx
call fcn.00459ed0
mov edx, dword [esp + 0x20]
call fcn.00459ed0
jmp 0x4701c3
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
shl esi, 4
mov ecx, dword [esi + eax]
push ecx
push str.cannot_INSERT_into_generated_column___s_
mov esi, ebx
call fcn.0041cbf0
jmp 0x470c24
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x24]
mov ecx, dword [edx + eax*8 + 8]
mov edx, dword [ebp + 0xc]
push ecx
add edx, 8
push edx
push str.table__S_has_no_column_named__s
mov esi, ebx
call fcn.0041cbf0
add esp, 0xc
mov byte [ebx + 0x11], 1
jmp 0x470c27
xor eax, eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x4c]
test eax, eax
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x44], 0xffffffff
je 0x4701bb
mov ecx, dword [eax]
push eax
lea ebx, [esp + 0xa4]
mov dword [esp + 0x18], ecx
call fcn.00451340
add esp, 4
test eax, eax
jne 0x470c27
mov ebx, dword [ebp + 8]
jmp 0x4701c3
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0xc]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x470276
cmp dword [esp + 0x14], eax
jle 0x470298
movsx edx, word [esi + 0x20]
test edx, edx
mov dword [esp + 0x28], edx
jl 0x47021b
test byte [esi + 0x1c], 0x60
je 0x47021b
lea eax, [edx - 1]
test eax, eax
jl 0x47021b
mov esi, dword [esi + 4]
mov ecx, eax
shl ecx, 4
lea ecx, [ecx + esi + 0xe]
test byte [ecx], 0x60
je 0x470209
sub edx, 1
sub eax, 1
sub ecx, 0x10
test eax, eax
jge 0x470201
mov esi, dword [esp + 0xc]
mov dword [esp + 0x28], edx
test byte [esi + 0x1c], 0x62
je 0x470245
movsx ecx, word [esi + 0x22]
test ecx, ecx
jle 0x470245
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x58]
add eax, 0xe
test byte [eax], 0x62
je 0x47023b
add edx, 1
add eax, 0x10
sub ecx, 1
jne 0x470233
jmp 0x470249
mov edx, dword [esp + 0x58]
movsx eax, word [esi + 0x22]
sub eax, edx
cmp dword [esp + 0x14], eax
je 0x470298
mov edx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [ebp + 0xc]
add eax, 8
push eax
push str.table__S_has__d_columns_but__d_values_were_supplied
mov esi, ebx
call fcn.0041cbf0
add esp, 0x10
jmp 0x470c27
mov eax, dword [eax]
cmp dword [esp + 0x14], eax
je 0x470298
mov ecx, dword [esp + 0x14]
push eax
push ecx
push str._d_values_for__d_columns
mov esi, ebx
call fcn.0041cbf0
add esp, 0xc
jmp 0x470c27
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 0x24]
and ecx, 1
xor eax, eax
or eax, ecx
je 0x4702db
cmp byte [ebx + 0x12], 0
jne 0x4702db
cmp dword [ebx + 0x7c], 0
jne 0x4702db
cmp byte [ebx + 0x9d], 0
jne 0x4702db
add dword [ebx + 0x2c], 1
mov eax, dword [ebx + 0x2c]
push 0
push eax
push 0
push 0x47
push edi
mov dword [esp + 0x90], eax
call fcn.0043c3f0
add esp, 0x14
cmp dword [esp + 0x54], 0
jne 0x47036f
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x44]
push ecx
push 0
push 0xffffffffffffffff
push 0
push 0x71
push edx
push ebx
call fcn.00473150
mov ecx, dword [esp + 0x54]
mov esi, eax
lea eax, [esi*4 + 8]
push 0
push eax
mov dword [esp + 0x44], esi
call fcn.00419650
add esp, 0x28
test eax, eax
mov dword [esp + 0x50], eax
je 0x470c27
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 8]
xor eax, eax
test esi, esi
jle 0x470361
jmp 0x470340
add dword [ebx + 0x2c], 1
mov edx, dword [ebx + 0x2c]
mov esi, dword [esp + 0x50]
mov dword [esi + eax*4], edx
movzx edx, word [ecx + 0x34]
add dword [ebx + 0x2c], edx
mov ecx, dword [ecx + 0x14]
add eax, 1
cmp eax, dword [esp + 0x1c]
jl 0x470340
add dword [ebx + 0x2c], 1
mov ecx, dword [ebx + 0x2c]
mov edx, dword [esp + 0x50]
mov dword [edx + eax*4], ecx
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0x47040f
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x2b]
cmp al, 1
jne 0x47039d
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx]
push edx
push str.UPSERT_not_implemented_for_virtual_table___s_
mov esi, ebx
call fcn.0041cbf0
jmp 0x470c24
cmp al, 2
jne 0x4703b5
push str.cannot_UPSERT_a_view
mov esi, ebx
call fcn.0041cbf0
add esp, 4
jmp 0x470c27
mov eax, dword [ecx]
push ebx
call fcn.00464e40
add esp, 4
test eax, eax
jne 0x470c27
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x40]
mov esi, dword [ebp + 0x1c]
mov dword [edx + 0x34], eax
cmp dword [esi], 0
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov dword [esi + 0x24], ecx
mov ecx, dword [esp + 0x68]
mov dword [esi + 0x20], edx
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
je 0x470408
push esi
mov ecx, ebx
call fcn.0048b1b0
add esp, 4
test eax, eax
jne 0x470c27
mov edx, dword [ebp + 0xc]
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x4703d5
cmp byte [esp + 0x13], 0
je 0x470437
mov edx, dword [esp + 0x44]
push 0
push 0
push edx
push 0x24
push edi
call fcn.0043c3f0
mov dword [esp + 0x84], eax
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x78], eax
jmp 0x47047d
cmp dword [ebp + 0x10], 0
je 0x470480
mov ecx, dword [esp + 0x88]
push 0
push 0
push ecx
push 0xc
push edi
call fcn.0043c3f0
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x3c]
add esp, 0x14
test eax, eax
jl 0x470480
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push 0
push edx
add ecx, eax
push ecx
push 0x50
push edi
call fcn.0043c3f0
add esp, 0x14
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x48]
xor eax, eax
cmp word [edx + 0x22], ax
mov dword [esp + 0x58], eax
mov dword [esp + 0x24], eax
jle 0x470677
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
movsx ecx, word [eax + 0x20]
cmp dword [esp + 0x24], ecx
mov edx, dword [ebp + 0x14]
jne 0x4704bd
push 0
push 0
push esi
push 0x4c
jmp 0x47064b
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x2c]
add ecx, eax
movzx eax, word [ecx + 0xe]
test al, 0x62
mov dword [esp + 0x20], ecx
je 0x470523
add dword [esp + 0x58], 1
test al, 0x20
je 0x4704e7
sub esi, 1
jmp 0x470654
test al, 0x40
je 0x470502
test byte [esp + 0x74], 1
je 0x470654
push 0
push 0
push esi
push 0x4c
jmp 0x47064b
test edx, edx
jne 0x47052b
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
push esi
call fcn.00460a30
mov ecx, ebx
call fcn.00458280
add esp, 4
jmp 0x470654
test edx, edx
je 0x4705d5
xor eax, eax
cmp dword [edx], eax
jle 0x470549
lea ecx, [edx + 0xc]
mov edx, dword [esp + 0x24]
cmp dword [ecx], edx
mov edx, dword [ebp + 0x14]
je 0x470549
add eax, 1
add ecx, 8
cmp eax, dword [edx]
jl 0x470534
cmp eax, dword [edx]
jl 0x4705e8
mov eax, dword [esp + 0x20]
movzx eax, word [eax + 0xc]
test ax, ax
jne 0x470570
xor eax, eax
push esi
mov ecx, ebx
call fcn.00458280
add esp, 4
jmp 0x470654
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x2b], 0
je 0x47058c
xor eax, eax
push esi
mov ecx, ebx
call fcn.00458280
add esp, 4
jmp 0x470654
mov ecx, dword [ecx + 0x34]
test ecx, ecx
jne 0x4705a5
xor eax, eax
push esi
mov ecx, ebx
call fcn.00458280
add esp, 4
jmp 0x470654
movzx eax, ax
cmp dword [ecx], eax
jge 0x4705be
xor eax, eax
push esi
mov ecx, ebx
call fcn.00458280
add esp, 4
jmp 0x470654
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0xc]
push esi
mov ecx, ebx
call fcn.00458280
add esp, 4
jmp 0x470654
cmp dword [esp + 0x14], 0
je 0x47050a
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x58]
cmp byte [esp + 0x13], 0
je 0x4705fa
push esi
push eax
mov eax, dword [esp + 0x4c]
push eax
push 0x5e
jmp 0x47064b
cmp dword [ebp + 0x10], 0
je 0x470616
mov ecx, dword [esp + 0x38]
cmp ecx, dword [esp + 0x48]
je 0x470654
push 0
mov edx, ecx
push esi
add eax, edx
push eax
push 0x51
jmp 0x47064b
mov ecx, dword [esp + 0x4c]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
push esi
push eax
push ebx
mov dword [esp + 0x28], eax
call fcn.00456ef0
add esp, 0xc
cmp eax, esi
je 0x470654
mov edx, dword [esp + 0x1c]
push 0
push esi
push eax
mov eax, dword [edx + 4]
shr eax, 0x16
not eax
and eax, 1
or eax, 0x50
push eax
push edi
call fcn.0043c3f0
add esp, 0x14
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
movsx edx, word [ecx + 0x22]
add dword [esp + 0x2c], 0x10
add eax, 1
add esi, 1
cmp eax, edx
mov dword [esp + 0x24], eax
jl 0x4704a0
add dword [ebx + 0x38], 0xffffffff
test byte [esp + 0x74], 1
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x38], eax
je 0x4707fb
mov ecx, dword [esp + 0xc]
movsx esi, word [ecx + 0x22]
add esi, 1
mov ecx, ebx
call fcn.00459ef0
cmp dword [esp + 0x28], 0
mov esi, eax
jge 0x4706b4
push 0
push esi
push 0xffffffffffffffff
push 0x47
jmp 0x470739
cmp byte [esp + 0x13], 0
push esi
je 0x4706d3
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x48]
push edx
push eax
push 0x5e
push edi
call fcn.0043c3f0
add esp, 0x14
jmp 0x4706ec
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4 + 8]
push eax
push ebx
call fcn.004581d0
add esp, 0xc
push 0
push 0
push esi
push 0x33
push edi
call fcn.0043c3f0
add esp, 0x14
push 0
push esi
push 0xffffffffffffffff
push 0x47
push edi
mov dword [esp + 0x30], eax
call fcn.0043c3f0
mov ecx, dword [edi]
mov eax, dword [edi + 0x6c]
add esp, 0x14
cmp byte [ecx + 0x57], 0
je 0x470722
mov ecx, 0x4d6798
jmp 0x47072f
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + ecx*4]
mov ecx, dword [edi + 0x68]
lea ecx, [ecx + edx*4]
push 0
push 0
push esi
mov dword [ecx + 8], eax
push 0xd
push edi
call fcn.0043c3f0
mov edx, dword [esp + 0x20]
movsx ecx, word [edx + 0x24]
mov edx, dword [esp + 0x5c]
add esp, 0x14
sub ecx, 1
push ecx
lea eax, [esi + 1]
push eax
push edx
push 0x50
push edi
call fcn.0043c3f0
mov eax, dword [esp + 0x20]
add esp, 0x14
test byte [eax + 0x1c], 0x60
je 0x47077c
mov ecx, eax
push ecx
lea eax, [esi + 1]
push eax
push ebx
call fcn.0046f590
add esp, 0xc
cmp dword [esp + 0x54], 0
jne 0x470797
lea eax, [esi + 1]
push eax
mov eax, dword [esp + 0x10]
call fcn.0046f310
mov edi, dword [esp + 0x70]
add esp, 4
mov edx, dword [esp + 0x38]
mov eax, dword [ebp + 0x18]
push edx
push eax
mov eax, dword [esp + 0x14]
movsx ecx, word [eax + 0x22]
mov edx, esi
sub edx, ecx
sub edx, 1
push edx
push eax
mov eax, dword [esp + 0x6c]
push 1
push 0
push 0x7f
push eax
push ebx
call fcn.00487e40
mov ecx, dword [esp + 0x30]
movsx eax, word [ecx + 0x22]
add eax, 1
add esp, 0x24
cmp eax, 1
jne 0x4707f0
test esi, esi
je 0x4707fb
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x4707fb
movzx edx, al
mov dword [ebx + edx*4 + 0xa0], esi
add byte [ebx + 0x13], 1
jmp 0x4707fb
cmp eax, dword [ebx + 0x1c]
jle 0x4707fb
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], esi
cmp dword [esp + 0x54], 0
jne 0x470af1
mov esi, dword [esp + 0xc]
cmp byte [esi + 0x2b], 1
jne 0x470824
mov eax, dword [esp + 0x78]
push 0
push eax
push 0
push 0x4b
push edi
call fcn.0043c3f0
add esp, 0x14
mov eax, dword [esp + 0x28]
test eax, eax
jl 0x470907
cmp byte [esp + 0x13], 0
je 0x470851
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
push esi
mov ecx, eax
push ecx
push edx
push 0x5e
push edi
call fcn.0043c3f0
add esp, 0x14
jmp 0x4708a3
cmp dword [ebp + 0x10], 0
jne 0x47089f
mov ecx, dword [esp + 0x4c]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
cmp byte [eax], 0x79
jne 0x47088e
cmp byte [esi + 0x2b], 1
je 0x47088e
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
push edx
push esi
push eax
push 0x7f
push edi
call fcn.0043c3f0
mov byte [esp + 0x2e], 1
jmp 0x470943
mov esi, dword [esp + 0x3c]
push esi
push eax
push ebx
call fcn.004581d0
add esp, 0xc
jmp 0x4708a3
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x2b], 1
push 0
je 0x4708eb
push 0
push esi
push 0x33
push edi
call fcn.0043c3f0
mov edx, dword [esp + 0x74]
add esp, 0x14
push edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x44]
push esi
push eax
push 0x7f
push edi
call fcn.0043c3f0
mov edx, dword [esp + 0x30]
add esp, 0x14
mov eax, edi
call fcn.0043cd40
push 0
push 0
push esi
push 0xd
jmp 0x47093d
mov ecx, dword [edi + 0x6c]
add ecx, 2
push ecx
push esi
push 0x32
push edi
call fcn.0043c3f0
add esp, 0x14
push 0
push 0
push esi
push 0xd
jmp 0x47093d
cmp byte [esi + 0x2b], 1
je 0x470932
cmp byte [esp + 0x33], 0
jne 0x470932
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
push edx
push esi
push eax
push 0x7f
push edi
call fcn.0043c3f0
mov byte [esp + 0x2e], 1
jmp 0x470943
mov esi, dword [esp + 0x3c]
push 0
push esi
push 0
push 0x4b
push edi
call fcn.0043c3f0
add esp, 0x14
cmp dword [esp + 0x60], 0
jle 0x470966
mov ecx, dword [esp + 0x60]
mov edx, dword [ebx + 8]
push 0
push esi
push ecx
push 0x9f
push edx
call fcn.0043c3f0
add esp, 0x14
mov eax, dword [esp + 0xc]
test byte [eax + 0x1c], 0x60
je 0x470983
mov ecx, dword [esp + 0x48]
push eax
push ecx
push ebx
call fcn.0046f590
mov eax, dword [esp + 0x18]
add esp, 0xc
cmp byte [eax + 0x2b], 1
jne 0x470a44
mov esi, dword [eax + 0x34]
test esi, esi
je 0x4709a3
mov eax, dword [esp + 0x34]
cmp dword [esi], eax
je 0x4709a3
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x470998
mov edi, dword [esp + 0xc]
mov eax, ebx
call fcn.0048d6e0
movsx eax, word [edi + 0x22]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x6c]
push edx
add eax, 2
push eax
push 1
push 7
push edi
call fcn.0043c3f0
mov ecx, dword [edi]
add esp, 0x14
cmp byte [ecx + 0x57], 0
jne 0x470a0f
test eax, eax
jge 0x4709de
mov eax, dword [edi + 0x6c]
sub eax, 1
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x68]
cmp byte [eax + edx*4 + 1], 0
lea ecx, [eax + edx*4]
je 0x470a00
push esi
mov eax, 0xfffffff5
mov edx, edi
call fcn.0043ced0
add esp, 4
jmp 0x470a0f
test esi, esi
je 0x470a0f
mov dword [ecx + 0x10], esi
mov byte [ecx + 1], 0xf5
add dword [esi + 0xc], 1
mov ecx, dword [ebp + 0x18]
cmp ecx, 0xb
jne 0x470a1c
mov ecx, 2
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x470a2e
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov word [eax + edx*4 - 0x12], cx
mov eax, dword [ebx + 0x78]
test eax, eax
jne 0x470a37
mov eax, ebx
mov edi, dword [esp + 0x6c]
mov byte [eax + 0x15], 1
jmp 0x470af1
mov ecx, dword [ebp + 0x1c]
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x78]
push ecx
mov ecx, dword [ebp + 0x18]
push 0
lea edx, [esp + 0x5c]
push edx
push eax
mov eax, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x54]
setge dl
mov dword [esp + 0x68], 0
push edx
mov edx, dword [esp + 0x68]
push 0
push esi
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
push eax
push ebx
call fcn.00470d30
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 0x20]
and eax, 0x4000
xor ecx, ecx
add esp, 0x34
or eax, ecx
je 0x470ab1
mov edx, dword [esp + 0xc]
push ecx
push ecx
push esi
push ecx
push edx
push ebx
call fcn.0046e0e0
add esp, 0x18
cmp dword [esp + 0x54], 0
je 0x470ac5
cmp dword [edi + 0xe0], 0
je 0x470ac5
xor eax, eax
jmp 0x470aca
mov eax, 1
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
push eax
movzx eax, byte [esp + 0x1e]
push eax
mov eax, dword [esp + 0x48]
push 0
push ecx
mov ecx, dword [esp + 0x1c]
push esi
push edx
push eax
push ecx
push ebx
call fcn.00472fa0
add esp, 0x24
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x470b09
push 0
push 1
push eax
push 0x56
push edi
call fcn.0043c3f0
add esp, 0x14
cmp dword [esp + 0x5c], 0
mov esi, dword [esp + 0x38]
je 0x470b40
mov edx, dword [ebp + 0x18]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x48]
push esi
push edx
movsx edx, word [ecx + 0x22]
sub eax, edx
sub eax, 2
push eax
mov eax, dword [esp + 0x68]
push ecx
push 2
push 0
push 0x7f
push eax
push ebx
call fcn.00487e40
add esp, 0x24
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x3c]
add ecx, dword [eax + 0x38]
not esi
jns 0x470b5f
push esi
push edi
mov edi, eax
call fcn.0043ca00
mov edi, dword [esp + 0x74]
add esp, 8
jmp 0x470b68
mov edx, dword [eax + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [edx + esi*4], eax
cmp byte [esp + 0x13], 0
je 0x470bba
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x44]
push 0
push ecx
push esi
push 0x27
push edi
call fcn.0043c3f0
mov edx, dword [edi]
mov ecx, dword [edi + 0x6c]
add esp, 0x14
cmp byte [edx + 0x57], 0
je 0x470b98
mov eax, 0x4d6798
jmp 0x470ba5
mov eax, dword [esp + 0x70]
mov edx, dword [edi + 0x68]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
push 0
push 0
push esi
push 0x7a
push edi
mov dword [eax + 8], ecx
call fcn.0043c3f0
add esp, 0x14
jmp 0x470bf6
cmp dword [ebp + 0x10], 0
je 0x470bf6
mov eax, dword [esp + 0x64]
push 0
push eax
push 0
push 9
push edi
call fcn.0043c3f0
mov edx, dword [edi]
mov ecx, dword [edi + 0x6c]
add esp, 0x14
cmp byte [edx + 0x57], 0
je 0x470be6
mov eax, 0x4d6798
jmp 0x470bf3
mov eax, dword [esp + 0x70]
mov edx, dword [edi + 0x68]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
cmp byte [ebx + 0x12], 0
jne 0x470c0f
cmp dword [ebx + 0x7c], 0
jne 0x470c0f
cmp dword [ebx + 0x74], 0
je 0x470c0f
mov esi, ebx
call fcn.0046fa50
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x470c27
push str.rows_inserted
push eax
mov eax, edi
call fcn.00468040
add esp, 8
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x34]
push eax
mov eax, esi
call fcn.004662e0
mov eax, dword [esp + 0x50]
add esp, 4
test eax, eax
je 0x470c4b
push eax
push esi
call fcn.00453b70
add esp, 8
cmp dword [ebp + 0x1c], 0
je 0x470c59
mov eax, dword [ebp + 0x1c]
call fcn.0048aef0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x470c6c
push 1
push eax
push esi
call fcn.0047a490
add esp, 0xc
mov edi, dword [ebp + 0x14]
mov esi, dword [esp + 0x34]
call fcn.00465f50
mov eax, dword [esp + 0x50]
test eax, eax
je 0x470ce2
cmp eax, dword [esi + 0x164]
jae 0x470cc2
cmp eax, dword [esi + 0x15c]
jb 0x470ca5
mov ecx, dword [esi + 0x158]
mov dword [eax], ecx
mov dword [esi + 0x158], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, dword [esi + 0x160]
jb 0x470cc2
mov edx, dword [esi + 0x150]
mov dword [eax], edx
mov dword [esi + 0x150], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x210], 0
je 0x470cd9
mov ecx, esi
call fcn.00419210
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.004191a0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret