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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf4
mov eax, dword [0x4e2040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
or dword [ebp - 0x84], 0xffffffff
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
push 8
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0x18]
push ecx
push eax
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xc8], edi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xec], 1
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0x90], ecx
call fcn.004b21c0
mov ebx, dword [edi]
add esp, 0xc
cmp dword [edi + 0x24], 0
mov dword [ebp - 0x64], ebx
jne 0x491ff5
mov edx, dword [ebp - 0xac]
mov ecx, edi
call fcn.0047a199
mov ebx, eax
mov dword [ebp - 0x98], ebx
test ebx, ebx
je 0x490fcf
mov edx, dword [ebx + 0x3c]
mov ecx, dword [edi]
call fcn.004864ff
mov dword [ebp - 0x68], eax
mov edx, ebx
lea eax, [ebp - 0xe8]
mov ecx, edi
push eax
push esi
push 0x81
call fcn.0048fb5d
mov dword [ebp - 0xa4], eax
add esp, 0xc
mov al, byte [ebx + 0x2b]
mov byte [ebp - 0x3a], al
mov eax, dword [ebp - 0xac]
cmp dword [eax], 1
jle 0x490b65
mov eax, dword [esi]
mov dword [ebp - 0x5c], eax
jmp 0x490b69
and dword [ebp - 0x5c], 0
mov edx, ebx
mov ecx, edi
call fcn.00476f83
test eax, eax
jne 0x490fcf
push dword [ebp - 0xe8]
mov edx, ebx
mov ecx, edi
call fcn.0047a279
pop ecx
test eax, eax
jne 0x490fcf
mov esi, dword [edi + 0x28]
mov edx, esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0xdc], edx
lea eax, [esi + 1]
mov dword [edi + 0x28], eax
test byte [ebx + 0x1c], 0x80
mov dword [ebp - 0xd0], eax
jne 0x490bb8
and dword [ebp - 0x60], 0
jmp 0x490bc2
mov ecx, ebx
call fcn.00474bb9
mov dword [ebp - 0x60], eax
mov ecx, dword [ebx + 8]
xor eax, eax
mov dword [ebp - 0xd8], eax
test ecx, ecx
je 0x490c04
mov edx, dword [ebp - 0xd0]
mov ebx, eax
cmp dword [ebp - 0x60], ecx
mov eax, edx
cmovne eax, esi
inc edx
mov dword [edi + 0x28], edx
inc ebx
mov ecx, dword [ecx + 0x14]
mov esi, eax
test ecx, ecx
jne 0x490bd9
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], ebx
mov ebx, dword [ebp - 0x98]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xbc]
test eax, eax
je 0x490c20
mov esi, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0xd0], eax
mov dword [edi + 0x28], edx
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x64]
push 0
mov dword [eax + 0x34], esi
movsx eax, word [ebx + 0x22]
mov esi, dword [ebp - 0xd8]
add eax, esi
lea eax, [eax*4 + 6]
add eax, esi
push eax
call fcn.0043f1a0
mov edx, eax
mov dword [ebp - 0x44], edx
pop ecx
pop ecx
test edx, edx
je 0x490f51
movsx eax, word [ebx + 0x22]
lea ecx, [esi + 1]
lea eax, [edx + eax*4]
lea ecx, [eax + ecx*4]
mov dword [ebp - 0xb8], eax
lea eax, [esi + 1]
mov dword [ebp - 0xc4], ecx
push eax
push 1
push ecx
call fcn.004b21c0
mov eax, dword [ebp - 0xc4]
add esp, 0xc
xor ecx, ecx
mov byte [eax + esi + 1], 0
xor eax, eax
cmp ax, word [ebx + 0x22]
jge 0x490cab
mov edi, dword [ebp - 0x44]
or dword [edi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [ebx + 0x22]
cmp ecx, eax
jl 0x490c98
mov edi, dword [ebp - 0xc8]
push 0x20
lea eax, [ebp - 0x38]
push 0
push eax
call fcn.004b21c0
mov ecx, dword [ebp - 0xbc]
add esp, 0xc
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x30], ecx
mov ecx, edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x20], 0x200
call fcn.00488de5
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x40], eax
test eax, eax
je 0x490fcf
and dword [ebp - 0x4c], 0
xor al, al
cmp dword [esi], 0
mov byte [ebp - 0x51], 0
mov byte [ebp - 0x39], al
jle 0x490ebc
lea eax, [esi + 8]
mov dword [ebp - 0x58], eax
mov ecx, dword [eax + 4]
call fcn.00441cfa
cmp dword [ebp - 0x5c], 0
mov dl, al
mov byte [ebp - 0x89], dl
jne 0x490d39
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x38]
mov edx, dword [eax]
call fcn.00468df9
test eax, eax
jne 0x490f4e
mov dl, byte [ebp - 0x89]
movsx eax, word [ebx + 0x22]
xor esi, esi
test eax, eax
jle 0x490dd8
mov eax, dword [ebx + 4]
movsx ecx, word [ebx + 0x22]
mov dword [ebp - 0x7c], eax
cmp byte [eax + 0xa], dl
jne 0x490d74
mov ecx, dword [ebp - 0x58]
mov edx, dword [ecx + 4]
mov ecx, dword [eax]
call fcn.00441c65
test eax, eax
je 0x490d81
mov eax, dword [ebp - 0x7c]
movsx ecx, word [ebx + 0x22]
mov dl, byte [ebp - 0x89]
inc esi
add eax, 0x10
mov dword [ebp - 0x7c], eax
cmp esi, ecx
jl 0x490d51
jmp 0x490dd8
movsx eax, word [ebx + 0x20]
cmp esi, eax
jne 0x490da3
mov eax, dword [ebp - 0x58]
mov byte [ebp - 0x39], 1
mov edx, dword [eax]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0x84], eax
jmp 0x490dd2
cmp dword [ebp - 0x60], 0
je 0x490dbd
mov eax, dword [ebx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 1
je 0x490dbd
mov byte [ebp - 0x51], 1
jmp 0x490dcf
mov eax, dword [ebx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
jne 0x490f3b
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + esi*4], eax
mov eax, dword [ebp - 0x84]
mov cl, byte [ebp - 0x39]
mov dword [ebp - 0x84], eax
movsx eax, word [ebx + 0x22]
mov byte [ebp - 0x39], cl
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xb4], ecx
cmp esi, eax
jl 0x490e38
cmp dword [ebp - 0x60], 0
jne 0x490fb2
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 4]
call fcn.0046b100
test eax, eax
je 0x490fb2
mov eax, dword [ebp - 0x58]
or esi, 0xffffffff
mov byte [ebp - 0x39], 1
mov eax, dword [eax]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x84], eax
jmp 0x490e3c
test esi, esi
jns 0x490e43
mov edx, str.ROWID
jmp 0x490e6b
mov eax, dword [ebx + 4]
mov ecx, esi
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov al, byte [ebp - 0x39]
mov byte [ebp - 0x39], al
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x68]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov ecx, edi
push edx
push dword [ebx]
push 0x17
pop edx
call fcn.00473b56
add esp, 0xc
cmp eax, 1
je 0x490f4e
cmp eax, 2
jne 0x490e9e
mov eax, dword [ebp - 0x44]
or dword [eax + esi*4], 0xffffffff
mov esi, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
inc esi
mov eax, dword [ebp - 0x58]
add eax, 0x14
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x58], eax
cmp esi, dword [ecx]
jl 0x490d08
mov al, byte [ebp - 0x39]
mov dl, byte [ebp - 0x51]
add dl, al
test byte [ebx + 0x1c], 0x60
mov byte [ebp - 0x58], dl
je 0x490ffe
mov edi, dword [ebp - 0x44]
xor edx, edx
xor eax, eax
xor esi, esi
mov dword [ebp - 0x7c], edx
cmp ax, word [ebx + 0x22]
jge 0x490ff5
xor ecx, ecx
mov dword [ebp - 0xb0], ecx
cmp dword [edi + esi*4], 0
jge 0x490fd7
mov edx, dword [ebx + 4]
add edx, ecx
test byte [edx + 0xe], 0x60
je 0x490fd4
movzx eax, byte [ebp - 0x39]
mov ecx, ebx
push eax
call fcn.004746b0
mov edx, edi
mov ecx, eax
call fcn.00480284
pop ecx
mov ecx, dword [ebp - 0xb0]
test eax, eax
je 0x490fd4
xor edx, edx
mov dword [edi + esi*4], 0x1869f
inc edx
mov dword [ebp - 0x7c], edx
jmp 0x490fd7
mov eax, dword [ebp - 0x7c]
push dword [eax]
push str.cannot_UPDATE_generated_column___s_
push edi
call fcn.00441b18
add esp, 0xc
mov edx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x490f6b
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0xfc], eax
and dword [ebp - 0x14], 0
test edx, edx
je 0x490f76
mov ecx, ebx
call fcn.0043eeff
mov edx, dword [ebp - 0xac]
mov ecx, ebx
call fcn.00478ead
test esi, esi
je 0x490f90
mov edx, esi
mov ecx, ebx
call fcn.0046ac05
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x490fa3
mov edx, eax
mov ecx, ebx
call fcn.00469f9d
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004b0ce6
leave
ret
imul eax, dword [ebp - 0x4c], 0x14
mov esi, dword [ebp - 0x50]
push dword [eax + esi + 0xc]
push str.no_such_column:__s
push edi
call fcn.00441b18
add esp, 0xc
mov byte [edi + 0x11], 1
mov edx, dword [ebp - 0x44]
jmp 0x490f54
mov edx, dword [ebp - 0x7c]
movsx eax, word [ebx + 0x22]
inc esi
add ecx, 0x10
mov dword [ebp - 0xb0], ecx
cmp esi, eax
jl 0x490eec
test edx, edx
jne 0x490ed1
mov edi, dword [ebp - 0xc8]
mov dl, byte [ebp - 0x58]
cmp byte [ebx + 0x2b], 1
jne 0x49100c
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x49101a
xorps xmm0, xmm0
movlpd qword [ebp - 0x80], xmm0
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x80]
mov esi, dword [ebp - 0xac]
mov dword [esi + 0x40], eax
movzx eax, dl
mov edx, ebx
push eax
push dword [ebp - 0x44]
mov dword [esi + 0x44], ecx
mov ecx, edi
call fcn.0047e439
cmp dword [ebp + 0x10], 5
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x491048
mov dword [ebp - 0x10], 1
mov esi, dword [ebx + 8]
xor ecx, ecx
mov dword [ebp - 0xb0], ecx
test esi, esi
je 0x491197
mov eax, dword [ebp - 0xc4]
mov ebx, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x88], eax
cmp byte [ebp - 0x58], 0
jne 0x491141
cmp ebx, 1
jg 0x491141
cmp esi, dword [ebp - 0x60]
je 0x491141
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x4910aa
movzx eax, byte [ebp - 0x39]
mov edx, dword [ebp - 0x44]
push eax
call fcn.00480284
pop ecx
test eax, eax
jne 0x491141
mov eax, dword [ebp - 0x88]
xor edi, edi
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x70], edx
cmp di, word [esi + 0x32]
mov edi, dword [ebp - 0xc8]
mov dword [ebp - 0x74], ecx
jae 0x49115b
mov dword [ebp - 0x7c], edx
mov eax, dword [esi + 4]
movzx eax, word [eax + ecx*2]
test ax, ax
js 0x4910e3
mov ebx, dword [ebp - 0x44]
cwde
mov eax, dword [ebx + eax*4]
not eax
shr eax, 0x1f
jmp 0x491101
movzx eax, byte [ebp - 0x39]
mov ecx, dword [esi + 0x28]
mov edx, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ecx + eax + 8]
call fcn.00480284
mov edx, dword [ebp - 0x7c]
pop ecx
mov ecx, dword [ebp - 0x74]
test eax, eax
jne 0x49111c
movzx eax, word [esi + 0x32]
inc ecx
add edx, 0x14
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x7c], edx
cmp ecx, eax
jl 0x4910c9
mov edx, dword [ebp - 0x70]
jmp 0x491155
mov edx, dword [edi + 0x2c]
inc edx
mov dword [edi + 0x2c], edx
movzx eax, word [esi + 0x34]
add eax, edx
cmp dword [ebp + 0x10], 0xb
mov dword [edi + 0x2c], eax
jne 0x491151
cmp byte [esi + 0x36], 5
jne 0x491151
mov dword [ebp - 0x10], 1
jmp 0x491151
mov edx, dword [edi + 0x2c]
inc edx
mov dword [edi + 0x2c], edx
movzx eax, word [esi + 0x34]
add eax, edx
mov dword [edi + 0x2c], eax
test edx, edx
jne 0x491160
mov eax, dword [ebp - 0x88]
mov byte [eax], 0
jmp 0x491166
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0xb0]
mov ebx, dword [ebp - 0xb8]
mov dword [ebx + ecx*4], edx
inc ecx
mov esi, dword [esi + 0x14]
inc eax
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x88], eax
test esi, esi
jne 0x49106b
mov ebx, dword [ebp - 0x98]
mov edx, dword [ebp - 0xb8]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [edx + ecx*4], eax
cmp dword [ebp - 0x10], 0
je 0x4911c4
mov eax, dword [ebp - 0xd8]
inc eax
push eax
push 1
push dword [ebp - 0xc4]
call fcn.004b21c0
add esp, 0xc
cmp byte [edi + 0x12], 0
mov esi, dword [ebp - 0x40]
jne 0x4911d4
or dword [esi + 0x98], 0x10
cmp dword [ebp - 0xa4], 0
jne 0x4911e7
cmp dword [ebp - 0x4c], 0
jne 0x4911e7
xor edx, edx
jmp 0x4911ea
xor edx, edx
inc edx
push dword [ebp - 0x68]
mov ecx, edi
call fcn.00479447
cmp byte [ebx + 0x2b], 1
pop ecx
je 0x491284
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xb8]
mov edx, dword [edi + 0x2c]
inc edx
cmp byte [ebp - 0x51], 0
mov dword [ebp - 0xa0], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xd4], eax
mov dword [edi + 0x2c], edx
mov dword [ebp - 0x6c], edx
jne 0x49123c
cmp dword [ebp - 0xa4], 0
jne 0x49123c
mov eax, dword [ebp - 0x4c]
mov ecx, edx
test eax, eax
je 0x491251
movsx ecx, word [ebx + 0x22]
lea eax, [edx + 1]
add ecx, edx
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x4c]
mov dword [edi + 0x2c], ecx
cmp byte [ebp - 0x58], 0
jne 0x491264
cmp dword [ebp - 0xa4], 0
jne 0x491264
test eax, eax
je 0x491272
lea eax, [ecx + 1]
mov dword [ebp - 0xa0], eax
mov ecx, eax
mov dword [edi + 0x2c], eax
lea eax, [ecx + 1]
mov dword [ebp - 0xcc], eax
movsx eax, word [ebx + 0x22]
add eax, ecx
mov dword [edi + 0x2c], eax
mov al, byte [ebp - 0x3a]
cmp al, 2
jne 0x4912a2
mov ecx, dword [ebx]
mov eax, dword [edi + 0xfc]
mov dword [ebp - 0x18], eax
mov al, byte [ebp - 0x3a]
mov dword [ebp - 0x14], edi
mov dword [edi + 0xfc], ecx
cmp dword [ebp - 0x5c], 0
jne 0x4912db
cmp al, 2
jne 0x4912c5
push dword [ebp - 0x48]
mov edx, ebx
mov ecx, edi
push 0
push 0
push dword [ebp - 0xc0]
call fcn.0047a2e9
add esp, 0x10
mov edx, dword [ebp - 0xc0]
lea ecx, [ebp - 0x38]
call fcn.00468df9
test eax, eax
jne 0x490f4e
cmp byte [ebx + 0x2b], 1
jne 0x49130e
push dword [ebp + 0x10]
mov edx, dword [ebp - 0xb4]
mov ecx, edi
push dword [ebp - 0xc0]
mov esi, dword [ebp - 0x50]
push dword [ebp - 0x44]
push edx
mov edx, dword [ebp - 0xac]
push esi
push ebx
call fcn.00491ffd
add esp, 0x18
jmp 0x490fcf
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x491369
cmp dword [edi + 0x7c], 0
jne 0x491369
cmp byte [edi + 0x12], 0
jne 0x491369
cmp byte [edi + 0x99], 0
jne 0x491369
cmp dword [ebp - 0xbc], 0
jne 0x491369
mov eax, dword [edi + 0x2c]
mov ecx, esi
inc eax
push 0
push eax
push 0
push 0x47
pop edx
mov dword [ebp - 0xf4], eax
mov dword [edi + 0x2c], eax
call fcn.004591cc
add esp, 0xc
cmp dword [ebp - 0x5c], 0
jne 0x49145a
test byte [ebx + 0x1c], 0x80
jne 0x49145a
push dword [ebp - 0x6c]
mov ecx, esi
push dword [ebp - 0xd4]
push 0
push 0x4b
pop edx
call fcn.004591cc
mov ecx, dword [edi + 0x28]
add esp, 0xc
mov dword [ebp - 0x70], ecx
push dword [ebp - 0xd4]
lea eax, [ecx + 1]
push 0
push ecx
push 0x76
pop edx
mov ecx, esi
mov dword [edi + 0x28], eax
call fcn.004591cc
add esp, 0xc
mov esi, eax
cmp dword [ebp - 0xbc], 0
mov dword [ebp - 0x7c], esi
je 0x491558
and dword [ebp - 0xe4], 0
push 0x10
push dword [ebp - 0x88]
mov dword [ebp - 0x68], 1
push dword [ebp - 0xc0]
push edi
call fcn.0046e269
add esp, 0x10
and dword [ebp - 0xec], 0
mov ecx, dword [ebp - 0x48]
test byte [ebx + 0x1c], 0x80
jne 0x49168c
push 0
push dword [ebp - 0x6c]
mov edx, 0x87
push ecx
mov ecx, dword [ebp - 0x40]
call fcn.004591cc
mov eax, dword [ebp - 0x68]
add esp, 0xc
test eax, eax
jne 0x491675
mov eax, dword [edi + 0x2c]
push dword [ebp - 0x6c]
mov ecx, dword [ebp - 0xb0]
inc eax
mov edx, dword [ebp - 0xb8]
push dword [ebp - 0xd4]
mov dword [edi + 0x2c], eax
push dword [ebp - 0x70]
mov dword [edx + ecx*4], eax
mov edx, 0x80
mov ecx, dword [ebp - 0x40]
call fcn.004591cc
add esp, 0xc
jmp 0x49175d
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x491467
movzx ecx, word [eax + 0x32]
jmp 0x491469
xor ecx, ecx
mov eax, dword [edi + 0x2c]
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x94], ecx
inc esi
movsx ecx, cx
lea edx, [eax + 1]
add eax, ecx
add eax, esi
mov dword [ebp - 0xa8], edx
cmp dword [ebp - 0xbc], 0
mov dword [ebp - 0x90], eax
mov dword [edi + 0x2c], eax
jne 0x491630
cmp byte [ebp - 0x3a], 2
jne 0x4914a8
movsx eax, word [ebx + 0x22]
jmp 0x4914aa
xor eax, eax
lea esi, [eax + ecx]
mov eax, dword [edi + 0x28]
add esi, dword [ebp - 0x5c]
mov dword [ebp - 0x70], eax
inc eax
cmp dword [ebp - 0x60], 0
mov dword [edi + 0x28], eax
je 0x4914d7
lea eax, [ecx - 1]
mov ecx, dword [ebp - 0x40]
add eax, edx
push eax
push edx
push 0
push 0x4b
pop edx
call fcn.004591cc
add esp, 0xc
mov ecx, dword [ebp - 0x40]
push 0
push esi
push dword [ebp - 0x70]
push 0x76
pop edx
call fcn.004591cc
mov dword [ebp - 0x7c], eax
add esp, 0xc
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x491516
mov edx, eax
mov ecx, edi
call fcn.00479879
test eax, eax
je 0x491513
mov ecx, dword [ebp - 0x40]
mov edx, eax
push 0xfffffffffffffff8
mov word [eax + 8], si
call fcn.004599ea
pop ecx
mov eax, dword [ebp - 0x60]
cmp dword [ebp - 0x5c], 0
je 0x491555
mov esi, dword [ebp - 0x70]
mov edx, esi
push ecx
push ecx
push dword [ebp - 0xc0]
mov ecx, edi
push dword [ebp - 0xac]
push dword [ebp - 0x50]
push eax
call fcn.004907ec
mov edx, dword [ebp - 0xa8]
add esp, 0x18
cmp byte [ebp - 0x3a], 2
jne 0x491648
mov dword [ebp - 0x48], esi
jmp 0x491648
mov esi, dword [ebp - 0x7c]
cmp byte [edi + 0x12], 0
push 4
pop eax
jne 0x491580
cmp dword [ebp - 0xa4], 0
jne 0x491580
cmp dword [ebp - 0x4c], 0
jne 0x491580
cmp byte [ebp - 0x58], 0
jne 0x491580
cmp dword [ebp - 0x10], 0
push 0xc
pop ecx
cmove eax, ecx
push dword [ebp - 0xd0]
mov edx, dword [ebp - 0xac]
mov ecx, edi
push eax
xor eax, eax
push eax
push eax
push eax
push dword [ebp - 0xc0]
call fcn.0049e7d9
add esp, 0x18
mov dword [ebp - 0xe4], eax
test eax, eax
je 0x490f4e
add eax, 0x14
push 8
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.004b1c10
mov eax, dword [ebp - 0xe4]
add esp, 0xc
movzx ecx, byte [eax + 0x2e]
mov edx, dword [eax + 0x30]
and edx, 1
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0xec], edx
cmp ecx, 1
je 0x4913f5
cmp dword [edi + 0x78], 0
mov eax, edi
cmovne eax, dword [edi + 0x78]
mov byte [eax + 0x14], 1
cmp ecx, 2
jne 0x4913f5
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x48]
test eax, eax
js 0x4913f8
cmp eax, ecx
je 0x4913f8
sub eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xc4]
cmp byte [eax + edx], 0
je 0x4913f8
and dword [ebp - 0x68], 0
jmp 0x4913f8
and dword [ebp - 0x70], 0
xor esi, esi
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x48], ecx
cmp dword [ebp - 0x5c], esi
je 0x4913c9
cmp dword [edi + 0x78], 0
mov eax, edi
mov ecx, dword [ebp - 0x94]
cmovne eax, dword [edi + 0x78]
movsx esi, cx
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0x90], edx
mov byte [eax + 0x14], 1
xor eax, eax
mov dword [ebp - 0x68], eax
jmp 0x491760
test esi, esi
je 0x491760
mov ecx, dword [ebp - 0x40]
mov edx, esi
call fcn.004598c7
jmp 0x49175d
mov edx, dword [ebp - 0x94]
xor esi, esi
movsx eax, dx
test eax, eax
jle 0x4916d3
mov edi, eax
mov eax, dword [ebp - 0xa8]
mov edx, ebx
add eax, esi
push eax
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push ecx
mov ecx, dword [ebp - 0x40]
call fcn.0046c5f4
mov ecx, dword [ebp - 0x48]
add esp, 0xc
inc esi
cmp esi, edi
jl 0x49169d
mov edi, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x94]
cmp dword [ebp - 0x68], 0
je 0x491707
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x4916ea
mov ecx, dword [ebp - 0x40]
mov edx, eax
call fcn.004598c7
mov ecx, dword [ebp - 0x94]
movsx eax, cx
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x90], eax
jmp 0x49175d
movsx esi, dx
mov edx, dword [ebp - 0x60]
push esi
push ecx
mov ecx, dword [ebp - 0x64]
call fcn.0047ecfc
pop ecx
mov ecx, dword [ebp - 0x40]
push eax
push dword [ebp - 0x90]
push esi
push dword [ebp - 0xa8]
push 0x61
pop edx
call fcn.004592f6
mov ecx, dword [ebp - 0x94]
add esp, 0x14
movsx eax, cx
mov edx, 0x8a
mov ecx, dword [ebp - 0x40]
push eax
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push dword [ebp - 0x70]
call fcn.004594df
add esp, 0x10
mov eax, dword [ebp - 0x68]
cmp dword [ebp - 0xbc], 0
jne 0x4919cd
cmp dword [ebp - 0x5c], 0
jne 0x491783
cmp eax, 2
je 0x491783
mov ecx, dword [ebp - 0xe4]
call fcn.0049f234
cmp byte [ebp - 0x3a], 2
je 0x49181d
mov ecx, dword [ebp - 0x68]
xor esi, esi
test ecx, ecx
je 0x4917ec
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc4]
test eax, eax
js 0x4917ad
sub eax, dword [ebp - 0xdc]
mov byte [eax + edx], 0
mov eax, dword [ebp - 8]
test eax, eax
js 0x4917be
sub eax, dword [ebp - 0xdc]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x4917ec
mov ecx, dword [ebp - 0xd8]
xor eax, eax
cmp dword [ebp - 8], eax
setge al
sub ecx, eax
test ecx, ecx
jle 0x4917ec
mov ecx, dword [ebp - 0x40]
xor eax, eax
push eax
push eax
push eax
push 0xf
pop edx
call fcn.004591cc
add esp, 0xc
mov esi, eax
xor ecx, ecx
mov edx, ebx
push ecx
push ecx
push dword [ebp - 0xc4]
push dword [ebp - 0xdc]
push ecx
push 0x71
mov ecx, edi
call fcn.00481560
add esp, 0x18
test esi, esi
je 0x49181d
mov edx, esi
mov esi, dword [ebp - 0x40]
mov ecx, esi
call fcn.00459784
jmp 0x491820
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x49188f
mov ecx, dword [ebp - 0x48]
cmp dword [ebp - 0xc], ecx
je 0x491857
cmp dword [ebp - 8], ecx
je 0x491857
push dword [ebp - 0xe0]
push dword [ebp - 0x90]
push dword [ebp - 0x88]
push ecx
push 0x1c
pop edx
mov ecx, esi
call fcn.004594df
mov eax, dword [ebp - 0x68]
add esp, 0x10
cmp eax, 1
je 0x491866
mov eax, dword [edi + 0x38]
dec eax
mov dword [ebp - 0x74], eax
mov dword [edi + 0x38], eax
cmp dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x6c]
cmovne eax, dword [ebp - 0x90]
push 0
push dword [ebp - 0x88]
push eax
push 0x32
pop edx
mov ecx, esi
call fcn.004591cc
add esp, 0xc
jmp 0x4919d0
cmp dword [ebp - 0x60], 0
jne 0x4918e7
cmp dword [ebp - 0x5c], 0
jne 0x4918e7
push 0
push dword [ebp - 0x88]
mov ecx, esi
push dword [ebp - 0x70]
push 0x24
pop edx
call fcn.004591cc
mov eax, dword [edi + 0x38]
add esp, 0xc
dec eax
mov edx, 0x87
mov ecx, esi
mov dword [ebp - 0x74], eax
mov dword [edi + 0x38], eax
push 0
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call fcn.004591cc
mov dword [ebp - 0xf0], eax
add esp, 0xc
push dword [ebp - 0x6c]
push dword [ebp - 0x74]
push dword [ebp - 0x48]
push 0x1f
jmp 0x49187f
mov eax, dword [edi + 0x38]
mov ecx, esi
push 0
push dword [ebp - 0x88]
dec eax
push dword [ebp - 0x70]
mov dword [ebp - 0x74], eax
push 0x24
pop edx
mov dword [edi + 0x38], eax
call fcn.004591cc
mov eax, dword [esi + 0x6c]
add esp, 0xc
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x4919a9
cmp byte [ebp - 0x3a], 2
je 0x4919d3
cmp dword [ebp - 0x60], 0
je 0x491990
mov eax, dword [ebp - 0x94]
xor esi, esi
cwde
test eax, eax
jle 0x49196a
mov ebx, dword [ebp - 0x40]
mov edi, eax
mov eax, dword [ebp - 0xa8]
mov ecx, ebx
add eax, esi
push eax
push esi
push dword [ebp - 0x70]
push 0x5e
pop edx
call fcn.004591cc
add esp, 0xc
inc esi
cmp esi, edi
jl 0x49193f
mov edi, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x94]
mov esi, dword [ebp - 0x40]
cwde
push eax
push dword [ebp - 0xa8]
push dword [ebp - 0x74]
mov ecx, esi
push dword [ebp - 0x48]
push 0x1c
pop edx
call fcn.004594df
add esp, 0x10
jmp 0x4919d0
push 0
push dword [ebp - 0x6c]
mov edx, 0x87
mov ecx, esi
push dword [ebp - 0x70]
call fcn.004591cc
jmp 0x4918d7
push 0
push dword [ebp - 0x90]
mov edx, 0x86
mov ecx, esi
push dword [ebp - 0x70]
call fcn.004591cc
add esp, 0xc
push 0
push dword [ebp - 0x90]
jmp 0x49197b
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x5c]
cmp byte [ebp - 0x39], 0
je 0x491a21
push dword [ebp - 0xa0]
test eax, eax
jne 0x4919f3
mov edx, dword [ebp - 0xb4]
mov ecx, edi
call fcn.0046dbf2
pop ecx
jmp 0x491a0a
mov ecx, dword [ebp - 0x84]
push ecx
push dword [ebp - 0x70]
mov ecx, esi
push 0x5e
pop edx
call fcn.004591cc
add esp, 0xc
push 0
push 0
push dword [ebp - 0xa0]
mov ecx, esi
push 0xd
pop edx
call fcn.004591cc
add esp, 0xc
cmp byte [ebp - 0x51], 0
mov eax, dword [ebp - 0x4c]
jne 0x491a3a
test eax, eax
jne 0x491a3e
cmp dword [ebp - 0xa4], eax
je 0x491b25
test eax, eax
je 0x491a4b
mov edx, ebx
mov ecx, edi
call fcn.0047e35f
mov esi, eax
jmp 0x491a4d
xor esi, esi
push dword [ebp + 0x10]
mov edx, dword [ebp - 0xa4]
mov ecx, edi
push ebx
push 3
push 0
push dword [ebp - 0x50]
call fcn.004906c3
or esi, eax
add esp, 0x14
mov dword [ebp - 0x7c], esi
xor eax, eax
xor esi, esi
cmp ax, word [ebx + 0x22]
jge 0x491b00
mov edi, dword [ebp - 0x7c]
xor ecx, ecx
mov dword [ebp - 0x98], ecx
mov eax, dword [ebx + 4]
mov edx, esi
movzx eax, word [eax + ecx + 0xe]
mov ecx, ebx
mov dword [ebp - 0x7c], eax
call fcn.00474bf1
movsx edx, ax
add edx, dword [ebp - 0x9c]
cmp edi, 0xffffffff
je 0x491ad0
cmp esi, 0x20
jge 0x491ab8
xor eax, eax
mov ecx, esi
inc eax
shl eax, cl
test edi, eax
jne 0x491ad0
test byte [ebp - 0x7c], 1
jne 0x491ad0
mov ecx, dword [ebp - 0x40]
push 0
push edx
push 0
push 0x4b
pop edx
call fcn.004591cc
jmp 0x491adf
mov ecx, dword [ebp - 0x40]
push edx
push esi
push dword [ebp - 0x48]
mov edx, ebx
call fcn.0046c5f4
mov ecx, dword [ebp - 0x98]
add esp, 0xc
movsx eax, word [ebx + 0x22]
inc esi
add ecx, 0x10
mov dword [ebp - 0x98], ecx
cmp esi, eax
jl 0x491a86
mov edi, dword [ebp - 0xc8]
cmp byte [ebp - 0x39], 0
jne 0x491b25
cmp dword [ebp - 0x60], 0
jne 0x491b25
mov ecx, dword [ebp - 0x40]
push 0
push dword [ebp - 0xa0]
push dword [ebp - 0x6c]
push 0x50
pop edx
call fcn.004591cc
add esp, 0xc
push dword [ebp + 0x10]
mov edx, dword [ebp - 0xa4]
mov ecx, edi
push ebx
push 1
push 1
push dword [ebp - 0x50]
call fcn.004906c3
movzx edx, word [ebx + 0x22]
xor ecx, ecx
and dword [ebp - 0x9c], ecx
add esp, 0x14
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xcc]
mov esi, eax
mov dword [ebp - 0x84], ecx
cmp word [ebp - 0x9c], dx
jge 0x491c66
mov dword [ebp - 0x9c], edx
xor edx, edx
mov dword [ebp - 0x98], edx
movsx eax, word [ebx + 0x20]
cmp ecx, eax
jne 0x491b98
push 0
push esi
push 0
push 0x4b
mov ecx, dword [ebp - 0x40]
pop edx
call fcn.004591cc
add esp, 0xc
jmp 0x491c30
mov eax, dword [ebx + 4]
movzx eax, word [eax + edx + 0xe]
test al, 0x60
je 0x491bb2
test al, 0x20
je 0x491c36
dec esi
jmp 0x491c36
mov eax, dword [ebp - 0x44]
mov edx, dword [eax + ecx*4]
test edx, edx
js 0x491bf8
cmp dword [ebp - 0x5c], 0
je 0x491be3
cmp byte [ebp - 0x3a], 2
mov eax, dword [ebp - 0x9c]
je 0x491bd4
mov eax, dword [ebp - 0x94]
movzx eax, ax
push esi
cwde
add eax, edx
push eax
push dword [ebp - 0x70]
push 0x5e
jmp 0x491b87
mov eax, dword [ebp - 0x50]
mov ecx, edi
imul edx, edx, 0x14
push esi
mov edx, dword [edx + eax + 8]
call fcn.0046dbf2
pop ecx
jmp 0x491c30
test dword [ebp - 0xe8], 1
je 0x491c17
cmp ecx, 0x1f
jg 0x491c17
xor eax, eax
inc eax
shl eax, cl
test dword [ebp - 0x7c], eax
je 0x491b80
push esi
push ecx
push dword [ebp - 0x48]
mov ecx, dword [ebp - 0x40]
mov edx, ebx
call fcn.0046c5f4
add esp, 0xc
and dword [ebp - 0xec], 0
mov ecx, dword [ebp - 0x84]
movzx eax, word [ebx + 0x22]
inc ecx
add dword [ebp - 0x98], 0x10
mov edx, eax
cwde
inc esi
mov dword [ebp - 0x9c], edx
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x84], ecx
cmp ecx, eax
jl 0x491b78
mov eax, dword [ebp - 0xcc]
test byte [ebx + 0x1c], 0x60
je 0x491c77
push ebx
mov edx, eax
mov ecx, edi
call fcn.0047ef84
pop ecx
test byte [ebp - 0xe8], 1
je 0x491d92
mov eax, dword [ebp - 0xcc]
mov edx, ebx
mov esi, dword [ebp - 0x40]
mov ecx, esi
push eax
call fcn.0047ee11
mov edx, dword [ebp - 0xa4]
pop ecx
push dword [ebp - 0x74]
mov ecx, edi
push dword [ebp + 0x10]
push dword [ebp - 0x6c]
push ebx
push 1
push dword [ebp - 0x50]
push 0x81
call fcn.00490637
add esp, 0x1c
cmp byte [ebp - 0x3a], 2
je 0x491f23
cmp dword [ebp - 0x60], 0
mov ecx, esi
je 0x491ced
push dword [ebp - 0xe0]
push dword [ebp - 0x90]
push dword [ebp - 0x74]
push dword [ebp - 0x48]
push 0x1c
pop edx
call fcn.004594df
add esp, 0x10
jmp 0x491d01
push dword [ebp - 0x6c]
push dword [ebp - 0x74]
push dword [ebp - 0x48]
push 0x1f
pop edx
call fcn.004591cc
add esp, 0xc
mov eax, dword [ebp - 0xcc]
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0xe8], eax
cmp cx, word [ebx + 0x22]
jge 0x491d7f
mov dword [ebp - 0x9c], ecx
mov edi, eax
mov eax, dword [ebx + 4]
movzx eax, word [eax + ecx + 0xe]
test al, 0x60
je 0x491d37
test al, 0x20
lea eax, [edi - 1]
cmove eax, edi
mov edi, eax
jmp 0x491d60
mov eax, dword [ebp - 0x44]
cmp dword [eax + esi*4], 0
jge 0x491d60
movsx eax, word [ebx + 0x20]
cmp esi, eax
je 0x491d60
mov ecx, dword [ebp - 0x40]
mov edx, ebx
push edi
push esi
push dword [ebp - 0x48]
call fcn.0046c5f4
mov ecx, dword [ebp - 0x9c]
add esp, 0xc
movsx eax, word [ebx + 0x22]
add ecx, 0x10
inc esi
mov dword [ebp - 0x9c], ecx
inc edi
cmp esi, eax
jl 0x491d1f
mov edi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xcc]
test byte [ebx + 0x1c], 0x60
je 0x491d9c
push ebx
mov edx, eax
mov ecx, edi
call fcn.0047ef84
pop ecx
jmp 0x491d9c
cmp byte [ebp - 0x3a], 2
je 0x491f20
mov esi, dword [ebp - 0x74]
lea eax, [ebp - 0x10]
push 0
push dword [ebp - 0x44]
mov edx, ebx
mov ecx, edi
push eax
push esi
push dword [ebp + 0x10]
push dword [ebp - 0x58]
push dword [ebp - 0x6c]
push dword [ebp - 0xa0]
push dword [ebp - 0xd0]
push dword [ebp - 0x48]
push dword [ebp - 0xb8]
call fcn.004802f0
add esp, 0x2c
cmp dword [ebp - 0x10], 0
jne 0x491de0
mov al, byte [ebp - 0x58]
test al, al
je 0x491e24
cmp dword [ebp - 0x60], 0
je 0x491e0b
push dword [ebp - 0xe0]
push dword [ebp - 0x90]
push esi
push dword [ebp - 0x48]
mov esi, dword [ebp - 0x40]
mov ecx, esi
push 0x1c
pop edx
call fcn.004594df
add esp, 0x10
mov al, byte [ebp - 0x58]
jmp 0x491e27
push dword [ebp - 0x6c]
push esi
push dword [ebp - 0x48]
mov esi, dword [ebp - 0x40]
mov ecx, esi
push 0x1f
pop edx
call fcn.004591cc
add esp, 0xc
jmp 0x491e06
mov esi, dword [ebp - 0x40]
cmp dword [ebp - 0x4c], 0
je 0x491e45
movzx eax, al
mov edx, ebx
push eax
push dword [ebp - 0x44]
mov ecx, edi
push 0
push dword [ebp - 0x6c]
call fcn.0047df34
add esp, 0x10
push 0xffffffffffffffff
push dword [ebp - 0xb8]
mov edx, ebx
mov ecx, edi
push dword [ebp - 0xd0]
push dword [ebp - 0x48]
call fcn.0047af8c
add esp, 0x10
cmp dword [ebp - 0xec], 0
je 0x491e81
push 0
push 0
push dword [ebp - 0x48]
mov edx, 0x8f
mov ecx, esi
call fcn.004591cc
add esp, 0xc
mov eax, dword [ebp - 0x4c]
cmp eax, 1
jg 0x491e90
mov cl, byte [ebp - 0x58]
test cl, cl
je 0x491eac
push 0
push 0
push dword [ebp - 0x48]
mov edx, 0x82
mov ecx, esi
call fcn.004591cc
mov eax, dword [ebp - 0x4c]
add esp, 0xc
mov cl, byte [ebp - 0x58]
test eax, eax
je 0x491ecb
movzx eax, cl
mov edx, ebx
push eax
push dword [ebp - 0x44]
mov ecx, edi
push dword [ebp - 0xa0]
push 0
call fcn.0047df34
add esp, 0x10
cmp dword [ebp - 0x68], 2
mov edx, ebx
push 0
push 0
push 6
pop ecx
push 4
pop eax
cmove eax, ecx
mov ecx, edi
push eax
push dword [ebp - 0xb8]
push dword [ebp - 0xa0]
push dword [ebp - 0xd0]
push dword [ebp - 0x48]
call fcn.00481407
add esp, 0x1c
cmp dword [ebp - 0x4c], 0
je 0x491f23
movzx eax, byte [ebp - 0x58]
mov edx, ebx
push eax
push dword [ebp - 0x44]
mov ecx, edi
push dword [ebp - 0x6c]
push dword [ebp - 0x50]
call fcn.0047eb8c
add esp, 0x10
jmp 0x491f23
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0xf4]
test eax, eax
je 0x491f3f
push 0
push 1
push eax
push 0x56
pop edx
mov ecx, esi
call fcn.004591cc
add esp, 0xc
push dword [ebp - 0x74]
mov edx, dword [ebp - 0xa4]
mov ecx, edi
push dword [ebp + 0x10]
push dword [ebp - 0x6c]
push ebx
push 2
push dword [ebp - 0x50]
push 0x81
call fcn.00490637
mov eax, dword [ebp - 0x68]
add esp, 0x1c
cmp eax, 1
je 0x491fa4
mov edx, dword [ebp - 0x74]
mov ecx, esi
cmp eax, 2
jne 0x491f87
call fcn.00459579
mov ecx, dword [ebp - 0xe4]
call fcn.0049f234
jmp 0x491fa4
call fcn.00459579
push 0
push dword [ebp - 0xf0]
mov ecx, esi
push dword [ebp - 0x70]
push 0x27
pop edx
call fcn.004591cc
add esp, 0xc
mov edx, dword [ebp - 0x88]
mov ecx, esi
call fcn.00459579
cmp byte [edi + 0x12], 0
jne 0x491fd3
cmp dword [edi + 0x7c], 0
jne 0x491fd3
cmp dword [ebp - 0xbc], 0
jne 0x491fd3
cmp dword [edi + 0x74], 0
je 0x491fd3
mov ecx, edi
call fcn.0047f2ba
mov eax, dword [ebp - 0xf4]
test eax, eax
je 0x490f4e
push str.rows_updated
mov edx, eax
mov ecx, esi
call fcn.0047a1de
pop ecx
jmp 0x490f4e
mov edx, dword [ebp - 0x44]
jmp 0x490f57