Function at 0x4e1ff0
Capabilities:
Encode data using xor

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x4e1ff0
test dword [0x87ed4c], 0xffffffff
jne 0x4e2520
call fcn.007663a0
jmp fcn.004e1fc0
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x64
mov ebx, eax
pxor xmm0, xmm0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], edx
movq qword [esp + 0x20], xmm0
xor eax, eax
mov word [esp + 0x50], ax
mov esi, dword [ebx]
mov eax, ebx
call fcn.004395a0
mov edi, eax
test edi, edi
je 0x4e2294
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], eax
shl edx, 4
mov ecx, dword [eax + edx]
mov dword [esp + 0x30], edx
mov eax, str.sqlite_stat1
mov dword [esp + 0x38], ebx
inc eax
movsx edx, byte [eax]
test edx, edx
jne 0x4e2048
mov ebx, dword [esp + 0x38]
mov edx, str.sqlite_stat1
sub eax, edx
and eax, 0x3fffffff
mov edx, dword [esi + 4]
test edx, edx
jle 0x4e21c8
mov dword [esp + 0x44], 0
mov esi, dword [esp + 0x44]
mov dword [esp + 0x54], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], ebx
mov eax, esi
xor eax, 1
jmp 0x4e2090
mov eax, esi
shl eax, 4
test ecx, ecx
je 0x4e2105
mov edx, dword [esp + 0x4c]
mov ebx, dword [eax + edx]
lea edx, [ecx + 1]
movzx edi, byte [ecx]
test edi, edi
je 0x4e24fb
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], ecx
movzx ecx, byte [ebx]
movzx edi, byte [edi + 0x789b60]
movzx ecx, byte [ecx + 0x789b60]
cmp edi, ecx
jne 0x4e24ec
movzx edi, byte [edx]
inc ebx
inc edx
test edi, edi
jne 0x4e20b4
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
movzx edx, byte [ebx]
movzx edi, byte [edi + 0x789b60]
movzx edx, byte [edx + 0x789b60]
cmp edx, edi
je 0x4e2105
inc esi
cmp esi, dword [esp + 0x54]
jge 0x4e21c0
cmp esi, 2
jl 0x4e2087
jmp 0x4e208e
mov edx, dword [esp + 0x4c]
mov edx, dword [edx + eax + 0xc]
mov ebx, dword [edx + 0x10]
test ebx, ebx
je 0x4e2184
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x28], str.sqlite_stat1
xor eax, eax
mov dword [esp + 0x2c], eax
test edi, edi
jle 0x4e215f
mov dword [esp + 0x44], esi
mov esi, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x28]
lea eax, [esi*8]
xor eax, esi
movzx esi, byte [ecx]
inc ecx
movzx esi, byte [esi + 0x789b60]
xor esi, eax
dec edi
test edi, edi
jg 0x4e2138
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x44]
mov edi, dword [edx + 4]
mov eax, dword [esp + 0x2c]
xor edx, edx
div edi
mov edi, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
mov edx, 1
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
jmp 0x4e219b
mov edi, dword [edx + 0xc]
mov eax, dword [edx + 8]
mov edx, 1
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
test eax, eax
mov ecx, eax
cmovne ecx, edx
dec eax
test ecx, ecx
je 0x4e24df
test edi, edi
je 0x4e24df
cmp esi, dword [edi + 0x10]
je 0x4e229e
mov edi, dword [edi]
jmp 0x4e219b
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
push str.tbl_idx_stat
push str.sqlite_stat1
push ecx
push str.CREATE_TABLE__Q._s__s_
push ebx
call fcn.004f4e50
add esp, 0x14
mov ebx, dword [ebx + 0x19c]
mov dword [esp + 0x20], ebx
mov byte [esp + 0x50], 1
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 0x10]
mov esi, eax
jl 0x4e2208
mov eax, edi
call fcn.0045ce30
test eax, eax
jne 0x4e223b
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x14]
inc eax
mov dword [edi + 0xc], eax
lea edx, [esi + esi*4]
mov esi, dword [esp + 0x40]
mov byte [ecx + edx*4], 0x27
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov dword [ecx + edx*4 + 4], esi
mov dword [ecx + edx*4 + 8], ebx
mov ebx, dword [esp + 0x3c]
mov dword [ecx + edx*4 + 0xc], ebx
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [edi + 0x62], al
mov eax, dword [edi]
mov ebx, dword [edi + 0x14]
test ebx, ebx
je 0x4e226f
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x4e226f
mov esi, dword [edi + 0xc]
lea esi, [esi + esi*4]
movsx edx, byte [ebx + esi*4 - 0x13]
mov ecx, dword [ebx + esi*4 - 4]
call fcn.004337c0
mov dword [ebx + esi*4 - 4], 3
mov byte [ebx + esi*4 - 0x13], 0xf2
jmp 0x4e227e
mov edx, 0xfffffff2
mov ecx, 3
call fcn.004337c0
movzx eax, byte [esp + 0x50]
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x4e2294
mov edx, dword [edi + 0xc]
lea ebx, [edx + edx*4]
mov byte [ecx + ebx*4 - 0x11], al
add esp, 0x64
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [edi + 0xc]
mov dword [esp + 0x10], ebx
mov ebx, esi
mov esi, dword [esp + 0x10]
mov ecx, str.sqlite_stat1
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
jmp 0x4e22bc
inc esi
inc ecx
xor eax, eax
test ebx, ebx
cmovg eax, edx
dec ebx
test eax, eax
je 0x4e24ca
movzx eax, byte [esi]
test eax, eax
je 0x4e24ca
movzx eax, byte [eax + 0x789b60]
movzx edi, byte [ecx]
movzx edi, byte [edi + 0x789b60]
cmp eax, edi
je 0x4e22ba
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x1c]
test ebx, ebx
js 0x4e2320
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0x789b60]
movzx ecx, byte [ecx]
movzx ecx, byte [ecx + 0x789b60]
cmp ecx, ebx
jne 0x4e21bc
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov eax, dword [edi + 8]
test eax, eax
je 0x4e20f3
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov ecx, dword [eax + 0x18]
mov eax, dword [ebx + 0x1a8]
mov dword [esp + 0x18], ecx
test eax, eax
cmove eax, ebx
mov edx, dword [eax + 0x194]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x190]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
test ecx, ecx
jle 0x4e239e
mov esi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x38], ebx
mov ebx, edx
mov edx, eax
shl edx, 4
cmp edi, dword [ebx + edx]
jne 0x4e2391
cmp esi, dword [edx + ebx + 4]
je 0x4e2429
inc eax
cmp eax, ecx
jb 0x4e237d
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
shl ecx, 4
add ecx, 0x10
mov eax, dword [esi]
mov dword [esp + 0x10], eax
call fcn.00490370
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x4e249c
mov ecx, dword [esi + 0x190]
mov dword [esi + 0x194], eax
mov edx, ecx
shl edx, 4
inc ecx
mov dword [esi + 0x190], ecx
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x18]
mov dword [edx + eax], ecx
mov dword [edx + eax + 4], esi
mov byte [edx + eax + 8], 1
mov dword [edx + eax + 0xc], str.sqlite_stat1
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4e243c
push eax
push str.sqlite_stat1
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
push dword [eax + edx]
push str.DELETE_FROM__Q._s_WHERE_tbl_Q
push ebx
call fcn.004f4e50
add esp, 0x14
mov ebx, dword [esp + 0x20]
jmp 0x4e21f0
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov byte [edx + eax + 8], 1
jmp 0x4e23fa
mov ebx, dword [esp + 0x20]
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 0x10]
mov dword [esp + 0x10], ebx
mov esi, eax
jl 0x4e2464
mov eax, edi
call fcn.0045ce30
mov ebx, dword [esp + 0x20]
test eax, eax
jne 0x4e21f0
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x14]
inc eax
mov dword [edi + 0xc], eax
lea edx, [esi + esi*4]
mov esi, dword [esp + 0x10]
mov byte [ecx + edx*4], 0x5f
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov dword [ecx + edx*4 + 4], esi
mov esi, dword [esp + 0x3c]
mov dword [ecx + edx*4 + 8], esi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [edi + 0x62], al
jmp 0x4e21f0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
call fcn.004e33d8
mov eax, dword [esp + 0x14]
mov edx, esi
mov ecx, dword [edx]
mov dword [edx + 0x194], eax
mov dword [edx + 0x190], 0
mov byte [ecx + 0x1e], 1
jmp 0x4e23fa
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x1c]
jmp 0x4e22fc
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
jmp 0x4e20f3
mov esi, dword [esp + 0x44]
mov edx, ecx
mov ecx, dword [esp + 0x48]
jmp 0x4e20ef
movzx edx, byte [ebx]
movzx edi, byte [edi + 0x789b60]
movzx edx, byte [edx + 0x789b60]
jmp 0x4e20ef
push edi
push esi
push ebp
push ebx
sub esp, 0x48
mov dword [esp + 0x34], ecx
mov esi, edx
mov edi, eax
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
xor eax, eax
mov word [esp + 0x3c], ax
mov ebx, dword [edi]
mov eax, edi
call fcn.004395a0
mov ebp, eax
test ebp, ebp
je 0x4e27aa
mov eax, dword [ebx + 8]
mov dword [esp + 0x38], eax
mov edx, esi
shl edx, 4
mov dword [esp + 0x24], edx
mov ecx, dword [eax + edx]
mov eax, str.sqlite_stat1
mov dword [esp + 0x30], esi
inc eax
movsx edx, byte [eax]
test edx, edx
jne 0x4e256f
mov esi, dword [esp + 0x30]
mov edx, str.sqlite_stat1
sub eax, edx
and eax, 0x3fffffff
mov edx, dword [ebx + 4]
test edx, edx
jle 0x4e26e1
xor ebx, ebx
mov dword [esp + 0x44], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
mov ebp, dword [esp + 0x38]
mov eax, ebx
xor eax, 1
jmp 0x4e25b5
mov eax, ebx
shl eax, 4
test ecx, ecx
je 0x4e2622
mov esi, dword [eax + ebp]
lea edx, [ecx + 1]
movzx edi, byte [ecx]
test edi, edi
je 0x4e29e5
mov dword [esp + 0x40], ecx
movzx ecx, byte [esi]
movzx edi, byte [edi + 0x789b60]
movzx ecx, byte [ecx + 0x789b60]
cmp edi, ecx
jne 0x4e29d6
inc esi
movzx edi, byte [edx]
inc edx
test edi, edi
jne 0x4e25d1
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
movzx edx, byte [esi]
movzx edi, byte [edi + 0x789b60]
movzx edx, byte [edx + 0x789b60]
cmp edx, edi
je 0x4e2622
inc ebx
cmp ebx, dword [esp + 0x44]
jge 0x4e26d5
cmp ebx, 2
jl 0x4e25ac
jmp 0x4e25b3
mov edx, dword [ebp + eax + 0xc]
mov esi, dword [edx + 0x10]
test esi, esi
je 0x4e2699
mov dword [esp + 0x18], str.sqlite_stat1
mov edi, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x1c], eax
test edi, edi
jle 0x4e2674
mov dword [esp + 0x40], ecx
mov ebp, eax
mov ecx, dword [esp + 0x18]
lea eax, [ebp*8]
xor eax, ebp
movzx ebp, byte [ecx]
movzx ebp, byte [ebp + 0x789b60]
xor ebp, eax
inc ecx
dec edi
test edi, edi
jg 0x4e264d
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
mov edi, dword [edx + 4]
mov eax, dword [esp + 0x1c]
xor edx, edx
div edi
mov eax, dword [esi + edx*8 + 4]
mov esi, dword [esi + edx*8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x40], ecx
mov ebx, dword [esp + 0xc]
mov ecx, str.sqlite_stat1
jmp 0x4e26b0
mov eax, dword [edx + 0xc]
mov esi, dword [edx + 8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x40], ecx
mov ebx, dword [esp + 0xc]
mov ecx, str.sqlite_stat1
xor edx, edx
test esi, esi
setne dl
dec esi
test edx, edx
je 0x4e29c5
test eax, eax
je 0x4e29c5
cmp ebx, dword [eax + 0x10]
je 0x4e27b2
mov eax, dword [eax]
jmp 0x4e26b0
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
push str.tbl_idx_stat
push str.sqlite_stat1
push ecx
push str.CREATE_TABLE__Q._s__s_
push edi
call fcn.004f4e50
add esp, 0x14
mov ebx, dword [edi + 0x19c]
mov dword [esp + 0x10], ebx
mov byte [esp + 0x3c], 1
mov eax, dword [ebp + 0xc]
mov edi, eax
cmp eax, dword [ebp + 0x10]
jl 0x4e2721
mov eax, ebp
call fcn.0045ce30
test eax, eax
jne 0x4e2750
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
lea edi, [edi + edi*4]
mov ecx, dword [ebp + 0x14]
mov byte [ecx + edi*4], 0x27
xor eax, eax
mov byte [ecx + edi*4 + 3], al
mov edx, dword [esp + 0x34]
mov dword [ecx + edi*4 + 4], edx
mov dword [ecx + edi*4 + 8], ebx
mov dword [ecx + edi*4 + 0xc], esi
mov dword [ecx + edi*4 + 0x10], eax
mov byte [ecx + edi*4 + 1], al
mov byte [ebp + 0x62], al
mov eax, dword [ebp]
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x4e2785
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x4e2785
mov ebx, dword [ebp + 0xc]
lea ebx, [ebx + ebx*4]
movsx edx, byte [esi + ebx*4 - 0x13]
mov ecx, dword [esi + ebx*4 - 4]
call fcn.004337c0
mov dword [esi + ebx*4 - 4], 3
mov byte [esi + ebx*4 - 0x13], 0xf2
jmp 0x4e2794
mov edx, 0xfffffff2
mov ecx, 3
call fcn.004337c0
movzx eax, byte [esp + 0x3c]
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x4e27aa
mov edx, dword [ebp + 0xc]
lea ebx, [edx + edx*4]
mov byte [ecx + ebx*4 - 0x11], al
add esp, 0x48
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [eax + 0xc]
mov edi, ebx
mov ebp, ecx
mov ecx, edx
jmp 0x4e27bf
inc ecx
inc ebp
xor edx, edx
test edi, edi
setg dl
dec edi
test edx, edx
je 0x4e29b5
movzx ebx, byte [ecx]
test ebx, ebx
je 0x4e29b5
movzx edx, byte [ebx + 0x789b60]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0x789b60]
cmp edx, ebx
je 0x4e27bd
mov edx, ecx
mov ebx, dword [esp + 0xc]
mov ecx, str.sqlite_stat1
test edi, edi
js 0x4e281c
movzx edi, byte [edx]
movzx edx, byte [edi + 0x789b60]
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0x789b60]
cmp ebp, edx
jne 0x4e26d1
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
mov eax, dword [eax + 8]
test eax, eax
je 0x4e2610
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], ecx
mov eax, dword [edi + 0x1a8]
test eax, eax
jne 0x4e2856
mov eax, edi
mov dword [esp + 0x20], eax
mov ecx, dword [eax + 0x190]
mov edx, dword [eax + 0x194]
mov dword [esp + 0x1c], edx
test ecx, ecx
jle 0x4e2897
xor eax, eax
mov dword [esp + 0x2c], edi
mov ebx, edx
mov edi, dword [esp + 0x18]
mov edx, eax
shl edx, 4
cmp esi, dword [ebx + edx]
jne 0x4e288e
cmp edi, dword [edx + ebx + 4]
je 0x4e291e
inc eax
cmp eax, ecx
jb 0x4e287a
mov edi, dword [esp + 0x2c]
shl ecx, 4
add ecx, 0x10
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x1c]
call fcn.00490370
mov ebx, eax
test ebx, ebx
je 0x4e2989
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x194], ebx
mov edx, dword [ecx + 0x190]
mov eax, edx
shl eax, 4
inc edx
mov dword [ecx + 0x190], edx
mov dword [eax + ebx], esi
mov edx, dword [esp + 0x18]
mov dword [eax + ebx + 4], edx
mov byte [eax + ebx + 8], 1
mov dword [eax + ebx + 0xc], str.sqlite_stat1
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4e292d
push eax
push str.sqlite_stat1
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
push dword [eax + edx]
push str.DELETE_FROM__Q._s_WHERE_tbl_Q
push edi
call fcn.004f4e50
add esp, 0x14
mov ebx, dword [esp + 0x10]
jmp 0x4e2709
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov byte [edx + eax + 8], 1
jmp 0x4e28ee
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xc], ebx
mov eax, dword [ebp + 0xc]
mov edi, eax
cmp eax, dword [ebp + 0x10]
jl 0x4e2955
mov eax, ebp
call fcn.0045ce30
mov ebx, dword [esp + 0x10]
test eax, eax
jne 0x4e2709
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
lea edi, [edi + edi*4]
mov ecx, dword [ebp + 0x14]
mov byte [ecx + edi*4], 0x5f
xor eax, eax
mov byte [ecx + edi*4 + 3], al
mov edx, dword [esp + 0xc]
mov dword [ecx + edi*4 + 4], edx
mov dword [ecx + edi*4 + 8], esi
mov dword [ecx + edi*4 + 0xc], eax
mov dword [ecx + edi*4 + 0x10], eax
mov byte [ecx + edi*4 + 1], al
mov byte [ebp + 0x62], al
jmp 0x4e2709
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
call fcn.004e33d8
mov eax, dword [esp + 0x20]
mov dword [eax + 0x194], ebx
mov dword [eax + 0x190], 0
mov edx, dword [eax]
mov byte [edx + 0x1e], 1
jmp 0x4e28ee
mov edx, ecx
mov ebx, dword [esp + 0xc]
mov ecx, str.sqlite_stat1
jmp 0x4e27fb
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
jmp 0x4e2610
mov edx, ecx
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
jmp 0x4e260c
movzx edx, byte [esi]
movzx edi, byte [edi + 0x789b60]
movzx edx, byte [edx + 0x789b60]
jmp 0x4e260c