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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov eax, dword [0x6121d4]
xor eax, esp
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ecx + 8]
mov dword [esp + 0x14], eax
mov eax, dword [ecx]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 8], eax
mov dword [esp + 0x60], esi
push edi
mov edi, edx
test esi, esi
jne 0x46b5f7
cmp dword [ecx + 0x80], esi
jne 0x46b5e4
test byte [eax + 0x50], 8
jne 0x46b5e4
mov byte [ecx + 0x17], 1
call fcn.0042e2f0
mov esi, eax
mov dword [esp + 0x64], eax
test esi, esi
je 0x46edc0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x46b616
push 0
push 1
push 1
mov edx, 0xa6
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
jmp 0x46b649
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xa6
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x34]
push ecx
push ebx
mov edx, edi
mov ecx, eax
mov dword [eax + 0x2c], 2
call fcn.004565e0
mov ecx, eax
add esp, 8
mov dword [esp + 0x38], ecx
test ecx, ecx
js 0x46edc0
mov eax, dword [esp + 0xc]
mov ebx, ecx
shl ebx, 4
mov dword [esp + 0x2c], ebx
mov edi, dword [eax + 0x10]
add edi, ebx
mov dword [esp + 0x28], edi
cmp ecx, 1
jne 0x46b6a4
mov ecx, dword [esp + 0x10]
call fcn.0045c110
test eax, eax
jne 0x46edc0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x34]
mov ecx, eax
call fcn.004563e0
mov dword [esp + 0x70], eax
test eax, eax
je 0x46edc0
cmp dword [ebp + 0x10], 0
je 0x46b6de
push dword [esp + 0x18]
push 0x5e0f48
push dword [esp + 0x14]
call fcn.0040a750
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x30], ecx
jmp 0x46b6f1
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
call fcn.004563e0
mov ecx, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
jbe 0x46b6ff
mov edi, dword [edi]
jmp 0x46b701
xor edi, edi
push edi
push ecx
push dword [esp + 0x78]
mov ecx, dword [esp + 0x1c]
mov edx, 0x13
mov dword [esp + 0x28], edi
call fcn.00455030
add esp, 0xc
test eax, eax
jne 0x46eda0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], 0
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1c8], 0
mov dword [esp + 0x18], 1
test eax, eax
je 0x46b785
mov edi, dword [0x613a80]
mov ecx, edi
push eax
call dword [0x5aa43c]
call edi
mov edi, dword [esp + 0x20]
add esp, 4
mov ecx, dword [esp + 0xc]
test edi, edi
je 0x46b798
mov edx, edi
call fcn.00456500
mov edi, eax
test edi, edi
js 0x46b80f
jmp 0x46b79a
xor edi, edi
mov eax, dword [esp + 0xc]
add edi, edi
mov eax, dword [eax + 0x10]
mov edi, dword [eax + edi*8 + 4]
mov dword [esp + 0x34], edi
test edi, edi
je 0x46b80f
cmp byte [edi + 9], 0
je 0x46b7c5
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x46b7c5
mov ecx, edi
call fcn.0041f820
mov eax, dword [edi + 4]
mov edx, 0xe
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov edi, dword [ecx + 0x1c8]
lea ecx, [esp + 0x9c]
push ecx
mov ecx, dword [eax + 0x40]
call fcn.00406ca0
mov ecx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x1c8], edi
cmp byte [ecx + 9], 0
je 0x46b80f
add dword [ecx + 0xc], 0xffffffff
jne 0x46b80f
call fcn.0041f7b0
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x46b82e
mov edi, dword [0x613a88]
mov ecx, edi
push eax
call dword [0x5aa43c]
call edi
add esp, 4
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x46b878
lea edx, [edi + 1]
mov ecx, esi
call fcn.00430960
push 0xffffffffffffffff
push dword [esp + 0xa0]
xor edx, edx
mov ecx, esi
push edi
call fcn.004309f0
mov edx, dword [esp + 0xa8]
add esp, 0xc
mov ecx, esi
call fcn.0046b250
push dword [esp + 0x9c]
call fcn.00407fc0
add esp, 4
jmp 0x46eda0
cmp edi, 0xc
je 0x46b8b8
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x46b8a9
push eax
push 0x5dd3ec
push dword [esp + 0x18]
call fcn.0040bbd0
add esp, 0xc
push dword [esp + 0x9c]
call fcn.00407fc0
add esp, 4
mov eax, dword [esp + 0x10]
inc dword [eax + 0x24]
mov dword [eax + 0xc], edi
jmp 0x46eda0
mov ecx, dword [esp + 0x70]
call fcn.0046b360
mov edi, eax
mov dword [esp + 0x58], edi
test edi, edi
je 0x46eda0
test byte [edi + 5], 1
je 0x46b8e6
mov ecx, dword [esp + 0x10]
call fcn.0046ff40
test eax, eax
jne 0x46eda0
mov al, byte [edi + 5]
test al, 2
jne 0x46b902
test al, 4
je 0x46b8f9
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x46b906
mov edx, edi
mov ecx, esi
call fcn.0046b110
mov ecx, dword [esp + 0x30]
movzx eax, byte [edi + 4]
dec eax
cmp eax, 0x2a
ja case.0x46b914.5
jmp dword [eax*4 + 0x46edd8]
mov ebx, dword [esp + 0x38]
mov ecx, esi
mov edx, ebx
call fcn.0042fb80
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x46b95c
mov eax, dword [esp + 0x10]
mov edx, 9
push ecx
push 0x5e347c
mov ecx, esi
add dword [eax + 0x2c], 2
call fcn.0042f0f0
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x46ed9d
mov ecx, eax
call fcn.0040d1f0
mov ecx, eax
call fcn.0040e3e0
mov ecx, dword [esp + 0x10]
xor edx, edx
push ebx
mov edi, eax
call fcn.0045c2a0
add esp, 4
mov edx, 0x64
mov ecx, esi
push edi
push 3
push ebx
call fcn.0042e7f0
mov ebx, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x50], edi
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.004222e0
jmp 0x46eda0
mov ebx, dword [esp + 0x28]
mov edi, dword [ebx + 4]
test ecx, ecx
jne 0x46b9c9
test edi, edi
je 0x46becc
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x24]
jmp 0x46ed93
call fcn.0040d1f0
mov ecx, dword [esp + 0xc]
mov edx, eax
push 0
push 0
mov dword [ecx + 0x64], eax
mov ecx, edi
call fcn.004223c0
add esp, 8
cmp eax, 7
jne 0x46eda0
mov ecx, dword [esp + 0xc]
call fcn.004087f0
jmp 0x46eda0
mov ebx, dword [esp + 0x28]
or edx, 0xffffffff
mov dword [esp + 0x24], edx
mov eax, dword [ebx + 4]
mov dword [esp + 0x34], eax
test ecx, ecx
je 0x46ba3b
push str.fast
push ecx
call fcn.0040bd70
add esp, 8
test eax, eax
jne 0x46ba29
lea edx, [eax + 2]
jmp 0x46ba37
mov ecx, dword [esp + 0x30]
xor dl, dl
call fcn.0046af20
movzx edx, al
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
jne 0x46ba83
test edx, edx
js 0x46ba83
mov eax, dword [esp + 0xc]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x46ba83
mov esi, dword [esp + 0x24]
xor edi, edi
nop word [eax + eax]
mov ecx, dword [eax + 0x10]
mov edx, esi
mov ecx, dword [ecx + edi + 4]
call fcn.00422500
mov eax, dword [esp + 0xc]
lea edi, [edi + 0x10]
inc ebx
cmp ebx, dword [eax + 0x14]
jl 0x46ba60
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
call fcn.00422500
jmp 0x46ed93
mov ebx, dword [esp + 0x10]
xorps xmm0, xmm0
mov edx, dword [esp + 0x38]
mov ecx, ebx
movlpd qword [esp + 0x88], xmm0
call fcn.0045c1b0
mov eax, dword [esp + 0x70]
inc dword [ebx + 0x2c]
mov edi, dword [ebx + 0x2c]
movzx eax, byte [eax]
cmp byte [eax + 0x5e4d80], 0x70
jne 0x46baea
push edi
push dword [esp + 0x3c]
mov edx, 0xb2
mov ecx, esi
call fcn.0042e780
add esp, 8
mov edx, 0x54
mov ecx, esi
push 1
push edi
call fcn.0042e780
jmp 0x46ed9d
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46bb39
lea edx, [esp + 0x88]
mov ecx, eax
call fcn.0040cf60
test eax, eax
jne 0x46bb39
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
test ecx, ecx
jg 0x46bb27
jl 0x46bb39
test eax, eax
jb 0x46bb39
test ecx, ecx
jl 0x46bb4c
jg 0x46bb27
cmp eax, 0xfffffffe
jbe 0x46bb4c
mov eax, 0xfffffffe
mov dword [esp + 0x8c], 0
jmp 0x46bb4c
xorps xmm0, xmm0
movlpd qword [esp + 0x88], xmm0
mov eax, dword [esp + 0x88]
push eax
push edi
push dword [esp + 0x40]
mov edx, 0xb3
mov ecx, esi
call fcn.0042e7f0
add esp, 0xc
mov edx, 0x54
mov ecx, esi
push 1
push edi
call fcn.0042e780
jmp 0x46ed9d
mov edi, str.normal
call fcn.0046af40
mov edx, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
test eax, eax
jne 0x46bbde
cmp edx, 0xffffffff
jne 0x46bb9b
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x59]
jmp 0x46bbef
test eax, eax
jne 0x46bbde
mov eax, dword [esp + 0xc]
mov ebx, 2
cmp dword [eax + 0x14], ebx
jle 0x46bbdb
mov edi, 0x20
mov esi, eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax + edi + 4]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
call fcn.0041b3c0
inc ebx
lea edi, [edi + 0x10]
cmp ebx, dword [esi + 0x14]
jl 0x46bbb4
mov esi, dword [esp + 0x64]
mov edi, str.normal
mov eax, dword [esp + 0xc]
mov byte [eax + 0x59], dl
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
call fcn.0041b3c0
cmp eax, 1
mov edx, str.exclusive
mov ecx, esi
cmovne edx, edi
call fcn.0046b250
jmp 0x46eda0
test ecx, ecx
je 0x46bc4e
call fcn.0040b8a0
mov edi, eax
xor ebx, ebx
cmp ebx, 6
je 0x46bc4e
mov ecx, dword [ebx*4 + 0x5e3cb0]
test ecx, ecx
je 0x46bc4e
push edi
push ecx
push dword [esp + 0x38]
call fcn.0040bde0
add esp, 0xc
test eax, eax
je 0x46bc38
inc ebx
jmp 0x46bc13
cmp ebx, 2
jne 0x46bc6c
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
je 0x46bc71
or ebx, 0xffffffff
mov edx, dword [esp + 0x20]
cmp dword [edx + 4], 0
jne 0x46bc75
mov dword [esp + 0x38], 0
mov dword [edx + 4], 1
jmp 0x46bc75
cmp ebx, 0xffffffff
je 0x46bc51
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x46bcda
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x18], ecx
nop word [eax + eax]
mov eax, dword [eax + 0x10]
cmp dword [eax + ecx + 4], 0
je 0x46bcc6
cmp edi, dword [esp + 0x38]
je 0x46bca6
cmp dword [edx + 4], 0
jne 0x46bcc6
mov edx, edi
mov ecx, esi
call fcn.0042fb80
push ebx
push 1
push edi
mov edx, 4
mov ecx, esi
call fcn.0042e7f0
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x20]
sub ecx, 0x10
sub edi, 1
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
jns 0x46bc90
push 1
push 1
mov edx, 0x54
mov ecx, esi
call fcn.0042e780
jmp 0x46ed9d
mov ebx, dword [esp + 0x28]
or ecx, 0xffffffff
mov dword [esp + 0x8c], ecx
mov eax, dword [ebx + 4]
mov ebx, dword [esp + 0x30]
mov eax, dword [eax + 4]
mov edi, dword [eax]
mov eax, 0xfffffffe
mov dword [esp + 0x88], eax
test ebx, ebx
je 0x46bd4f
lea edx, [esp + 0x88]
mov ecx, ebx
call fcn.0040cf60
mov ecx, dword [esp + 0x8c]
cmp ecx, 0xffffffff
jg 0x46bd48
jl 0x46bd41
mov eax, dword [esp + 0x88]
cmp eax, 0xffffffff
jae 0x46bd4f
or eax, 0xffffffff
or ecx, eax
jmp 0x46bd4f
mov eax, dword [esp + 0x88]
push ecx
push eax
mov ecx, edi
call fcn.0041b4f0
push edx
push eax
mov ecx, esi
call fcn.0046b1b0
add esp, 0x10
jmp 0x46eda0
mov ebx, dword [esp + 0x28]
mov edi, dword [ebx + 4]
test ecx, ecx
jne 0x46bd80
mov ecx, edi
call fcn.004225f0
jmp 0x46ed93
call fcn.0046af80
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0xc]
mov edx, ebx
mov byte [eax + 0x5a], bl
call fcn.00422570
test eax, eax
jne 0x46eda0
cmp ebx, 1
je 0x46bdad
cmp ebx, 2
jne 0x46eda0
mov edi, dword [esi + 0x6c]
mov edx, 5
push ecx
push 0x5e475c
mov ecx, esi
call fcn.0042f0f0
mov edx, dword [esp + 0x40]
lea ecx, [edi + 4]
add esp, 8
mov dword [eax + 0x30], ecx
lea ecx, [ebx - 1]
mov dword [eax + 0x5c], ecx
mov ecx, esi
mov dword [eax + 4], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x54], edx
call fcn.0042fb80
jmp 0x46eda0
mov dword [esp + 0x18], 0
test ecx, ecx
je 0x46be0b
lea edx, [esp + 0x18]
call fcn.0040d070
test eax, eax
je 0x46be0b
mov edi, dword [esp + 0x18]
test edi, edi
jg 0x46be10
mov edi, SysReAllocString
mov ebx, dword [esp + 0x38]
xor edx, edx
mov ecx, dword [esp + 0x10]
push ebx
call fcn.0045c2a0
add esp, 4
mov edx, 0x47
mov ecx, esi
push 1
push edi
call fcn.0042e780
push ebx
mov edx, 0x3e
mov ecx, esi
call fcn.0042e720
add esp, 0xc
mov edx, 0x54
mov ecx, esi
mov edi, eax
push 1
call fcn.0042e720
add esp, 4
mov edx, 0x56
mov ecx, esi
push 0xffffffffffffffff
push 1
call fcn.0042e780
push edi
push 1
mov edx, 0x3b
mov ecx, esi
call fcn.0042e780
add esp, 0x10
mov edx, edi
mov ecx, esi
call fcn.0042f230
jmp 0x46eda0
test ecx, ecx
jne 0x46be98
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x46ed93
call fcn.0040d1f0
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.004222e0
jmp 0x46eda0
test ecx, ecx
jne 0x46bee6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
and eax, 0x20
or eax, ecx
jne 0x46bed3
xor eax, eax
jmp 0x46ed93
mov ebx, dword [esp + 0x28]
xor edx, edx
mov ecx, dword [ebx + 4]
call fcn.00422330
jmp 0x46ed93
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 1
call fcn.0040d070
mov esi, dword [esp + 0x18]
test eax, eax
je 0x46bf0d
mov ebx, dword [esp + 0x28]
mov edx, esi
mov ecx, dword [ebx + 4]
call fcn.00422330
mov ecx, dword [esp + 0x30]
test esi, esi
setne dl
call fcn.0046af20
mov ecx, dword [esp + 0xc]
test al, al
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
je 0x46bf37
or dword [ecx + 0x20], 0x20
call fcn.0046b2d0
jmp 0x46eda0
and dword [ecx + 0x20], 0xffffffdf
call fcn.0046b2d0
jmp 0x46eda0
test ecx, ecx
je 0x46c058
lea edx, [esp + 0x88]
call fcn.0040cf60
cmp dword [esp + 0x8c], 0
jg 0x46bf87
jl 0x46bf6f
cmp dword [esp + 0x88], 0
jae 0x46bf87
mov eax, dword [0x613ad8]
mov dword [esp + 0x88], eax
mov eax, dword [0x613adc]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xc]
cmp dword [ecx + 4], 0
jne 0x46bfa9
mov eax, dword [esp + 0x88]
mov dword [edx + 0x30], eax
mov eax, dword [esp + 0x8c]
mov dword [edx + 0x34], eax
mov ebx, dword [edx + 0x14]
sub ebx, 1
js 0x46c058
mov esi, ebx
shl esi, 4
nop word [eax + eax]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + esi + 4]
test edi, edi
je 0x46c048
cmp ebx, dword [esp + 0x38]
je 0x46bfdb
cmp dword [ecx + 4], 0
jne 0x46c048
cmp byte [edi + 9], 0
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x78], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x6c], ecx
je 0x46c016
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x46c016
mov ecx, edi
call fcn.0041f820
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx]
mov dword [ecx + 0x88], eax
mov eax, dword [esp + 0x78]
mov dword [ecx + 0x8c], eax
call fcn.004186a0
cmp byte [edi + 9], 0
je 0x46c040
add dword [edi + 0xc], 0xffffffff
jne 0x46c040
mov ecx, edi
call fcn.0041f7b0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xc]
sub esi, 0x10
sub ebx, 1
jns 0x46bfc0
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x88], 0xffffffff
mov dword [esp + 0x8c], 0xffffffff
mov dword [esp + 0x18], 1
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x46c099
mov edi, dword [0x613a80]
mov ecx, edi
push eax
call dword [0x5aa43c]
call edi
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46c0b0
mov edx, eax
call fcn.00456500
mov ebx, eax
test ebx, ebx
js 0x46c121
jmp 0x46c0b2
xor ebx, ebx
mov eax, dword [esp + 0xc]
add ebx, ebx
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + ebx*8 + 4]
test ebx, ebx
je 0x46c121
cmp byte [ebx + 9], 0
je 0x46c0d9
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x46c0d9
mov ecx, ebx
call fcn.0041f820
mov eax, dword [ebx + 4]
mov edx, 0x12
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov edi, dword [ecx + 0x1c8]
lea ecx, [esp + 0x88]
push ecx
mov ecx, dword [eax + 0x40]
call fcn.00406ca0
mov dword [esp + 0x1c], eax
add esp, 4
mov eax, dword [esp + 0xc]
mov dword [eax + 0x1c8], edi
cmp byte [ebx + 9], 0
je 0x46c121
add dword [ebx + 0xc], 0xffffffff
jne 0x46c121
mov ecx, ebx
call fcn.0041f7b0
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x46c140
mov edi, dword [0x613a88]
mov ecx, edi
push eax
call dword [0x5aa43c]
call edi
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x46c15b
push dword [esp + 0x8c]
push dword [esp + 0x8c]
jmp 0x46ed96
cmp eax, 0xc
je 0x46eda0
mov ecx, dword [esp + 0x10]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x46eda0
test ecx, ecx
jne 0x46c184
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x56]
jmp 0x46ed93
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.0046b070
jmp 0x46eda0
mov ecx, 0xb
call fcn.004074d0
push eax
call fcn.00407560
mov ecx, dword [esp + 0x34]
add esp, 4
test ecx, ecx
jne 0x46c1c1
mov edx, dword [0x61ad44]
mov ecx, esi
call fcn.0046b250
jmp 0x46c25e
cmp byte [ecx], 0
je 0x46c215
mov eax, dword [esp + 0xc]
mov esi, dword [eax]
lea eax, [esp + 0x34]
push eax
push 1
push ecx
push esi
mov esi, dword [esi + 0x20]
mov ecx, esi
call dword [0x5aa43c]
call esi
add esp, 0x10
test eax, eax
jne 0x46c1ef
cmp dword [esp + 0x34], eax
jne 0x46c215
push str.not_a_writable_directory
push dword [esp + 0x14]
call fcn.0040bbd0
mov ecx, 0xb
call fcn.004074d0
push eax
call fcn.004075f0
add esp, 0xc
jmp 0x46eda0
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x56], 1
ja 0x46c228
mov ecx, dword [esp + 0x10]
call fcn.0046b020
push dword [0x61ad44]
call fcn.00407fc0
mov eax, dword [esp + 0x34]
add esp, 4
cmp byte [eax], 0
je 0x46c254
push eax
push 0x5dd3ec
call fcn.0040a840
add esp, 8
mov dword [0x61ad44], eax
jmp 0x46c25e
mov dword [0x61ad44], 0
mov ecx, 0xb
call fcn.004074d0
push eax
call fcn.004075f0
add esp, 4
jmp 0x46eda0
mov ecx, 0xb
call fcn.004074d0
push eax
call fcn.00407560
mov ecx, dword [esp + 0x34]
add esp, 4
test ecx, ecx
jne 0x46c2a0
mov edx, dword [0x61ad40]
mov ecx, esi
call fcn.0046b250
jmp 0x46c25e
cmp byte [ecx], 0
je 0x46c2d6
mov eax, dword [esp + 0xc]
mov esi, dword [eax]
lea eax, [esp + 0x34]
push eax
push 1
push ecx
push esi
mov esi, dword [esi + 0x20]
mov ecx, esi
call dword [0x5aa43c]
call esi
add esp, 0x10
test eax, eax
jne 0x46c1ef
cmp dword [esp + 0x34], eax
je 0x46c1ef
push dword [0x61ad40]
call fcn.00407fc0
mov eax, dword [esp + 0x34]
add esp, 4
cmp byte [eax], 0
je 0x46c305
push eax
push 0x5dd3ec
call fcn.0040a840
add esp, 8
mov dword [0x61ad40], eax
jmp 0x46c25e
mov dword [0x61ad40], 0
jmp 0x46c25e
test ecx, ecx
jne 0x46c326
mov ebx, dword [esp + 0x28]
movzx eax, byte [ebx + 8]
dec eax
jmp 0x46ed93
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x55], 0
jne 0x46c343
push str.Safety_level_may_not_be_changed_inside_a_transaction
push dword [esp + 0x14]
call fcn.0040bbd0
jmp 0x46ed9d
cmp dword [esp + 0x38], 1
je 0x46eda0
push 1
xor edx, edx
call fcn.0046ae70
mov ebx, dword [esp + 0x2c]
inc eax
add esp, 4
mov ecx, 1
and eax, 7
cmove eax, ecx
mov byte [ebx + 9], cl
mov ecx, dword [esp + 0xc]
mov byte [ebx + 8], al
call fcn.0046b2d0
jmp 0x46eda0
test ecx, ecx
jne 0x46c3ce
mov edx, edi
mov ecx, esi
call fcn.0046b110
mov edx, dword [esp + 0xc]
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
and ecx, dword [edx + 0x20]
and eax, dword [edx + 0x24]
or ecx, eax
je 0x46c3ad
xor eax, eax
mov ecx, 1
push eax
push ecx
jmp 0x46ed96
xorps xmm0, xmm0
movlpd qword [esp + 0x88], xmm0
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
push eax
push ecx
jmp 0x46ed96
mov eax, dword [esp + 0xc]
mov ebx, dword [edi + 8]
mov edi, dword [edi + 0xc]
cmp byte [eax + 0x55], 0
jne 0x46c3e4
and ebx, 0xffffbfff
xor dl, dl
call fcn.0046af20
test al, al
je 0x46c416
mov eax, ebx
and eax, 1
or eax, 0
je 0x46c40a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
jne 0x46c466
mov eax, dword [esp + 0xc]
or dword [eax + 0x20], ebx
or dword [eax + 0x24], edi
jmp 0x46c466
mov edx, dword [esp + 0xc]
mov ecx, ebx
mov eax, edi
not ecx
not eax
and dword [edx + 0x20], ecx
and dword [edx + 0x24], eax
cmp ebx, 0x80000
jne 0x46c440
test edi, edi
jne 0x46c440
mov dword [edx + 0x208], edi
mov dword [edx + 0x20c], edi
and ebx, 1
or ebx, 0
je 0x46c466
push str.reset
push dword [esp + 0x34]
call fcn.0040bd70
add esp, 8
test eax, eax
jne 0x46c466
mov ecx, dword [esp + 0xc]
call fcn.00455f50
mov edx, 0xa6
mov ecx, esi
call fcn.0042e6c0
mov ecx, dword [esp + 0xc]
call fcn.0046b2d0
jmp 0x46eda0
test ecx, ecx
je 0x46eda0
mov ebx, dword [esp + 0x1c]
mov edx, ebx
mov ecx, dword [esp + 0x10]
call fcn.0045c1f0
mov ecx, dword [esp + 0x10]
mov edx, 2
push ebx
push dword [esp + 0x34]
call fcn.00455b10
mov ebx, eax
add esp, 8
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x46eda0
mov ecx, ebx
mov dword [esp + 0x2c], 0
call fcn.00456770
mov dword [esp + 0x18], eax
mov edx, ebx
mov eax, dword [esp + 0x10]
mov ecx, eax
mov dword [eax + 0x2c], 7
call fcn.00459430
mov eax, dword [ebx + 4]
xor edx, edx
movzx ecx, word [ebx + 0x22]
xor ebx, ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x44], eax
cmp bx, cx
jge 0x46eda0
nop
movzx ecx, word [eax + 0xe]
xor ebx, ebx
test cl, 0x62
je 0x46c538
mov eax, dword [edi + 8]
or eax, dword [edi + 0xc]
jne 0x46c520
inc dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
jmp 0x46c602
test cl, 0x20
je 0x46c52c
mov ebx, 2
jmp 0x46c538
movzx ebx, cl
and ebx, 0x40
or ebx, 0x20
shr ebx, 5
test cl, 1
jne 0x46c541
xor edi, edi
jmp 0x46c583
cmp dword [esp + 0x18], 0
mov edi, 1
je 0x46c583
mov ecx, dword [esp + 0x24]
movzx eax, word [ecx + 0x22]
cwde
mov dword [esp + 0x34], eax
cmp eax, edi
jl 0x46c583
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
mov ecx, dword [eax + 4]
nop dword [eax]
movsx eax, word [ecx]
cmp eax, edx
je 0x46c57f
inc edi
add ecx, 2
cmp edi, esi
jle 0x46c570
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x44]
call fcn.004560a0
cmp ebx, 2
jae 0x46c59e
test eax, eax
je 0x46c59e
mov edx, dword [eax + 8]
jmp 0x46c5a0
xor edx, edx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x48], str.issisii
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
jne 0x46c5bc
mov dword [esp + 0x48], str.issisi
push ebx
mov ebx, dword [esp + 0x48]
mov eax, 0
push edi
push edx
mov edx, 0x5dc6ad
mov ecx, ebx
test byte [ebx + 4], 0xf
setne al
push eax
call fcn.0040b8d0
push eax
push dword [ebx]
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x44]
push eax
push dword [esp + 0x64]
push 1
push esi
call fcn.0042e9c0
mov edi, dword [esp + 0x80]
add esp, 0x28
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
inc edx
add ebx, 0x10
mov dword [esp + 0x14], edx
mov dword [esp + 0x44], ebx
movzx eax, word [eax + 0x22]
cwde
cmp edx, eax
mov eax, ebx
jl 0x46c500
jmp 0x46eda0
mov eax, dword [esp + 0x10]
mov ecx, eax
mov ebx, dword [esp + 0x1c]
mov edx, ebx
mov dword [eax + 0x2c], 6
call fcn.0045c1f0
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], 0
cmp dword [edx + 0x14], 0
jle 0x46eda0
xor edi, edi
mov dword [esp + 0x24], edi
nop word [eax + eax]
test ebx, ebx
je 0x46c67f
mov eax, dword [edx + 0x10]
push dword [eax + edi]
push ebx
call fcn.0040bd70
add esp, 8
test eax, eax
jne 0x46c842
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x10]
mov edx, dword [eax + edi + 0xc]
add edx, 8
mov ebx, dword [edx + 4]
test ebx, ebx
je 0x46c745
mov esi, dword [esp + 0xc]
mov eax, dword [edx + 8]
dec ebx
test eax, eax
je 0x46c741
mov ecx, dword [eax + 8]
cmp word [ecx + 0x22], 0
je 0x46c6b9
mov eax, dword [eax]
test eax, eax
jne 0x46c6a4
jmp 0x46c741
push dword [ecx]
push str.SELECTFROM__w_
push esi
call fcn.0040a750
mov edi, eax
add esp, 0xc
test edi, edi
je 0x46c705
push 0
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
push 0
push 0
push 0xffffffffffffffff
mov edx, edi
mov ecx, esi
call fcn.00470770
add esp, 0x14
push dword [esp + 0x18]
call fcn.00433730
add esp, 4
mov edx, edi
mov ecx, esi
call fcn.00408080
cmp byte [esi + 0x57], 0
je 0x46c72b
push 0x5dc688
push dword [esi + 0x10c]
call fcn.0040bbd0
mov eax, dword [esi + 0x10c]
add esp, 8
mov dword [eax + 0xc], 7
mov eax, dword [esi + 0x10]
mov edi, dword [esp + 0x24]
mov edx, dword [eax + edi + 0xc]
add edx, 8
test ebx, ebx
jne 0x46c698
mov esi, dword [esp + 0x64]
mov eax, dword [edx + 8]
mov dword [esp + 0x18], eax
test eax, eax
je 0x46c83e
mov edi, dword [eax + 8]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46c772
push dword [edi]
push eax
call fcn.0040bd70
add esp, 8
test eax, eax
jne 0x46c828
mov al, byte [edi + 0x2b]
cmp al, 2
jne 0x46c783
mov dword [esp + 0x2c], str.view
jmp 0x46c7a9
cmp al, 1
jne 0x46c791
mov dword [esp + 0x2c], 0x5dfb0c
jmp 0x46c7a9
test dword [edi + 0x1c], 0x1000
mov eax, str.shadow
mov ecx, str.table
cmove eax, ecx
mov dword [esp + 0x2c], eax
mov ebx, dword [edi]
push 7
push str.sqlite_
push ebx
call fcn.0040bde0
add esp, 0xc
test eax, eax
jne 0x46c7ed
lea ecx, [ebx + 7]
mov edx, 0x5ddf2f
call fcn.0040bda0
test eax, eax
jne 0x46c7d7
mov ebx, str.sqlite_schema
jmp 0x46c7ed
mov edx, 0x5de123
lea ecx, [ebx + 7]
call fcn.0040bda0
test eax, eax
jne 0x46c7ed
mov ebx, str.sqlite_temp_schema
mov ecx, dword [edi + 0x1c]
mov eax, ecx
shr eax, 0x10
and eax, 1
shr ecx, 7
push eax
movsx eax, word [edi + 0x22]
and ecx, 1
push ecx
mov ecx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x18]
push dword [esp + 0x38]
push ebx
mov eax, dword [eax + 0x10]
push dword [eax + ecx]
push str.sssiii
push 1
push esi
call fcn.0042e9c0
add esp, 0x24
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46c754
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edi, 0x10
mov edx, dword [esp + 0xc]
inc eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edi
cmp eax, dword [edx + 0x14]
jl 0x46c660
jmp 0x46eda0
test ecx, ecx
je 0x46eda0
push dword [esp + 0x1c]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.00455cd0
mov ebx, eax
add esp, 4
mov dword [esp + 0x2c], ebx
test ebx, ebx
jne 0x46c8c6
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
lea edx, [eax + 2]
push dword [esp + 0x34]
call fcn.00455b10
add esp, 8
test eax, eax
je 0x46eda0
test byte [eax + 0x1c], 0x80
je 0x46eda0
mov ecx, eax
call fcn.00456770
mov ebx, eax
mov dword [esp + 0x2c], eax
test ebx, ebx
je 0x46eda0
mov edx, dword [ebx + 0x18]
mov ecx, dword [esp + 0xc]
call fcn.004700f0
mov ecx, dword [edi + 8]
mov edx, eax
or ecx, dword [edi + 0xc]
je 0x46c8ef
mov eax, dword [esp + 0x10]
movzx ecx, word [ebx + 0x34]
mov dword [eax + 0x2c], 6
mov eax, ecx
jmp 0x46c8fe
mov ecx, dword [esp + 0x10]
movzx eax, word [ebx + 0x32]
mov dword [ecx + 0x2c], 3
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x34], eax
call fcn.0045c1b0
mov ecx, dword [esp + 0x14]
xor ebx, ebx
test cx, cx
je 0x46eda0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
movzx edx, word [eax + ebx*2]
test dx, dx
jns 0x46c935
xor eax, eax
jmp 0x46c944
mov eax, dword [esp + 0x34]
movsx ecx, dx
add ecx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
push eax
movsx eax, dx
push eax
push ebx
push str.iisX
push 1
push esi
call fcn.0042e9c0
mov eax, dword [edi + 8]
add esp, 0x18
or eax, dword [edi + 0xc]
je 0x46c990
mov edx, dword [esp + 0x2c]
xor ecx, ecx
movzx eax, word [edx + 0x32]
cmp ebx, eax
mov eax, dword [edx + 0x20]
setl cl
push ecx
push dword [eax + ebx*4]
mov eax, dword [edx + 0x1c]
movzx eax, byte [eax + ebx]
push eax
push str.isiX
push 4
push esi
call fcn.0042e9c0
add esp, 0x18
mov eax, dword [esp + 0x10]
mov edx, 0x54
mov ecx, esi
push dword [eax + 0x2c]
push 1
call fcn.0042e780
mov ecx, dword [esp + 0x1c]
inc ebx
movzx eax, cx
add esp, 8
cmp ebx, eax
jl 0x46c921
jmp 0x46eda0
test ecx, ecx
je 0x46eda0
push dword [esp + 0x1c]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.004558b0
mov edi, eax
add esp, 4
test edi, edi
je 0x46eda0
mov edx, dword [edi + 0x3c]
mov ecx, dword [esp + 0xc]
call fcn.004700f0
mov ecx, dword [esp + 0x10]
mov edx, eax
mov dword [ecx + 0x2c], 5
call fcn.0045c1b0
mov edi, dword [edi + 8]
xor ebx, ebx
test edi, edi
je 0x46eda0
mov dword [esp + 0x88], 0x5e0ff0
mov dword [esp + 0x8c], 0x5e0ff4
mov dword [esp + 0x90], 0x5e0940
nop dword [eax]
xor eax, eax
cmp dword [edi + 0x24], eax
setne al
push eax
mov eax, dword [edi + 0x38]
and eax, 3
push dword [esp + eax*4 + 0x8c]
xor eax, eax
cmp byte [edi + 0x36], al
setne al
push eax
push dword [edi]
push ebx
push str.isisi
push 1
push esi
call fcn.0042e9c0
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x46ca30
jmp 0x46eda0
mov eax, dword [esp + 0x10]
xor edi, edi
mov edx, dword [esp + 0xc]
mov dword [eax + 0x2c], 3
cmp dword [edx + 0x14], edi
jle 0x46eda0
xor ebx, ebx
nop dword [eax + eax]
mov edx, dword [edx + 0x10]
mov ecx, dword [edx + ebx + 4]
test ecx, ecx
je 0x46cab5
call fcn.0042b780
push eax
push dword [edx + ebx]
push edi
push 0x5e1000
push 1
push esi
call fcn.0042e9c0
add esp, 0x18
mov edx, dword [esp + 0xc]
inc edi
add ebx, 0x10
cmp edi, dword [edx + 0x14]
jl 0x46ca90
jmp 0x46eda0
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov edx, dword [esp + 0xc]
mov dword [eax + 0x2c], 2
mov edi, dword [edx + 0x1b8]
test edi, edi
je 0x46eda0
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x5e1004
push 1
push esi
call fcn.0042e9c0
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x46cae6
jmp 0x46eda0
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x18]
mov eax, dword [esp + 0x10]
shr ebx, 5
and ebx, 1
mov dword [eax + 0x2c], 6
mov eax, 0x61da40
mov dword [esp + 0x18], eax
nop dword [eax]
mov edi, dword [eax]
test edi, edi
je 0x46cb50
push ebx
push 1
mov edx, edi
mov ecx, esi
call fcn.0046b3d0
mov edi, dword [edi + 0x24]
add esp, 8
test edi, edi
jne 0x46cb36
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
cmp eax, 0x61da9c
jl 0x46cb30
mov edx, dword [esp + 0xc]
mov edi, dword [edx + 0x1a8]
test edi, edi
je 0x46eda0
mov edx, dword [edi + 8]
mov ecx, esi
push ebx
push 0
call fcn.0046b3d0
mov edi, dword [edi]
add esp, 8
test edi, edi
jne 0x46cb70
jmp 0x46eda0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x2c], 1
mov edi, dword [edx + 0x18c]
test edi, edi
je 0x46eda0
nop dword [eax + eax]
mov eax, dword [edi + 8]
push dword [eax + 4]
push 0x5de598
push 1
push esi
call fcn.0042e9c0
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x46cbb0
jmp 0x46eda0
mov edi, 0x5e5218
push dword [edi]
push 0x5de598
push 1
push esi
call fcn.0042e9c0
add edi, 0x10
add esp, 0x10
cmp edi, str.0123456789ABCDEF
jl 0x46cbd6
jmp 0x46eda0
test ecx, ecx
je 0x46eda0
push dword [esp + 0x1c]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.004558b0
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
je 0x46eda0
cmp byte [eax + 0x2b], 0
jne 0x46eda0
mov edi, dword [eax + 0x30]
test edi, edi
je 0x46eda0
mov edx, dword [eax + 0x3c]
mov ecx, dword [esp + 0xc]
call fcn.004700f0
mov ecx, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x2c], 0
mov dword [ecx + 0x2c], 8
call fcn.0045c1b0
xor eax, eax
nop dword [eax + eax]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x46cd23
lea edx, [edi + 0x24]
mov dword [esp + 0x18], edx
movzx eax, byte [edi + 0x19]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x46cc7e
jmp dword [eax*4 + 0x46ee84]
mov ecx, str.SET_NULL
jmp 0x46cca6
mov ecx, str.SET_DEFAULT
jmp 0x46cca6
mov ecx, str.CASCADE
jmp 0x46cca6
mov ecx, str.RESTRICT
jmp 0x46cca6
mov ecx, str.NO_ACTION
movzx eax, byte [edi + 0x1a]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x46ccb2
jmp dword [eax*4 + 0x46ee94]
mov eax, str.SET_NULL
jmp 0x46ccda
mov eax, str.SET_DEFAULT
jmp 0x46ccda
mov eax, str.CASCADE
jmp 0x46ccda
mov eax, str.RESTRICT
jmp 0x46ccda
mov eax, str.NO_ACTION
push str.NONE
push ecx
mov ecx, dword [edx]
push eax
push dword [edx + 4]
mov eax, dword [esp + 0x44]
add ecx, ecx
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push dword [edi + 8]
push ebx
push dword [esp + 0x48]
push str.iissssss
push 1
push esi
call fcn.0042e9c0
mov edx, dword [esp + 0x44]
inc ebx
add edx, 8
add esp, 0x2c
mov dword [esp + 0x18], edx
cmp ebx, dword [edi + 0x14]
jl 0x46cc72
mov eax, dword [esp + 0x2c]
mov edi, dword [edi + 4]
inc eax
mov dword [esp + 0x2c], eax
test edi, edi
jne 0x46cc60
jmp 0x46eda0
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x2c]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x48], eax
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [ebx + eax + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x46eda0
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x46cd85
push dword [esp + 0x1c]
xor edx, edx
push ecx
mov ecx, edi
call fcn.00455b10
add esp, 8
mov edi, eax
xor eax, eax
jmp 0x46cd8a
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov dword [esp + 0x58], edi
test edi, edi
je 0x46d13c
cmp byte [edi + 0x2b], 0
jne 0x46d13c
cmp dword [edi + 0x30], 0
je 0x46d13c
mov edx, dword [edi + 0x3c]
mov ecx, dword [esp + 0xc]
call fcn.004700f0
mov ebx, eax
mov eax, ecx
mov edx, ebx
mov dword [esp + 0x2c], ebx
add edx, edx
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8]
mov edx, ebx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
call fcn.0045c1b0
push dword [edi]
mov ecx, dword [esp + 0x14]
mov edx, ebx
push 0
push dword [edi + 0x14]
call fcn.004551e0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
movsx eax, word [edi + 0x22]
add eax, dword [esp + 0x48]
cmp dword [ecx + 0x2c], eax
jge 0x46ce04
mov dword [ecx + 0x2c], eax
push 0x70
push edi
push ebx
xor edx, edx
call fcn.00465490
mov edx, dword [esp + 0x50]
add esp, 0xc
mov ecx, esi
push dword [edi]
call fcn.0042e940
mov ebx, dword [edi + 0x30]
add esp, 4
mov eax, 1
mov dword [esp + 0x24], eax
test ebx, ebx
je 0x46cefa
nop word [eax + eax]
push dword [esp + 0x1c]
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x10]
call fcn.004558b0
mov edi, eax
add esp, 4
test edi, edi
je 0x46cee2
push dword [edi]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
push 0
push dword [edi + 0x14]
mov dword [esp + 0x5c], 0
call fcn.004551e0
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x5c]
add esp, 0xc
mov edx, edi
push 0
push eax
push ebx
call fcn.00462e70
add esp, 0xc
test eax, eax
jne 0x46eda0
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x46cebb
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
push 0x70
push edi
push dword [esp + 0x34]
call fcn.00465490
add esp, 0xc
jmp 0x46cee2
push dword [esp + 0x2c]
mov edx, 0x70
mov ecx, esi
push dword [eax + 0x2c]
push dword [esp + 0x2c]
call fcn.0042e7f0
mov edx, dword [esp + 0x5c]
add esp, 0xc
mov ecx, dword [esp + 0x10]
call fcn.0042f7a0
mov eax, dword [esp + 0x24]
mov ebx, dword [ebx + 4]
inc eax
mov dword [esp + 0x24], eax
test ebx, ebx
jne 0x46ce40
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x28], eax
jge 0x46cf06
mov dword [ecx + 0x28], eax
push 0
mov edx, 0x24
mov ecx, esi
call fcn.0042e720
mov ebx, dword [edi + 0x30]
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x60], 1
mov dword [esp + 0x4c], ebx
test ebx, ebx
je 0x46d11a
mov eax, dword [esp + 0x44]
add eax, 2
mov dword [esp + 0x6c], eax
nop dword [eax]
push dword [esp + 0x1c]
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x10]
call fcn.004558b0
mov edi, dword [esp + 0x14]
xor edx, edx
add esp, 4
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], edx
test eax, eax
je 0x46cf88
lea ecx, [esp + 0x54]
mov edx, eax
push ecx
lea ecx, [esp + 0x54]
push ecx
push ebx
mov ecx, edi
call fcn.00462e70
mov edx, dword [esp + 0x60]
add esp, 0xc
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x14]
add eax, ecx
cmp dword [edi + 0x2c], eax
jge 0x46cfa3
mov dword [edi + 0x2c], eax
xor edi, edi
cmp dword [ebx + 0x14], edi
jle 0x46d008
mov ebx, ecx
mov ecx, dword [esp + 0x4c]
add ecx, 0x24
mov dword [esp + 0x18], ecx
test edx, edx
je 0x46cfc0
mov eax, dword [edx + edi*4]
jmp 0x46cfc2
mov eax, dword [ecx]
mov edx, dword [esp + 0x58]
mov ecx, esi
push ebx
push eax
push 0
call fcn.0044b870
add esp, 0xc
mov edx, 0x32
mov ecx, esi
push dword [esp + 0x24]
push ebx
call fcn.0042e780
mov eax, dword [esp + 0x54]
inc edi
mov ecx, dword [esp + 0x20]
add esp, 8
mov edx, dword [esp + 0x54]
add ecx, 8
inc ebx
mov dword [esp + 0x18], ecx
cmp edi, dword [eax + 0x14]
jl 0x46cfb7
mov ecx, dword [esp + 0x48]
mov ebx, eax
mov eax, dword [esp + 0x50]
test eax, eax
je 0x46d05e
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x46d024
mov ecx, dword [esp + 0xc]
mov edx, eax
call fcn.004655e0
mov ecx, eax
mov eax, dword [ebx + 0x14]
mov edx, 0x60
mov edi, dword [esp + 0x48]
push eax
push ecx
push 0
push eax
push edi
mov ecx, esi
call fcn.0042eb50
add esp, 0x14
mov edx, 0x1d
mov ecx, esi
push dword [ebx + 0x14]
push edi
mov edi, dword [esp + 0x2c]
push edi
push dword [esp + 0x6c]
call fcn.0042e860
add esp, 0x10
jmp 0x46d093
cmp dword [esp + 0x34], 0
je 0x46d08f
mov eax, dword [esi + 0x6c]
mov edx, 0x1e
push ecx
add eax, 2
mov ecx, esi
push eax
push dword [esp + 0x68]
call fcn.0042e7f0
mov edi, dword [esp + 0x30]
add esp, 0xc
mov edx, edi
mov ecx, esi
call fcn.0042e8d0
jmp 0x46d093
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x58]
mov ecx, esi
mov edx, 0x87
test byte [eax + 0x1c], 0x80
mov eax, dword [esp + 0x44]
je 0x46d0ad
mov edx, 0x4b
inc eax
push eax
push 0
call fcn.0042e780
mov eax, dword [esp + 0x68]
add esp, 8
dec eax
push eax
push dword [ebx + 8]
push 0x5e101c
push dword [esp + 0x78]
push esi
call fcn.0042e9c0
add esp, 0x14
mov edx, 0x54
mov ecx, esi
push 4
push dword [esp + 0x48]
call fcn.0042e780
add esp, 8
mov edx, edi
mov ecx, esi
call fcn.0042ef40
mov edx, dword [esp + 0x54]
test edx, edx
je 0x46d103
mov ecx, dword [esp + 0xc]
call fcn.00408080
mov ebx, dword [ebx + 4]
inc dword [esp + 0x60]
mov dword [esp + 0x4c], ebx
test ebx, ebx
jne 0x46cf40
mov eax, dword [esp + 0x2c]
inc eax
mov edx, 0x27
push eax
push 0
mov ecx, esi
call fcn.0042e780
mov edx, dword [esp + 0x34]
add esp, 8
mov ecx, esi
call fcn.0042f230
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
test eax, eax
jne 0x46cd66
jmp 0x46eda0
test ecx, ecx
je 0x46eda0
xor dl, dl
call fcn.0046af20
mov ecx, dword [esp + 0xc]
movzx edx, al
call fcn.00462b80
jmp 0x46eda0
mov edi, dword [esp + 0x38]
xor eax, eax
mov ebx, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
movzx eax, byte [eax]
mov al, byte [eax + 0x5e4d80]
cmp al, 0x71
mov byte [esp + 0x43], al
mov eax, dword [esp + 0x20]
sete dl
mov dword [esp + 0x80], edx
or edx, 0xffffffff
cmp dword [eax], 0
mov eax, 0x64
mov dword [ebx + 0x2c], 6
cmove edi, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x46d216
lea edx, [esp + 0x14]
call fcn.0040d070
test eax, eax
je 0x46d1e3
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
test eax, eax
jg 0x46d216
mov eax, 0x64
jmp 0x46d212
test edi, edi
js 0x46d1f7
mov eax, dword [esp + 0xc]
mov ecx, edi
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
jmp 0x46d1f9
xor eax, eax
push eax
push dword [esp + 0x34]
xor edx, edx
mov ecx, ebx
call fcn.00455b10
mov dword [esp + 0x24], eax
add esp, 8
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
lea ecx, [eax - 1]
mov edx, 0x47
push 1
push ecx
mov ecx, esi
call fcn.0042e780
mov eax, dword [esp + 0x14]
xor ecx, ecx
add esp, 8
mov dword [esp + 0x50], ecx
cmp dword [eax + 0x14], ecx
jle 0x46e787
mov dword [esp + 0x84], 0x10
nop dword [eax]
xor eax, eax
test edi, edi
js 0x46d25e
cmp ecx, edi
jne 0x46e775
mov edx, ecx
mov ecx, ebx
call fcn.0045c1b0
mov eax, dword [esp + 0xc]
xor edi, edi
mov ecx, dword [esp + 0x50]
mov byte [ebx + 0x17], 0
shl ecx, 4
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], ecx
mov eax, dword [eax + ecx + 0xc]
add eax, 8
mov dword [esp + 0x24], eax
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x46e769
mov ecx, dword [esp + 0x1c]
mov esi, edi
nop dword [eax + eax]
mov eax, dword [ebx + 8]
test ecx, ecx
je 0x46d2ab
cmp ecx, eax
jne 0x46d2d2
mov ecx, dword [eax + 8]
xor edx, edx
test byte [eax + 0x1c], 0x80
lea eax, [edi + 1]
cmovne eax, edi
mov edi, eax
test ecx, ecx
je 0x46d2c9
mov ecx, dword [ecx + 0x14]
inc edi
inc edx
test ecx, ecx
jne 0x46d2c0
mov ecx, dword [esp + 0x1c]
cmp edx, esi
cmovg esi, edx
mov ebx, dword [ebx]
test ebx, ebx
jne 0x46d2a0
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x64]
test edi, edi
je 0x46e769
test ecx, ecx
lea eax, [edi + 1]
mov ecx, dword [esp + 0xc]
cmove eax, edi
push ebx
lea eax, [eax*4 + 4]
push eax
call fcn.00408410
mov edi, eax
add esp, 8
test edi, edi
je 0x46e787
mov eax, dword [esp + 0x1c]
xor edx, edx
test eax, eax
je 0x46d31f
lea edx, [ebx + 1]
mov dword [edi + 4], ebx
mov ebx, dword [esp + 0x24]
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x46d368
mov esi, dword [esp + 0x1c]
nop
mov ecx, dword [ebx + 8]
test esi, esi
je 0x46d33b
cmp esi, ecx
jne 0x46d35e
test byte [ecx + 0x1c], 0x80
jne 0x46d348
mov eax, dword [ecx + 0x14]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x46d35e
nop
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x46d350
mov ebx, dword [ebx]
test ebx, ebx
jne 0x46d330
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add eax, 8
mov dword [edi], edx
cmp dword [ebx + 0x2c], eax
jge 0x46d37d
mov dword [ebx + 0x2c], eax
push 0xfffffffffffffff2
push edi
push 1
push edx
push 2
mov edx, 0x9b
mov byte [ebx + 0x13], 0
mov ecx, esi
mov dword [ebx + 0x1c], 0
call fcn.0042eb50
mov eax, dword [esp + 0x64]
add esp, 0x14
movzx edx, al
mov ecx, esi
call fcn.0042f1d0
push 2
mov edx, 0x32
call fcn.0042e720
mov edx, dword [esp + 0x10]
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x34]
push 0xfffffffffffffffa
push ecx
mov ecx, dword [edx + 0x10]
push dword [ecx + eax]
push str._in_database__s__n
push edx
call fcn.0040a750
add esp, 0x10
mov edx, 0x75
mov ecx, esi
push eax
push 0
push 3
push 0
call fcn.0042eb50
add esp, 0x14
mov edx, 0x6f
mov ecx, esi
push 3
push 3
push 2
call fcn.0042e7f0
add esp, 0xc
mov ecx, esi
call fcn.0046b470
mov edx, edi
mov ecx, esi
call fcn.0042f230
mov eax, dword [esp + 0x24]
mov edi, dword [eax + 8]
mov dword [esp + 0x34], edi
test edi, edi
je 0x46e76d
mov eax, dword [esp + 0x1c]
nop
mov edi, dword [edi + 8]
mov dword [esp + 0x20], edi
mov dword [esp + 0x78], 0
mov dword [esp + 0x54], 0xffffffff
test eax, eax
je 0x46d453
cmp eax, edi
jne 0x46e755
mov al, byte [edi + 0x2b]
test al, al
je 0x46d51e
cmp al, 1
jne 0x46e751
cmp word [edi + 0x22], 0
jg 0x46d490
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0xc]
push 0
add ecx, 0x184
mov edx, dword [eax]
call fcn.0040e9c0
add esp, 4
cmp dword [eax + 8], 0
je 0x46e751
mov edx, edi
mov ecx, ebx
call fcn.00459430
mov eax, dword [edi + 0x34]
test eax, eax
je 0x46e751
mov eax, dword [eax + 8]
test eax, eax
je 0x46e751
mov eax, dword [eax]
test eax, eax
je 0x46e751
cmp dword [eax], 4
jl 0x46e751
cmp dword [eax + 0x60], 0
je 0x46e751
push dword [esp + 0x80]
mov edx, 0xae
mov ecx, esi
push 3
push dword [esp + 0x58]
call fcn.0042e7f0
add esp, 0xc
mov edx, edi
mov ecx, esi
push 0xfffffffffffffffb
call fcn.0042f760
add esp, 4
mov edx, 0x32
mov ecx, esi
push 3
call fcn.0042e720
add esp, 4
mov ecx, esi
mov edi, eax
call fcn.0046b470
mov edx, edi
mov ecx, esi
call fcn.0042f230
jmp 0x46e751
cmp byte [esp + 0x43], 0x71
je 0x46d567
test byte [edi + 0x1c], 0x80
je 0x46d567
mov ecx, edi
call fcn.00456770
mov ecx, ebx
mov dword [esp + 0x5c], eax
movzx edx, word [eax + 0x32]
call fcn.0044f310
mov edx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x44], edx
movzx ecx, word [eax + 0x32]
dec ecx
add ecx, edx
push ecx
push edx
push 1
mov edx, 0x4b
mov ecx, esi
call fcn.0042e7f0
add esp, 0xc
jmp 0x46d577
mov dword [esp + 0x5c], 0
mov dword [esp + 0x44], 0
lea eax, [esp + 0x18]
mov edx, edi
push eax
lea eax, [esp + 0x50]
mov ecx, ebx
push eax
push 0
push 1
push 0
push 0x70
call fcn.00469530
push 7
push 0
mov edx, 0x47
mov ecx, esi
call fcn.0042e780
mov edi, dword [edi + 8]
add esp, 0x20
test edi, edi
je 0x46d5cf
mov ebx, 8
push ebx
push 0
mov edx, 0x47
mov ecx, esi
call fcn.0042e780
mov edi, dword [edi + 0x14]
add esp, 8
inc ebx
test edi, edi
jne 0x46d5b1
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x4c]
mov edx, 0x24
push 0
push edi
mov ecx, esi
call fcn.0042e780
push 1
push 7
mov edx, 0x56
mov ecx, esi
call fcn.0042e780
mov dword [esp + 0x7c], eax
add esp, 0x10
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 0x80
jne 0x46d63f
movsx edi, word [eax + 0x22]
or edx, 0xffffffff
test edi, edi
jle 0x46d62d
mov ecx, dword [eax + 4]
add ecx, 0xe
movzx eax, word [ecx]
lea ecx, [ecx + 0x10]
test al, 0x20
lea eax, [edx + 1]
cmovne eax, edx
mov edx, eax
sub edi, 1
jne 0x46d614
mov eax, dword [esp + 0x20]
movsx eax, word [eax + 0x20]
lea ecx, [edx - 1]
mov edi, dword [esp + 0x4c]
cmp edx, eax
cmovne ecx, edx
jmp 0x46d64b
mov ecx, eax
call fcn.00456770
movzx ecx, word [eax + 0x34]
dec ecx
test ecx, ecx
js 0x46d66e
push 3
push ecx
push edi
mov edx, 0x5e
mov ecx, esi
call fcn.0042e7f0
add esp, 0xc
mov edx, 3
mov ecx, esi
call fcn.0042f1f0
cmp byte [esp + 0x43], 0x71
je 0x46d736
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x46d736
movzx eax, word [ecx + 0x32]
mov edx, 0x29
push eax
push dword [esp + 0x48]
mov ecx, esi
push 0
push edi
call fcn.0042e860
push dword [esp + 0x54]
mov edx, 0x32
mov ecx, esi
mov edi, eax
call fcn.0042e720
mov ecx, dword [esp + 0x34]
add esp, 0x14
push dword [ecx]
push str.row_not_in_PRIMARY_KEY_order_for__s
push dword [esp + 0x14]
call fcn.0040a750
add esp, 0xc
mov edx, 0x75
mov ecx, esi
push 0xfffffffffffffffa
push eax
push 0
push 3
push 0
call fcn.0042eb50
add esp, 0x14
mov ecx, esi
call fcn.0046b470
mov edx, edi
mov ecx, esi
call fcn.0042f230
lea edx, [edi + 1]
mov ecx, esi
call fcn.0042f230
mov ecx, dword [esp + 0x5c]
xor eax, eax
xor edi, edi
cmp ax, word [ecx + 0x32]
jae 0x46d736
mov esi, dword [esp + 0x4c]
nop dword [eax]
mov eax, dword [esp + 0x44]
mov edx, ecx
add eax, edi
mov ecx, ebx
push eax
push edi
push esi
call fcn.0044b670
mov ecx, dword [esp + 0x68]
inc edi
add esp, 0xc
movzx eax, word [ecx + 0x32]
cmp edi, eax
jl 0x46d710
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x20]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x60], edx
movzx ebx, word [eax + 0x1e]
and ebx, 1
mov dword [esp + 0x68], ebx
cmp cx, word [eax + 0x22]
jge 0x46da46
mov dword [esp + 0x24], ecx
nop dword [eax + eax]
mov edi, dword [eax + 4]
movsx eax, word [eax + 0x20]
add edi, ecx
cmp edx, eax
je 0x46da26
test ebx, ebx
je 0x46d78a
mov eax, dword [edi + 4]
and eax, 0xf0
cmp dword [esp + 0x84], eax
sbb eax, eax
neg eax
jmp 0x46d793
xor eax, eax
cmp byte [edi + 8], 0x41
setg al
test byte [edi + 4], 0xf
mov dword [esp + 0x14], eax
jne 0x46d7a5
test eax, eax
je 0x46da26
test byte [edi + 0xe], 0x20
mov dword [esp + 0x58], 5
je 0x46d7d7
push 3
push edx
push dword [esp + 0x54]
mov edx, dword [esp + 0x2c]
mov ecx, esi
call fcn.0044b870
add esp, 0xc
or ecx, 0xffffffff
mov dword [esp + 0x3c], ecx
lea ebx, [ecx + 4]
jmp 0x46d867
cmp word [edi + 0xc], 0
je 0x46d839
mov ecx, dword [esp + 0x20]
mov edx, edi
mov dword [esp + 0x48], 0
call fcn.004560a0
test eax, eax
je 0x46d835
mov ebx, dword [esp + 0xc]
lea ecx, [esp + 0x48]
push 0
push ecx
movzx ecx, byte [edi + 8]
mov edx, eax
push ecx
movzx ecx, byte [ebx + 0x54]
push ecx
mov ecx, ebx
call fcn.0042dda0
mov ecx, dword [esp + 0x58]
add esp, 0x10
test ecx, ecx
je 0x46d835
movzx eax, word [ecx + 0x10]
and eax, 0x3f
movzx eax, byte [eax + 0x5e7b88]
mov dword [esp + 0x58], eax
call fcn.0042e2a0
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov ecx, eax
test byte [eax + 0x1c], 0x80
je 0x46d85b
call fcn.00456770
mov ecx, eax
call fcn.00456790
jmp 0x46d860
call fcn.004567c0
mov ecx, dword [esp + 0x3c]
movsx ebx, ax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], ebx
mov eax, dword [eax + 0x38]
dec eax
mov dword [esp + 0x7c], eax
lea edx, [eax - 1]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edx
mov dword [eax + 0x38], edx
test byte [edi + 4], 0xf
je 0x46db1a
push dword [esp + 0x58]
push ebx
push edx
push ecx
mov edx, 0x12
mov ecx, esi
call fcn.0042e860
mov edx, dword [esp + 0x4c]
add esp, 0x10
mov dword [esp + 0x74], eax
test edx, edx
jns 0x46d8ca
mov ecx, dword [esi + 0x6c]
test ecx, ecx
jle 0x46d90e
lea edx, [ecx + ecx*4]
mov ebx, 0xf
mov ecx, dword [esi + 0x68]
mov word [ecx + edx*4 - 0x12], bx
jmp 0x46d90e
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x46d8e5
lea ecx, [eax + eax*4]
mov edx, 0xd
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [esp + 0x3c]
push 3
push ebx
push edx
mov edx, 0x5e
mov ecx, esi
call fcn.0042e7f0
mov ebx, dword [esp + 0x34]
add esp, 0xc
mov edx, 0x33
mov ecx, esi
push ebx
push 3
call fcn.0042e780
add esp, 8
push dword [edi]
mov ebx, eax
mov eax, dword [esp + 0x24]
push dword [eax]
push str.NULL_value_in__s._s
push dword [esp + 0x18]
call fcn.0040a750
push 0xfffffffffffffffa
push eax
push 0
push 3
push 0
mov edx, 0x75
mov ecx, esi
call fcn.0042eb50
mov eax, dword [esp + 0x38]
add esp, 0x24
test eax, eax
je 0x46d969
mov edx, dword [esp + 0x7c]
mov ecx, esi
call fcn.0042e8d0
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.0042f230
mov edx, ebx
mov ecx, esi
call fcn.0042f230
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x46db2b
test eax, eax
je 0x46db23
push dword [esp + 0x58]
mov ebx, dword [esp + 0x40]
mov ecx, esi
push dword [esp + 0x4c]
push edx
push ebx
mov edx, 0x12
call fcn.0042e860
mov eax, dword [edi + 4]
mov ecx, esi
shr eax, 4
and eax, 0xf
movzx edx, byte [eax + 0x5e855f]
call fcn.0042f1d0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov eax, dword [edx + 4]
push dword [ecx + eax]
mov eax, dword [edi + 4]
push dword [edx]
shr eax, 4
and eax, 0xf
push dword [eax*4 + 0x613a14]
push str.non__s_value_in__s._s
push dword [esp + 0x2c]
call fcn.0040a750
add esp, 0x24
mov edx, 0x75
mov ecx, esi
push 0xfffffffffffffffa
push eax
push 0
push 3
push 0
call fcn.0042eb50
add esp, 0x14
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x7c]
mov ecx, esi
call fcn.0042ef40
mov ecx, esi
call fcn.0046b470
mov edx, ebx
mov ecx, esi
call fcn.0042ef40
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
inc edx
add ecx, 0x10
mov dword [esp + 0x60], edx
mov dword [esp + 0x24], ecx
movsx eax, word [eax + 0x22]
cmp edx, eax
mov eax, dword [esp + 0x20]
jl 0x46d760
mov edx, dword [eax + 0x10]
test edx, edx
je 0x46dd09
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x20]
and eax, 0x200
or eax, 0
jne 0x46dd05
push eax
mov ecx, ebx
call fcn.00447cd0
add esp, 4
mov edx, eax
cmp byte [ebx + 0x57], 0
mov dword [esp + 0x14], edx
jne 0x46dcfa
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
dec ebx
mov dword [esp + 0x68], ebx
lea ecx, [ebx - 1]
mov dword [eax + 0x38], ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x74], ecx
inc eax
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x34], eax
mov edi, dword [edx]
dec edi
test edi, edi
jle 0x46dae6
mov esi, dword [esp + 0x68]
lea ebx, [edi*4 + 2]
add ebx, edi
lea ebx, [edx + ebx*4]
nop word [eax + eax]
push 0
push esi
push dword [ebx]
push ecx
call fcn.0044dd00
mov ecx, dword [esp + 0x20]
lea ebx, [ebx - 0x14]
dec edi
add esp, 0x10
test edi, edi
jg 0x46dac0
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x74]
push 0x10
push edi
push dword [edx + 8]
push ecx
call fcn.0044d940
mov ecx, dword [esi + 0xc]
add esp, 0x10
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x46dc88
push ebx
mov edx, esi
call fcn.0042ee90
add esp, 4
jmp 0x46dc91
mov eax, dword [esp + 0x14]
jmp 0x46d96d
test ecx, ecx
jne 0x46d9fb
cmp byte [edi + 8], 0x42
jne 0x46dba0
push dword [esp + 0x58]
mov ebx, dword [esp + 0x40]
mov ecx, esi
push dword [esp + 0x4c]
push edx
push ebx
mov edx, 0x12
call fcn.0042e860
mov eax, dword [esi + 0x6c]
add esp, 0x10
test eax, eax
jle 0x46db65
lea ecx, [eax + eax*4]
mov edx, 0x1c
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, dword [edi + 4]
push dword [ecx + eax]
push dword [edi]
push str.NUMERIC_value_in__s._s
push dword [esp + 0x18]
call fcn.0040a750
push 0xfffffffffffffffa
push eax
push 0
push 3
push 0
mov edx, 0x75
mov ecx, esi
call fcn.0042eb50
add esp, 0x24
jmp 0x46d9fb
test ecx, ecx
jne 0x46d9fb
cmp byte [edi + 8], 0x43
jl 0x46d9fb
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x3c]
push edi
push dword [esp + 0x4c]
push edx
lea edx, [ecx + 0x12]
mov ecx, esi
push ebx
call fcn.0042e860
mov eax, dword [esi + 0x6c]
add esp, 0x10
test eax, eax
jle 0x46dbe5
lea ecx, [eax + eax*4]
mov edx, 0x1b
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
test ebx, ebx
js 0x46dc01
mov edx, dword [esp + 0x20]
mov ecx, esi
push 3
push dword [esp + 0x64]
push dword [esp + 0x54]
call fcn.0044b870
add esp, 0xc
push 0xffffffffffffffff
push 0x5e10a0
push 0
push 1
push 3
mov edx, 0x60
mov ecx, esi
call fcn.0042eb50
mov ebx, dword [esp + 0x3c]
add esp, 0x14
mov edx, 0x12
mov ecx, esi
push edi
push 3
push ebx
push 0xffffffffffffffff
call fcn.0042e860
mov eax, dword [esi + 0x6c]
add esp, 0x10
test eax, eax
jle 0x46dc4d
lea ecx, [eax + eax*4]
mov edx, 0x1c
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
push dword [ecx + eax]
push dword [edx]
push str.TEXT_value_in__s._s
push dword [esp + 0x18]
call fcn.0040a750
push 0xfffffffffffffffa
push eax
push 0
push 3
push 0
mov edx, 0x75
mov ecx, esi
call fcn.0042eb50
add esp, 0x24
jmp 0x46d9ff
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov dword [eax + 0x34], 0
mov eax, dword [esp + 0x20]
push dword [eax]
push str.CHECK_constraint_failed_in__s
push ebx
call fcn.0040a750
add esp, 0xc
mov edx, 0x75
mov ecx, esi
push 0xfffffffffffffffa
push eax
push 0
push 3
push 0
call fcn.0042eb50
add esp, 0x14
mov ecx, esi
call fcn.0046b470
mov ecx, dword [esi + 0xc]
not edi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x46dced
push edi
mov edx, esi
call fcn.0042ee90
add esp, 4
jmp 0x46dcf6
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edi*4], eax
mov edx, dword [esp + 0x14]
test edx, edx
je 0x46dd05
mov ecx, ebx
call fcn.004487c0
mov eax, dword [esp + 0x20]
cmp byte [esp + 0x43], 0x71
je 0x46e4e8
mov ebx, dword [eax + 8]
mov dword [esp + 0x28], ebx
test ebx, ebx
je 0x46e4e8
mov ecx, dword [esp + 0x18]
mov eax, 8
sub eax, ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
nop
mov edi, dword [eax + 0x38]
dec edi
mov dword [eax + 0x38], edi
cmp ecx, ebx
je 0x46e4d5
push dword [esp + 0x54]
lea ecx, [esp + 0x8c]
mov edx, ebx
push dword [esp + 0x7c]
push ecx
push 0
push 0
push dword [esp + 0x60]
mov ecx, eax
call fcn.0045ebe0
mov ecx, dword [esp + 0x8c]
mov edx, 0x56
add ecx, dword [esp + 0x54]
push 1
push ecx
mov ecx, esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x98], ebx
call fcn.0042e780
movzx eax, word [ebx + 0x34]
mov edx, 0x1d
push eax
push dword [esp + 0x78]
mov ecx, esi
push edi
push dword [esp + 0x68]
call fcn.0042e860
push str.row
mov edx, 3
mov ecx, esi
mov edi, eax
call fcn.0042e940
mov ecx, dword [esi + 0x6c]
add esp, 0x34
cmp dword [esi + 0x70], ecx
jg 0x46dde4
push 3
push 3
push 7
mov edx, 0x6f
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
jmp 0x46de17
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push str._missing_from_index
mov edx, 4
mov ecx, esi
call fcn.0042e940
mov ecx, dword [esi + 0x6c]
add esp, 4
cmp dword [esi + 0x70], ecx
jg 0x46de4a
push 3
push 3
push 4
mov edx, 0x6f
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
jmp 0x46de7d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push dword [ebx]
mov edx, 4
mov ecx, esi
call fcn.0042e940
mov ecx, dword [esi + 0x6c]
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [esi + 0x70], ecx
jg 0x46deb1
push 3
push 3
push 4
mov edx, 0x6f
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
jmp 0x46dee4
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.0046b470
mov ecx, dword [esi]
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x68], eax
cmp byte [ecx + 0x57], 0
je 0x46df01
mov ecx, 0x61da24
jmp 0x46df0a
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x20]
mov dword [ecx + 8], edx
test byte [eax + 0x1c], 0x80
jne 0x46dfb7
push 3
push dword [esp + 0x40]
mov edx, 0x8e
mov ecx, esi
call fcn.0042e780
mov ecx, dword [esp + 0x5c]
mov edx, 0x35
movzx eax, word [ebx + 0x34]
dec ecx
add eax, ecx
mov ecx, esi
push eax
push 0
push 3
call fcn.0042e7f0
add esp, 0x14
mov edx, 3
mov ecx, esi
mov edi, eax
push str.rowid_not_at_end_of_record_for_row
call fcn.0042e940
add esp, 4
mov edx, 0x6f
mov ecx, esi
push 3
push 3
push 7
call fcn.0042e7f0
add esp, 0xc
mov edx, 4
mov ecx, esi
push str._of_index
call fcn.0042e940
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, esi
lea edx, [edx - 1]
call fcn.0042e8d0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x46dfab
mov eax, 0x61da24
jmp 0x46dfb4
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x28]
xor ecx, ecx
xor ebx, ebx
xor edi, edi
cmp cx, word [eax + 0x32]
jae 0x46e1d0
nop dword [eax + eax]
mov eax, dword [eax + 0x20]
cmp dword [eax + edi*4], str.BINARY
je 0x46e092
test ebx, ebx
jne 0x46dfee
mov eax, dword [esp + 0x10]
dec dword [eax + 0x38]
mov ebx, dword [eax + 0x38]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x46e00e
push 3
push edi
push dword [esp + 0x44]
mov edx, 0x5e
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
jmp 0x46e03d
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x46e060
mov eax, dword [esp + 0x54]
mov edx, 0x34
add eax, edi
mov ecx, esi
push eax
push ebx
push 3
call fcn.0042e5f0
add esp, 0xc
jmp 0x46e092
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x34
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], ebx
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x54]
add eax, edi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x28]
inc edi
movzx eax, word [eax + 0x32]
cmp edi, eax
mov eax, dword [esp + 0x28]
jl 0x46dfd0
test ebx, ebx
je 0x46e1cc
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x46e0d0
push 0
push 0
push 0
mov edx, 9
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
mov edi, eax
jmp 0x46e103
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x46e11d
push ebx
mov edx, esi
call fcn.0042ee90
add esp, 4
jmp 0x46e126
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
push str.row
mov edx, 3
mov ecx, esi
call fcn.0042e940
mov ecx, dword [esi + 0x6c]
add esp, 4
cmp dword [esi + 0x70], ecx
jg 0x46e159
push 3
push 3
push 7
mov edx, 0x6f
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
jmp 0x46e18c
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push str._values_differ_from_index
mov edx, 4
mov ecx, esi
call fcn.0042e940
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, esi
lea edx, [edx - 1]
call fcn.0042e8d0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x46e1c0
mov eax, 0x61da24
jmp 0x46e1c9
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x36], 0
je 0x46e474
mov ecx, dword [esp + 0x10]
xor ebx, ebx
dec dword [ecx + 0x38]
mov edx, dword [ecx + 0x38]
xor ecx, ecx
mov dword [esp + 0x24], edx
cmp cx, word [eax + 0x32]
jae 0x46e27d
mov edi, dword [esp + 0x54]
jmp 0x46e204
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
movsx ecx, word [eax + ebx*2]
test ecx, ecx
js 0x46e21f
mov eax, dword [esp + 0x20]
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
jne 0x46e26f
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x46e240
push 0
push edx
push edi
mov edx, 0x32
mov ecx, esi
call fcn.0042e5f0
mov edx, dword [esp + 0x30]
add esp, 0xc
jmp 0x46e26f
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x64]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
inc ebx
inc edi
movzx eax, word [eax + 0x32]
cmp ebx, eax
jl 0x46e200
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x46e2a0
push 0
push 0
push dword [esp + 0x44]
mov edx, 0x27
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
mov edi, eax
jmp 0x46e2d3
mov edx, dword [esp + 0x3c]
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x24]
cmp dword [esi + 0x70], ecx
jg 0x46e2f5
push 0
push ebx
push 0
mov edx, 9
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
jmp 0x46e324
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x46e336
mov eax, 0x61da24
jmp 0x46e33f
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x6c]
movzx edx, word [eax + 0x32]
cmp dword [esi + 0x70], ecx
jg 0x46e36d
push edx
push dword [esp + 0x58]
mov edx, 0x29
mov ecx, esi
push ebx
push dword [esp + 0x48]
call fcn.0042e630
add esp, 0x10
jmp 0x46e398
mov edi, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x54]
mov dword [eax + ecx*4], 0xfd29
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x46e3b9
push 0
push 3
push 0
mov edx, 0x75
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
mov edx, eax
jmp 0x46e3ec
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x75
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str.non_unique_entry_in_index
mov ecx, esi
call fcn.0042f6d0
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x46e41e
push 0
push dword [esp + 0x18]
mov edx, 9
mov ecx, esi
push 0
call fcn.0042e5f0
add esp, 0xc
jmp 0x46e451
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x46e46b
push ebx
mov edx, esi
call fcn.0042ee90
add esp, 4
jmp 0x46e474
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x46e486
mov eax, 0x61da24
jmp 0x46e493
mov eax, dword [esp + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov edi, dword [esp + 0x88]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x10]
test edi, edi
je 0x46e4cd
mov edx, dword [eax + 8]
not edi
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x46e4c0
push edi
call fcn.0042ee90
add esp, 4
jmp 0x46e4c9
mov ecx, dword [ecx + 0x40]
mov eax, dword [edx + 0x6c]
mov dword [ecx + edi*4], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [ebx + 0x14]
inc dword [esp + 0x3c]
mov dword [esp + 0x28], ebx
test ebx, ebx
jne 0x46dd40
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x46e50c
push 0
push ebx
push dword [esp + 0x54]
mov edx, 0x27
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
jmp 0x46e53b
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x46e54d
mov eax, 0x61da24
jmp 0x46e559
mov eax, dword [esi + 0x68]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
cmp byte [esp + 0x43], 0x71
mov dword [eax + 8], edx
je 0x46e74d
push str.wrong__of_entries_in_index
mov edx, 2
mov ecx, esi
call fcn.0042e940
mov eax, dword [esp + 0x24]
add esp, 4
mov eax, dword [eax + 8]
mov dword [esp + 0x14], eax
test eax, eax
je 0x46e709
mov ecx, dword [esp + 0x5c]
mov ebx, 8
cmp ecx, eax
je 0x46e6f9
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x46e5c6
mov eax, dword [esp + 0x18]
mov edx, 0x62
push 0
add eax, 0xfffffff8
mov ecx, esi
add eax, ebx
push 3
push eax
call fcn.0042e5f0
add esp, 0xc
jmp 0x46e5ff
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x62
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff8
mov dword [ecx + 0x10], 0
add eax, ebx
mov dword [ecx + 4], eax
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x46e61f
push 3
push 0
push ebx
mov edx, 0x35
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
mov edi, eax
jmp 0x46e64e
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x46e665
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x14]
mov edx, 4
mov ecx, esi
push dword [eax]
call fcn.0042e940
mov ecx, dword [esi + 0x6c]
add esp, 4
cmp dword [esi + 0x70], ecx
jg 0x46e699
push 3
push 2
push 4
mov edx, 0x6f
mov ecx, esi
call fcn.0042e5f0
add esp, 0xc
jmp 0x46e6cc
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.0046b470
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x46e6e5
mov eax, 0x61da24
jmp 0x46e6ee
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
inc ebx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x46e597
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x10]
test eax, eax
je 0x46e751
movzx eax, word [eax + 0x32]
cmp eax, 1
jne 0x46e73c
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x46e751
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x46e751
movzx eax, al
mov dword [ebx + eax*4 + 0xa4], ecx
inc byte [ebx + 0x13]
jmp 0x46e751
cmp eax, dword [ebx + 0x1c]
jle 0x46e751
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x20], eax
jmp 0x46e751
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
mov edi, dword [edi]
mov dword [esp + 0x34], edi
test edi, edi
jne 0x46d430
jmp 0x46e76d
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
inc ecx
mov dword [esp + 0x50], ecx
cmp ecx, dword [eax + 0x14]
jl 0x46d250
push ecx
push 0x5e2f60
mov edx, 7
mov ecx, esi
call fcn.0042f0f0
mov edx, eax
add esp, 8
test edx, edx
je 0x46e7cf
mov eax, dword [str.database_disk_image_is_malformed]
mov ecx, 1
sub ecx, dword [esp + 0x2c]
test eax, eax
mov dword [edx + 8], ecx
mov ecx, str.unknown_error
cmovne ecx, eax
mov byte [edx + 0x29], 0xff
mov dword [edx + 0x38], 0x5e1180
mov byte [edx + 0x65], 0xff
mov dword [edx + 0x74], ecx
mov eax, dword [esi + 0x6c]
xor edx, edx
sub eax, 2
mov ecx, esi
push eax
call fcn.0042f1a0
add esp, 4
jmp 0x46eda0
test ecx, ecx
jne 0x46e817
mov ebx, dword [esp + 0x10]
mov ecx, ebx
call fcn.0046ff40
test eax, eax
jne 0x46eda0
mov eax, dword [ebx]
mov ecx, esi
movzx edx, byte [eax + 0x54]
mov edx, dword [edx*8 + 0x5e34a0]
call fcn.0046b250
jmp 0x46eda0
mov edx, dword [esp + 0xc]
test byte [edx + 0x18], 0x40
jne 0x46eda0
mov eax, dword [str.UTF8]
mov esi, 0x5e34a0
test eax, eax
je 0x46e870
mov edx, eax
call fcn.0040bda0
test eax, eax
je 0x46e84e
mov eax, dword [esi + 8]
add esi, 8
mov ecx, dword [esp + 0x30]
test eax, eax
jne 0x46e833
jmp 0x46e879
mov cl, byte [esi + 4]
mov edx, 2
movzx eax, cl
test cl, cl
mov ecx, dword [esp + 0xc]
cmovne edx, eax
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], dl
call fcn.0045cf80
cmp dword [esi], 0
jne 0x46eda0
push dword [esp + 0x30]
push str.unsupported_encoding:__s
push dword [esp + 0x18]
call fcn.0040bbd0
add esp, 0xc
jmp 0x46eda0
mov ebx, dword [edi + 8]
mov ecx, esi
mov edx, dword [esp + 0x38]
call fcn.0042fb80
cmp dword [esp + 0x30], 0
je 0x46e90d
test byte [edi + 5], 8
jne 0x46e90d
push ecx
push 0x5e3024
mov edx, 2
mov ecx, esi
call fcn.0042f0f0
mov ecx, dword [esp + 0x38]
mov esi, eax
mov eax, dword [esp + 0x40]
add esp, 8
mov dword [esi + 4], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ebx
call fcn.0040d1f0
mov dword [esi + 0x20], eax
mov eax, 1
mov word [esi + 0x16], ax
cmp ebx, eax
jne 0x46eda0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
je 0x46eda0
mov byte [esi + 0x14], 0xb9
jmp 0x46eda0
push ecx
push 0x5e34e8
mov edx, 3
mov ecx, esi
call fcn.0042f0f0
mov ecx, dword [esp + 0x40]
add esp, 8
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov ecx, esi
mov dword [eax + 0x20], ebx
call fcn.0042ef70
jmp 0x46eda0
mov eax, dword [esp + 0x10]
xor edi, edi
push edi
mov dword [eax + 0x2c], 1
call fcn.004a50c0
add esp, 4
test eax, eax
je 0x46e983
push eax
mov edx, 1
mov ecx, esi
inc edi
call fcn.0042e940
add esp, 4
mov edx, 0x54
mov ecx, esi
push 1
push 1
call fcn.0042e780
push edi
call fcn.004a50c0
add esp, 0xc
test eax, eax
jne 0x46e955
mov ecx, esi
call fcn.0042ef70
jmp 0x46eda0
mov eax, dword [esp + 0x20]
mov ebx, 0xc
cmp dword [eax], 0
cmovne ebx, dword [esp + 0x38]
xor edi, edi
test ecx, ecx
je 0x46e9e8
mov edx, 0x5e0e68
call fcn.0040bda0
test eax, eax
jne 0x46e9b9
lea edi, [eax + 1]
jmp 0x46e9e8
mov ecx, dword [esp + 0x30]
mov edx, str.restart
call fcn.0040bda0
test eax, eax
jne 0x46e9d0
lea edi, [eax + 2]
jmp 0x46e9e8
mov ecx, dword [esp + 0x30]
mov edx, str.truncate
call fcn.0040bda0
test eax, eax
mov eax, 3
cmove edi, eax
mov eax, dword [esp + 0x10]
mov edx, 3
push 1
push edi
push ebx
mov ecx, esi
mov dword [eax + 0x2c], 3
call fcn.0042e7f0
add esp, 0xc
mov edx, 0x54
mov ecx, esi
push 3
push 1
call fcn.0042e780
jmp 0x46ed9d
test ecx, ecx
je 0x46ea31
call fcn.0040d1f0
push eax
push dword [esp + 0x10]
call fcn.004a24c0
add esp, 8
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x110], 0x4a2450
jne 0x46becc
mov eax, dword [eax + 0x114]
jmp 0x46ed93
push dword [esp + 0xc]
call fcn.004a09f0
add esp, 4
jmp 0x46eda0
test ecx, ecx
je 0x46ea7b
call fcn.0040d1f0
mov ecx, eax
mov dword [esp + 0x18], ecx
test cl, 2
je 0x46eda0
jmp 0x46ea83
mov dword [esp + 0x18], 0xfffe
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x34], eax
inc eax
cmp dword [esp + 0x1c], 0
mov dword [ecx + 0x28], eax
je 0x46eaa5
mov eax, edi
mov dword [esp + 0x14], eax
jmp 0x46eac0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x14], eax
cmp edi, eax
jg 0x46ec1c
nop dword [eax]
cmp edi, 1
je 0x46ec08
mov edx, edi
call fcn.0045c1b0
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ebx + 0xc]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x46ebfc
nop word [eax + eax]
mov edi, dword [ebx + 8]
test dword [edi + 0x1c], 0x100
je 0x46ebee
mov ax, word [edi + 0x26]
add ax, 0x2e
movzx ecx, ax
mov eax, dword [edi + 8]
mov dword [esp + 0x88], ecx
test eax, eax
je 0x46eb2d
nop dword [eax]
test byte [eax + 0x38], 0x80
je 0x46eb79
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x46eb20
test cx, cx
je 0x46eb79
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
push 0x70
push edi
push dword [esp + 0x40]
call fcn.00465490
mov eax, dword [esp + 0x94]
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, 0x21
cwde
and ecx, 1
add ecx, 2
push eax
mov eax, dword [esi + 0x6c]
add eax, ecx
mov ecx, esi
push eax
push dword [esp + 0x3c]
call fcn.0042e7f0
mov edx, dword [esp + 0x18]
add esp, 0xc
push dword [edi]
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x30]
push dword [eax + ecx]
push str.ANALYZE___w_.__w_
push edx
call fcn.0040a750
add esp, 0x10
mov edx, eax
test byte [esp + 0x18], 1
je 0x46ebd2
mov ecx, dword [esp + 0x10]
call fcn.0044f2d0
push 0xfffffffffffffffa
push edx
mov edi, eax
mov edx, 0x75
push 0
push edi
push 0
mov ecx, esi
call fcn.0042eb50
add esp, 0x14
mov edx, 0x54
mov ecx, esi
push 1
push edi
call fcn.0042e780
add esp, 8
jmp 0x46ebea
push 0xfffffffffffffffa
push edx
push 0
push 0
push 0
mov edx, 0x94
mov ecx, esi
call fcn.0042eb50
add esp, 0x14
mov edx, dword [esp + 0xc]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x46eaf0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
inc edi
add ebx, 0x10
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], ebx
cmp edi, eax
jle 0x46eac0
mov edx, 0xa6
mov ecx, esi
call fcn.0042e6c0
jmp 0x46eda0
test ecx, ecx
je 0x46ec57
lea edx, [esp + 0x88]
call fcn.0040cf60
test eax, eax
jne 0x46ec57
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.00407810
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00407810
push edx
push eax
mov ecx, esi
call fcn.0046b1b0
add esp, 0x10
jmp 0x46eda0
test ecx, ecx
je 0x46ecc5
lea edx, [esp + 0x88]
call fcn.0040cf60
test eax, eax
jne 0x46ecc5
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00407980
mov edi, dword [esp + 0x94]
add esp, 8
mov ebx, eax
test edi, edi
jl 0x46ecc5
mov ecx, dword [esp + 0x88]
jg 0x46ecab
test ecx, ecx
je 0x46ecc5
mov eax, ebx
or eax, edx
je 0x46ecbb
cmp edx, edi
jl 0x46ecc5
jg 0x46ecbb
cmp ebx, ecx
jbe 0x46ecc5
push edi
push ecx
call fcn.00407980
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00407980
push edx
push eax
mov ecx, esi
call fcn.0046b1b0
add esp, 0x10
jmp 0x46eda0
test ecx, ecx
je 0x46ed22
lea edx, [esp + 0x88]
call fcn.0040cf60
test eax, eax
jne 0x46ed22
cmp dword [esp + 0x8c], eax
jl 0x46ed22
mov eax, dword [esp + 0x88]
jg 0x46ed09
test eax, eax
jb 0x46ed22
mov ecx, 8
and eax, 0x7fffffff
cmp eax, ecx
cmovg eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0xa4], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xa4]
jmp 0x46ed93
test ecx, ecx
je 0x46ed67
lea edx, [esp + 0x88]
call fcn.0040cf60
test eax, eax
jne 0x46ed67
cmp dword [esp + 0x8c], eax
jl 0x46ed67
mov eax, dword [esp + 0x88]
jg 0x46ed58
test eax, eax
jb 0x46ed67
mov ecx, dword [esp + 0xc]
and eax, 0x7fffffff
mov dword [ecx + 0x1f0], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1f0]
jmp 0x46ed93
test ecx, ecx
je 0x46ed89
call fcn.0040d1f0
push eax
push dword [esp + 0x10]
call fcn.004a1a20
add esp, 8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1f4]
cdq
push edx
push eax
mov ecx, esi
call fcn.0046b1b0
add esp, 8
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0xc]
call fcn.00408080
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46edc0
mov ecx, dword [esp + 0xc]
mov edx, eax
call fcn.00408080
mov ecx, dword [esp + 0xac]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00540c56
mov esp, ebp
pop ebp
ret