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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
push ebx
mov ebx, ecx
mov dword [esp + 0x48], edx
xor ecx, ecx
mov dword [esp + 0x6c], ebx
push esi
or eax, 0xffffffff
mov dword [esp + 0x54], ecx
mov edx, dword [ebx]
push edi
mov edi, ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], ecx
mov byte [esp + 0x13], cl
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x40], edx
cmp dword [ebx + 0x24], ecx
jne 0x492ed3
mov esi, dword [ebp + 8]
mov dword [esp + 0x98], ecx
mov dword [esp + 0xc], esi
test esi, esi
je 0x492094
test dword [esi + 4], 0x200
je 0x492094
cmp dword [esi + 0x34], ecx
jne 0x492094
mov eax, dword [esi + 0x1c]
mov edx, esi
mov dword [esi + 0x1c], ecx
mov esi, dword [esp + 0x40]
mov ecx, esi
push 1
mov dword [esp + 0x60], eax
call fcn.00499ae8
and dword [esp + 0x10], edi
pop ecx
jmp 0x492096
mov esi, edx
mov edx, dword [esp + 0x50]
mov ecx, ebx
call fcn.0048cc7d
mov edi, eax
mov dword [esp + 0x68], edi
test edi, edi
je 0x4925a1
mov edx, dword [edi + 0x3c]
mov ecx, esi
call fcn.00499367
mov ecx, eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov ecx, ebx
push 0
push dword [edi]
push 0x12
pop edx
call fcn.00486715
add esp, 0xc
test eax, eax
jne 0x4925a1
mov eax, dword [edi + 0x1c]
mov edx, edi
shr eax, 7
mov ecx, ebx
and eax, 0xffffff01
mov dword [esp + 0x70], eax
lea eax, [esp + 0x88]
push eax
push 0
push 0x7f
call fcn.004a2d5d
add esp, 0xc
mov dword [esp + 0x64], eax
mov al, byte [edi + 0x2b]
mov edx, edi
mov ecx, ebx
mov byte [esp + 0x23], al
call fcn.00489b00
test eax, eax
jne 0x4925a1
push dword [esp + 0x88]
mov edx, edi
mov ecx, ebx
call fcn.0048cd5d
pop ecx
test eax, eax
jne 0x4925a1
mov ecx, ebx
call fcn.0049bbde
mov esi, eax
mov dword [esp + 0x24], esi
test esi, esi
je 0x4925a1
cmp byte [ebx + 0x12], 0
jne 0x49215e
or dword [esi + 0x98], 0x10
cmp dword [esp + 0xc], 0
jne 0x492170
cmp dword [esp + 0x64], 0
jne 0x492170
xor edx, edx
jmp 0x492173
xor edx, edx
inc edx
push dword [esp + 0x28]
mov ecx, ebx
call fcn.0048bf47
cmp dword [ebp + 0xc], 0
pop ecx
jne 0x4921b0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4921b0
cmp dword [esp + 0x64], 0
jne 0x4921b0
push dword [esp + 0x28]
mov edx, edi
mov ecx, ebx
push dword [ebp + 0x10]
push eax
call fcn.0049444e
add esp, 0xc
test eax, eax
jne 0x492e98
mov edx, dword [esp + 0x28]
mov ecx, ebx
push edi
call fcn.00491d9f
pop ecx
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x80], eax
lea eax, [ecx + 1]
mov edx, eax
mov dword [esp + 0x60], eax
movsx eax, word [edi + 0x22]
inc eax
mov dword [esp + 0x2c], edx
add eax, ecx
mov dword [ebx + 0x2c], eax
cmp byte [edi + 0x2b], 1
jne 0x4921ef
lea edx, [ecx + 2]
inc eax
mov dword [esp + 0x2c], edx
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebp + 0xc]
lea eax, [edx + 1]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x1c]
and eax, 0x440
neg eax
sbb al, al
inc al
mov dword [esp + 0x1c], eax
test ecx, ecx
je 0x492335
mov eax, dword [ecx]
xor edx, edx
mov byte [ecx + 4], 1
test eax, eax
jle 0x492236
mov esi, dword [ebp + 0xc]
add ecx, 0xc
or dword [ecx], 0xffffffff
inc edx
mov eax, dword [esi]
lea ecx, [ecx + 8]
cmp edx, eax
jl 0x492225
mov esi, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 0x14], ecx
test eax, eax
jle 0x492335
movzx eax, word [edi + 0x22]
cwde
xor edx, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x90], eax
test eax, eax
jle 0x4922e6
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + ecx*8 + 8]
mov eax, dword [edi + 4]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
mov edx, dword [eax]
call fcn.00453ce5
mov edx, dword [esp + 0x54]
test eax, eax
je 0x49229e
mov eax, dword [esp + 0x30]
inc edx
mov ecx, dword [esp + 0x34]
add eax, 0x10
mov dword [esp + 0x54], edx
mov dword [esp + 0x30], eax
cmp edx, dword [esp + 0x90]
jl 0x492270
jmp 0x4922e2
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + eax*8 + 0xc], edx
xor ecx, ecx
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x14], edx
movzx eax, al
cmove ecx, eax
movsx eax, word [edi + 0x20]
cmp edx, eax
mov byte [esp + 0x1c], cl
mov ecx, dword [esp + 0x14]
mov eax, edx
cmovne ecx, dword [esp + 0x38]
add eax, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [edi + 4]
test byte [ecx + eax*8 + 0xe], 0x60
jne 0x492607
mov ecx, dword [esp + 0x14]
movzx eax, word [edi + 0x22]
cwde
cmp edx, eax
jl 0x492321
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*8 + 8]
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.0047dd7b
test eax, eax
je 0x49261c
cmp byte [esp + 0x70], 0
jne 0x49261c
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
mov byte [esp + 0x1c], 0
mov edx, dword [ebp + 0xc]
inc ecx
movzx eax, word [edi + 0x22]
mov dword [esp + 0x14], ecx
cmp ecx, dword [edx]
jl 0x492248
cmp dword [esp + 0xc], 0
je 0x49263f
inc dword [ebx + 0x2c]
mov eax, dword [esi + 0x6c]
mov ecx, dword [ebx + 0x2c]
inc eax
push eax
push 0
push ecx
mov dword [esp + 0x3c], ecx
mov ecx, esi
push 0xb
pop edx
mov dword [esp + 0x40], eax
call fcn.0046b9a1
mov eax, dword [esp + 0x3c]
add esp, 0xc
and dword [esp + 0x9c], 0
mov ecx, ebx
and dword [esp + 0xa8], 0
mov edx, dword [esp + 0xc]
mov dword [esp + 0x98], eax
xor eax, eax
cmp byte [esp + 0x1c], al
mov byte [esp + 0x94], 0xd
cmovne eax, dword [esp + 0x4c]
mov dword [esp + 0xa0], eax
movsx eax, word [edi + 0x22]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x94]
push eax
call fcn.0049fa1a
pop ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x44], ecx
test eax, eax
jne 0x4925a1
cmp dword [ebx + 0x24], eax
jne 0x4925a1
mov edx, dword [esp + 0x30]
mov ecx, esi
call fcn.0046bcdd
mov edx, dword [esp + 0x34]
mov ecx, esi
lea edx, [edx - 1]
call fcn.0046c1e8
cmp dword [esp + 0x64], 0
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
jne 0x49241b
mov edx, dword [esp + 0x28]
mov ecx, ebx
push edi
call fcn.00491b50
pop ecx
test eax, eax
je 0x4924e6
mov edx, dword [ebx + 0x28]
mov ecx, ebx
mov byte [esp + 0x13], 1
mov dword [esp + 0x3c], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
call fcn.00481e7d
mov edi, eax
call fcn.00481e7d
push 0
push dword [esp + 0x20]
mov ecx, esi
mov ebx, eax
push edx
push 0x76
pop edx
call fcn.0046b9a1
add esp, 0xc
mov ecx, esi
push 0
push 0
push dword [esp + 0xa0]
push 0xc
pop edx
call fcn.0046b9a1
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push edi
push dword [esp + 0x20]
push dword [esp + 0x4c]
push 0x61
pop edx
call fcn.0046b9a1
mov ecx, dword [esp + 0x30]
add esp, 0xc
push 0
push ebx
push dword [esp + 0x44]
push 0x7f
pop edx
call fcn.0046b9a1
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, 0x80
push ebx
push edi
push dword [esp + 0x44]
call fcn.0046b9a1
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, esi
call fcn.0046b9fa
mov edx, esi
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.0046c1e8
mov ecx, dword [esi + 0x6c]
mov edx, edi
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x74]
call fcn.00481e9c
mov edx, ebx
mov ebx, ecx
call fcn.00481e9c
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x492691
test edx, edx
jle 0x4926ab
movsx eax, word [edi + 0x20]
mov dword [esp + 0x38], eax
test eax, eax
js 0x492542
test byte [edi + 0x1c], 0x60
je 0x492542
lea edx, [eax - 1]
test edx, edx
js 0x49253e
mov ecx, edx
mov ebx, eax
shl ecx, 4
add ecx, 0xe
add ecx, dword [edi + 4]
test byte [ecx], 0x60
lea eax, [ebx - 1]
lea ecx, [ecx - 0x10]
cmove eax, ebx
sub edx, 1
mov ebx, eax
jns 0x492523
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
test byte [edi + 0x1c], 0x62
je 0x492579
movsx edx, word [edi + 0x22]
test edx, edx
jle 0x492575
mov ecx, dword [edi + 4]
mov esi, dword [esp + 0x58]
add ecx, 0xe
test byte [ecx], 0x62
lea eax, [esi + 1]
lea ecx, [ecx + 0x10]
cmove eax, esi
mov esi, eax
sub edx, 1
jne 0x49255a
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
movsx eax, word [edi + 0x22]
sub eax, dword [esp + 0x58]
cmp edx, eax
je 0x4926ab
push edx
push eax
mov eax, dword [esp + 0x58]
add eax, 8
push eax
push str.table__S_has__d_columns_but__d_values_were_supplied
push ebx
call fcn.00453b99
add esp, 0x14
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
mov ecx, esi
mov edx, dword [esp + 0x50]
call fcn.0048b9a3
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4925c9
mov edx, eax
mov ecx, esi
call fcn.0047d8c7
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4925d9
mov edx, eax
mov ecx, esi
call fcn.004a56b6
test ebx, ebx
je 0x4925e9
push 1
mov edx, ebx
mov ecx, esi
call fcn.00499ae8
pop ecx
mov edx, dword [ebp + 0xc]
mov ecx, esi
call fcn.0048b6e9
test edi, edi
je 0x492600
mov edx, edi
mov ecx, esi
call fcn.00450d66
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
add edx, edx
push dword [ecx + edx*8]
push str.cannot_INSERT_into_generated_column___s_
push ebx
call fcn.00453b99
add esp, 0xc
jmp 0x4925a1
push dword [esp + 0x34]
mov eax, dword [esp + 0x54]
add eax, 8
push eax
push str.table__S_has_no_column_named__s
push ebx
call fcn.00453b99
add esp, 0x10
mov byte [ebx + 0x11], 1
jmp 0x4925a1
or dword [esp + 0x3c], 0xffffffff
lea edi, [esp + 0xb0]
push 8
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xb0], ebx
test ecx, ecx
je 0x492682
mov eax, dword [ecx]
mov edx, ecx
lea ecx, [esp + 0xb0]
mov dword [esp + 0x1c], eax
call fcn.0047bb48
test eax, eax
jne 0x4925a1
jmp 0x4924e2
mov edi, dword [esp + 0x68]
xor edx, edx
mov dword [esp + 0x1c], edx
jmp 0x4924ea
cmp edx, dword [eax]
je 0x4926ab
push dword [eax]
push edx
push str._d_values_for__d_columns
push ebx
call fcn.00453b99
add esp, 0x10
jmp 0x4925a1
mov ecx, dword [esp + 0x40]
xor edx, edx
mov eax, edx
mov ecx, dword [ecx + 0x24]
and ecx, 1
or eax, ecx
je 0x4926ee
cmp byte [ebx + 0x12], dl
jne 0x4926ee
cmp dword [ebx + 0x7c], edx
jne 0x4926ee
cmp byte [ebx + 0x99], dl
jne 0x4926ee
inc dword [ebx + 0x2c]
mov ecx, esi
mov eax, dword [ebx + 0x2c]
push edx
push eax
push edx
push 0x47
pop edx
mov dword [esp + 0x98], eax
call fcn.0046b9a1
add esp, 0xc
xor edx, edx
cmp byte [esp + 0x23], 2
je 0x492787
lea eax, [esp + 0x84]
mov ecx, ebx
push eax
lea eax, [esp + 0x4c]
push eax
push edx
push 0xffffffffffffffff
push edx
push 0x71
mov edx, edi
call fcn.0049422f
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x48], eax
push 0
lea eax, [eax*4 + 8]
push eax
call fcn.0045101b
mov ecx, eax
add esp, 0x20
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x4925a1
mov eax, dword [edi + 8]
xor edx, edx
mov dword [esp + 0x34], eax
cmp dword [esp + 0x30], edx
jle 0x49277d
mov edi, dword [esp + 0x30]
mov esi, eax
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov dword [ecx + edx*4], eax
movzx ecx, word [esi + 0x34]
mov eax, dword [ebx + 0x2c]
add eax, ecx
mov ecx, dword [esp + 0x18]
inc edx
mov dword [ebx + 0x2c], eax
mov esi, dword [esi + 0x14]
cmp edx, edi
jl 0x492752
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x24]
jmp 0x492780
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ebx + 0x2c], eax
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x49282e
mov al, byte [edi + 0x2b]
cmp al, 1
jne 0x4927a5
push dword [edi]
push str.UPSERT_not_implemented_for_virtual_table___s_
jmp 0x492611
cmp al, 2
jne 0x4927bb
push str.cannot_UPSERT_a_view
push ebx
call fcn.00453b99
pop ecx
pop ecx
jmp 0x4925a1
mov edx, dword [ecx]
mov ecx, ebx
call fcn.0048a790
test eax, eax
jne 0x4925a1
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0x34], edx
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x30], eax
cmp dword [eax], 0
mov edi, dword [esp + 0x50]
mov dword [eax + 0x20], edi
mov edi, dword [esp + 0x84]
mov dword [eax + 0x2c], edi
mov edi, dword [esp + 0x68]
mov dword [eax + 0x24], ecx
mov dword [eax + 0x28], edx
je 0x492823
mov edx, dword [esp + 0x50]
mov ecx, ebx
push eax
call fcn.004a5843
pop ecx
test eax, eax
jne 0x4925a1
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x4927e2
cmp byte [esp + 0x13], 0
je 0x49285a
push 0
push 0
push dword [esp + 0x44]
mov ecx, esi
push 0x24
pop edx
call fcn.0046b9a1
mov dword [esp + 0x88], eax
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x84], eax
jmp 0x4928a3
cmp dword [esp + 0xc], 0
je 0x4928a6
push 0
push 0
push dword [esp + 0xa0]
mov ecx, esi
push 0xc
pop edx
call fcn.0046b9a1
mov dword [esp + 0x84], eax
add esp, 0xc
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x38]
test eax, eax
js 0x4928a6
mov ecx, dword [esp + 0x44]
push 0
push dword [esp + 0x30]
add ecx, eax
push ecx
push 0x50
pop edx
mov ecx, esi
call fcn.0046b9a1
add esp, 0xc
and dword [esp + 0x58], 0
xor edx, edx
mov ecx, dword [esp + 0x4c]
xor eax, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], edx
cmp ax, word [edi + 0x22]
jge 0x492a10
and dword [esp + 0x54], eax
movsx eax, word [edi + 0x20]
cmp edx, eax
jne 0x4928de
push 0
push 0
push ecx
push 0x4c
pop edx
jmp 0x4929e3
mov edx, dword [esp + 0x54]
add edx, dword [edi + 4]
mov dword [esp + 0x34], edx
movzx eax, word [edx + 0xe]
test al, 0x62
je 0x492930
inc dword [esp + 0x58]
test al, 0x20
je 0x4928ff
dec ecx
jmp 0x4929f1
test al, 0x40
je 0x492913
test byte [esp + 0x88], 1
je 0x4929f1
jmp 0x4928d1
cmp dword [ebp + 0xc], 0
jne 0x492936
push ecx
mov ecx, edi
call fcn.004872d4
mov edx, eax
mov ecx, ebx
call fcn.00480867
pop ecx
jmp 0x4929ed
cmp dword [ebp + 0xc], 0
je 0x49296a
mov ebx, dword [ebp + 0xc]
xor eax, eax
cmp dword [ebx], eax
mov ebx, dword [esp + 0x74]
jle 0x492919
mov edx, dword [ebp + 0xc]
add edx, 0xc
mov esi, dword [esp + 0x28]
cmp dword [edx], esi
mov esi, dword [esp + 0x24]
je 0x492979
mov esi, dword [ebp + 0xc]
inc eax
add edx, 8
cmp eax, dword [esi]
mov esi, dword [esp + 0x24]
jl 0x492949
mov edx, dword [esp + 0x34]
jmp 0x492919
cmp dword [esp + 0x1c], 0
je 0x492919
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x58]
cmp byte [esp + 0x13], 0
je 0x49298d
push ecx
push eax
push dword [esp + 0x44]
push 0x5e
jmp 0x4928d8
cmp dword [esp + 0xc], 0
je 0x4929ab
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x4c]
je 0x4929f1
push 0
push ecx
add eax, edx
push eax
push 0x51
jmp 0x4928d8
mov edx, dword [esp + 0x5c]
imul eax, eax, 0x14
push ecx
mov ecx, ebx
mov eax, dword [eax + edx + 8]
mov edx, eax
mov dword [esp + 0x38], eax
call fcn.0047f6dc
pop ecx
mov ecx, dword [esp + 0x14]
cmp eax, ecx
je 0x4929f1
mov edx, dword [esp + 0x34]
push 0
push ecx
push eax
mov edx, dword [edx + 4]
shr edx, 0x16
not edx
and edx, 1
or edx, 0x50
mov ecx, esi
call fcn.0046b9a1
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
add dword [esp + 0x54], 0x10
inc edx
movsx eax, word [edi + 0x22]
inc ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], ecx
cmp edx, eax
jl 0x4928c9
dec dword [ebx + 0x38]
test byte [esp + 0x88], 1
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x28], eax
je 0x492b57
movsx edx, word [edi + 0x22]
mov ecx, ebx
inc edx
call fcn.00481eb5
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], eax
test ecx, ecx
jns 0x492a44
push 0x47
jmp 0x492ac0
cmp byte [esp + 0x13], 0
push eax
je 0x492a60
push ecx
push dword [esp + 0x44]
mov ecx, esi
push 0x5e
pop edx
call fcn.0046b9a1
add esp, 0xc
jmp 0x492a73
mov eax, dword [esp + 0x60]
imul edx, ecx, 0x14
mov ecx, ebx
mov edx, dword [edx + eax + 8]
call fcn.004807d0
pop ecx
push 0
push 0
push dword [esp + 0x1c]
mov ecx, esi
push 0x33
pop edx
call fcn.0046b9a1
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push 0
push dword [esp + 0x18]
push 0xffffffffffffffff
push 0x47
pop edx
call fcn.0046b9a1
add esp, 0xc
mov edx, esi
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.0046c1e8
mov ecx, dword [esi + 0x6c]
push 0xd
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x70], eax
xor eax, eax
pop edx
push 0
push eax
push dword [esp + 0x74]
mov ecx, esi
call fcn.0046b9a1
mov ecx, dword [esp + 0x20]
add esp, 0xc
movsx eax, word [edi + 0x24]
inc ecx
dec eax
mov dword [esp + 0x6c], ecx
push eax
push ecx
push dword [esp + 0x54]
mov ecx, esi
push 0x50
pop edx
call fcn.0046b9a1
add esp, 0xc
test byte [edi + 0x1c], 0x60
je 0x492b06
mov edx, dword [esp + 0x6c]
mov ecx, ebx
push edi
call fcn.00491c0f
pop ecx
cmp byte [esp + 0x23], 2
je 0x492b1b
push dword [esp + 0x6c]
mov edx, edi
mov ecx, esi
call fcn.00491a80
pop ecx
push dword [esp + 0x28]
movsx eax, word [edi + 0x22]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
sub ecx, eax
dec ecx
push ecx
push edi
push 1
push 0
push 0x7f
mov ecx, ebx
call fcn.004a3819
movsx eax, word [edi + 0x22]
add esp, 0x1c
mov edx, dword [esp + 0x14]
inc eax
mov ecx, ebx
push eax
call fcn.00481eeb
add esp, 4
cmp byte [esp + 0x23], 2
je 0x492dd7
mov cl, byte [edi + 0x2b]
cmp cl, 1
jne 0x492b82
push 0
push dword [esp + 0x64]
mov ecx, esi
push 0
push 0x4b
pop edx
call fcn.0046b9a1
mov cl, byte [edi + 0x2b]
add esp, 0xc
mov eax, dword [esp + 0x38]
test eax, eax
js 0x492c4b
cmp byte [esp + 0x13], 0
je 0x492bad
push dword [esp + 0x2c]
mov ecx, esi
push eax
push dword [esp + 0x44]
push 0x5e
pop edx
call fcn.0046b9a1
add esp, 0xc
jmp 0x492bd9
cmp dword [esp + 0xc], 0
jne 0x492bd9
mov edx, dword [esp + 0x5c]
imul eax, eax, 0x14
mov edx, dword [eax + edx + 8]
cmp byte [edx], 0x79
jne 0x492bcd
cmp cl, 1
jne 0x492c57
push dword [esp + 0x2c]
mov ecx, ebx
call fcn.004807d0
pop ecx
cmp byte [edi + 0x2b], 1
mov ecx, esi
push 0
je 0x492c29
push 0
push dword [esp + 0x34]
push 0x33
pop edx
call fcn.0046b9a1
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push dword [esp + 0x80]
push dword [esp + 0x30]
push dword [esp + 0x50]
push 0x7f
pop edx
call fcn.0046b9a1
add esp, 0xc
mov edx, esi
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.0046c1e8
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
jmp 0x492c3f
mov eax, dword [esi + 0x6c]
add eax, 2
push eax
push dword [esp + 0x34]
push 0x32
pop edx
call fcn.0046b9a1
add esp, 0xc
push 0
push 0
push dword [esp + 0x34]
push 0xd
jmp 0x492c87
cmp cl, 1
je 0x492c7d
cmp byte [esp + 0x70], 0
jne 0x492c7d
push dword [esp + 0x80]
mov ecx, esi
push dword [esp + 0x30]
push dword [esp + 0x50]
push 0x7f
pop edx
call fcn.0046b9a1
add esp, 0xc
mov dword [esp + 0x44], 1
jmp 0x492c97
push 0
push dword [esp + 0x30]
push 0
push 0x4b
pop edx
mov ecx, esi
call fcn.0046b9a1
add esp, 0xc
and dword [esp + 0x44], 0
mov eax, dword [esp + 0x80]
test eax, eax
jle 0x492cb9
mov ecx, dword [ebx + 8]
mov edx, 0x9f
push 0
push dword [esp + 0x30]
push eax
call fcn.0046b9a1
add esp, 0xc
test byte [edi + 0x1c], 0x60
je 0x492ccc
mov edx, dword [esp + 0x4c]
mov ecx, ebx
push edi
call fcn.00491c0f
pop ecx
cmp byte [edi + 0x2b], 1
mov edx, edi
jne 0x492d31
mov ecx, dword [esp + 0x40]
call fcn.004a64f5
mov ecx, ebx
mov esi, eax
call fcn.004a7344
movsx eax, word [edi + 0x22]
push 0xfffffffffffffff5
push esi
push dword [esp + 0x68]
mov esi, dword [esp + 0x30]
add eax, 2
push eax
push 1
push 7
pop edx
mov ecx, esi
call fcn.0046bac5
mov eax, dword [ebp + 0x10]
add esp, 0x14
movzx edx, ax
cmp eax, 0xb
mov ecx, esi
push 2
pop eax
cmove edx, eax
call fcn.0046bf17
cmp dword [ebx + 0x78], 0
mov eax, ebx
cmovne eax, dword [ebx + 0x78]
mov byte [eax + 0x15], 1
jmp 0x492dd7
push dword [ebp + 0x14]
xor ecx, ecx
lea eax, [esp + 0x74]
push ecx
push eax
push dword [esp + 0x34]
mov eax, dword [esp + 0x48]
push dword [ebp + 0x10]
shr eax, 0x1f
xor al, 1
mov dword [esp + 0x84], ecx
movzx eax, al
push eax
push ecx
push dword [esp + 0x7c]
mov ecx, ebx
push dword [esp + 0xa4]
push dword [esp + 0x6c]
push dword [esp + 0x40]
call fcn.00492f60
mov eax, dword [esp + 0x6c]
xor ecx, ecx
add esp, 0x2c
mov eax, dword [eax + 0x20]
and eax, 0x4000
or eax, ecx
je 0x492d9c
push ecx
push ecx
push dword [esp + 0x68]
mov edx, edi
push ecx
mov ecx, ebx
call fcn.00490ac0
add esp, 0x10
xor ecx, ecx
cmp dword [esp + 0x70], 0
je 0x492daf
cmp dword [esi + 0xe0], ecx
je 0x492daf
mov eax, ecx
jmp 0x492db2
xor eax, eax
inc eax
push eax
push dword [esp + 0x48]
mov edx, edi
push ecx
push dword [esp + 0x24]
mov ecx, ebx
push dword [esp + 0x70]
push dword [esp + 0x98]
push dword [esp + 0x60]
call fcn.004940da
add esp, 0x1c
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x492df4
push 0
push 1
push eax
push 0x56
pop edx
mov ecx, esi
call fcn.0046b9a1
add esp, 0xc
mov edx, dword [esp + 0x64]
test edx, edx
je 0x492e23
push dword [esp + 0x28]
movsx eax, word [edi + 0x22]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x54]
push 2
sub ecx, eax
pop eax
sub ecx, eax
push ecx
push edi
push eax
push 0
push 0x7f
mov ecx, ebx
call fcn.004a3819
add esp, 0x1c
mov edx, dword [esp + 0x28]
mov ecx, esi
call fcn.0046bd45
cmp byte [esp + 0x13], 0
je 0x492e75
mov edi, dword [esp + 0x3c]
mov ecx, esi
push 0
push dword [esp + 0x7c]
push edi
push 0x27
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x88]
add esp, 0xc
mov ecx, esi
call fcn.0046c1e8
mov ecx, dword [esi + 0x6c]
push 0
push 0
push edi
mov dword [eax + 8], ecx
mov ecx, esi
push 0x7a
pop edx
call fcn.0046b9a1
add esp, 0xc
jmp 0x492e98
cmp dword [esp + 0xc], 0
je 0x492e98
mov edx, dword [esp + 0x78]
mov ecx, esi
call fcn.0046b9fa
mov edx, dword [esp + 0x7c]
mov ecx, esi
call fcn.0046c1e8
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
cmp byte [ebx + 0x12], 0
jne 0x492eb1
cmp dword [ebx + 0x7c], 0
jne 0x492eb1
cmp dword [ebx + 0x74], 0
je 0x492eb1
mov ecx, ebx
call fcn.00491f2e
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4925a1
push str.rows_inserted
mov edx, eax
mov ecx, esi
call fcn.0048ccc2
jmp 0x4927b5
mov ebx, dword [ebp + 8]
jmp 0x4925a9