Function at 0x100c9c80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
push ebx
push esi
push edi
xorps xmm0, xmm0
mov dword [esp + 0x54], edx
lea eax, [esp + 0x2c]
movlpd qword [esp + 0x58], xmm0
mov edi, ecx
movlpd qword [esp + 0x60], xmm0
push 0
push eax
mov edx, 0x1b
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], 0
call fcn.100bbe20
mov esi, eax
add esp, 8
mov dword [esp + 0x44], esi
test esi, esi
jne 0x100ca5da
mov eax, dword [edi + 0x118]
mov ebx, dword [esp + 0x2c]
cdq
push edx
push eax
push 1
push ebx
call sym.sqlite3.dll_sqlite3_bind_int64
mov eax, dword [edi + 0x100]
cdq
push edx
push eax
push 2
push ebx
call sym.sqlite3.dll_sqlite3_bind_int64
mov ecx, dword [esp + 0x7c]
add esp, 0x20
mov edx, dword [esp + 0x58]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], edx
push ebx
call sym.sqlite3.dll_sqlite3_step
add esp, 4
cmp eax, 0x64
jne 0x100c9e2b
test ebx, ebx
je 0x100c9d59
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100c9d31
push eax
call dword [0x1011d148]
add esp, 4
mov ecx, dword [ebx + 0x80]
test ecx, ecx
je 0x100c9d46
xor eax, eax
cmp ax, word [ebx + 0x98]
jb 0x100c9d5e
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.10008a20
mov ecx, 0x10114728
movzx eax, word [ecx + 8]
test al, 0x24
je 0x100c9d75
mov edi, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [esp + 0x30], edi
mov dword [esp + 0x5c], eax
jmp 0x100c9dae
test al, 8
je 0x100c9d88
movsd xmm0, qword [ecx]
call fcn.10027da0
mov dword [esp + 0x5c], edx
jmp 0x100c9daa
test al, 0x12
je 0x100c9d9d
cmp dword [ecx + 0x10], 0
je 0x100c9d9d
call fcn.10027dd0
mov dword [esp + 0x5c], edx
jmp 0x100c9daa
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x30], eax
test ebx, ebx
je 0x100c9de4
mov eax, dword [ebx]
mov edx, dword [ebx + 0x28]
cmp byte [eax + 0x53], 0
jne 0x100c9dc5
test edx, edx
jne 0x100c9dc5
xor ecx, ecx
jmp 0x100c9dd0
mov ecx, eax
call fcn.10005460
mov ecx, eax
mov eax, dword [ebx]
mov dword [ebx + 0x28], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100c9de4
push eax
call dword [0x1011d150]
add esp, 4
mov eax, dword [esp + 0x20]
xor edi, edi
cmp dword [eax + 0x100], edi
jle 0x100c9e23
mov esi, dword [esp + 0x30]
mov ebx, eax
lea eax, [esp + 0x44]
mov edx, esi
push eax
push edi
mov ecx, ebx
call fcn.100c9ab0
xor dword [esp + 0x50], eax
inc edi
xor dword [esp + 0x54], edx
add esp, 8
cmp edi, dword [ebx + 0x100]
jl 0x100c9df8
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
test esi, esi
je 0x100c9d08
test ebx, ebx
je 0x100c9edc
mov edi, dword [ebx]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x100c9e46
push eax
call dword [0x1011d148]
add esp, 4
cmp dword [ebx + 0x94], 0
jl 0x100c9e63
jg 0x100c9e5a
cmp dword [ebx + 0x90], 0
jbe 0x100c9e63
mov edx, ebx
mov ecx, edi
call fcn.1002f010
mov ecx, ebx
call fcn.1002ccc0
mov dword [ebx + 0x14], 0x2df20da3
mov dword [ebx + 0x24], 0xffffffff
mov dword [ebx + 0x28], 0
mov word [ebx + 0x9a], 0xff02
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x20], 1
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x4c], 0
cmp byte [edi + 0x53], 0
jne 0x100c9ec0
test eax, eax
jne 0x100c9ec0
xor ebx, ebx
jmp 0x100c9ecb
mov edx, eax
mov ecx, edi
call fcn.10005460
mov ebx, eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x100c9edc
push eax
call dword [0x1011d150]
add esp, 4
test esi, esi
jne 0x100c9f13
mov esi, ebx
test ebx, ebx
jne 0x100c9f13
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x14], esi
mov eax, dword [ebx + 0x24]
push dword [ebx + 0xe0]
push str.SELECT__s
mov eax, dword [eax]
mov dword [esp + 0x48], eax
call sym.sqlite3.dll_sqlite3_mprintf
mov edi, eax
add esp, 8
test edi, edi
jne 0x100c9f20
lea esi, [eax + 7]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
jmp 0x100ca5bb
mov ecx, dword [ebx + 0xc]
lea eax, [esp + 0x14]
push 0
push eax
push 0
push 0x80
push 0xffffffffffffffff
mov edx, edi
call fcn.10071fd0
add esp, 0x14
mov esi, eax
cmp dword [0x1011d0f8], 0
je 0x100c9f8d
mov eax, dword [0x1011f3e8]
test eax, eax
je 0x100c9f5b
push eax
call dword [0x1011d148]
add esp, 4
push edi
call dword [0x1011d124]
sub dword [0x1011f200], eax
add esp, 4
dec dword [0x1011f224]
push edi
call dword [0x1011d11c]
mov eax, dword [0x1011f3e8]
add esp, 4
test eax, eax
je 0x100c9f97
push eax
call dword [0x1011d150]
jmp 0x100c9f94
push edi
call dword [0x1011d11c]
add esp, 4
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], eax
test esi, esi
jne 0x100ca44b
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], eax
push ebx
call sym.sqlite3.dll_sqlite3_step
add esp, 4
cmp eax, 0x64
jne 0x100ca301
test ebx, ebx
je 0x100ca008
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100c9fe0
push eax
call dword [0x1011d148]
add esp, 4
mov ecx, dword [ebx + 0x80]
test ecx, ecx
je 0x100c9ff5
xor eax, eax
cmp ax, word [ebx + 0x98]
jb 0x100ca00d
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.10008a20
mov ecx, 0x10114728
movzx eax, word [ecx + 8]
test al, 0x24
je 0x100ca020
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x2c], ecx
jmp 0x100ca05d
test al, 8
je 0x100ca033
movsd xmm0, qword [ecx]
call fcn.10027da0
mov dword [esp + 0x2c], edx
jmp 0x100ca05d
test al, 0x12
je 0x100ca048
cmp dword [ecx + 0x10], 0
je 0x100ca048
call fcn.10027dd0
mov dword [esp + 0x2c], edx
jmp 0x100ca05d
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
test ebx, ebx
je 0x100ca097
mov eax, dword [ebx]
mov edx, dword [ebx + 0x28]
cmp byte [eax + 0x53], 0
jne 0x100ca078
test edx, edx
jne 0x100ca078
xor ecx, ecx
jmp 0x100ca083
mov ecx, eax
call fcn.10005460
mov ecx, eax
mov eax, dword [ebx]
mov dword [ebx + 0x28], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100ca097
push eax
call dword [0x1011d150]
add esp, 4
cmp dword [edi + 0x2c], 0
mov dword [esp + 0x1c], 0
je 0x100ca187
mov edi, dword [edi + 0x18]
inc edi
test ebx, ebx
je 0x100ca0f8
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100ca0c4
push eax
call dword [0x1011d148]
add esp, 4
mov ecx, dword [ebx + 0x80]
test ecx, ecx
je 0x100ca0e5
movzx eax, word [ebx + 0x98]
cmp edi, eax
jge 0x100ca0e5
test edi, edi
js 0x100ca0e5
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*8]
jmp 0x100ca0fd
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.10008a20
mov ecx, 0x10114728
movzx eax, word [ecx + 8]
test al, 0x24
je 0x100ca114
mov edi, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x64], eax
jmp 0x100ca14d
test al, 8
je 0x100ca127
movsd xmm0, qword [ecx]
call fcn.10027da0
mov dword [esp + 0x64], edx
jmp 0x100ca149
test al, 0x12
je 0x100ca13c
cmp dword [ecx + 0x10], 0
je 0x100ca13c
call fcn.10027dd0
mov dword [esp + 0x64], edx
jmp 0x100ca149
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x100ca183
mov eax, dword [ebx]
mov edx, dword [ebx + 0x28]
cmp byte [eax + 0x53], 0
jne 0x100ca164
test edx, edx
jne 0x100ca164
xor ecx, ecx
jmp 0x100ca16f
mov ecx, eax
call fcn.10005460
mov ecx, eax
mov eax, dword [ebx]
mov dword [ebx + 0x28], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100ca183
push eax
call dword [0x1011d150]
add esp, 4
mov edi, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x44], 0x28
mov dword [esp + 0x28], ecx
cmp ecx, dword [edi + 0x18]
jge 0x100c9fb7
mov eax, dword [edi + 0x20]
cmp byte [ecx + eax], 0
jne 0x100ca2ef
test ebx, ebx
je 0x100ca1ff
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100ca1c6
push eax
call dword [0x1011d148]
mov ecx, dword [esp + 0x2c]
add esp, 4
mov edx, dword [ebx + 0x80]
test edx, edx
je 0x100ca1ec
movzx eax, word [ebx + 0x98]
inc ecx
cmp ecx, eax
jge 0x100ca1ec
test ecx, ecx
js 0x100ca1ec
mov ecx, dword [esp + 0x44]
add ecx, edx
jne 0x100ca204
xor esi, esi
jmp 0x100ca233
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.10008a20
mov ecx, 0x10114728
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x100ca221
cmp byte [ecx + 0xa], 1
jne 0x100ca221
mov esi, dword [ecx + 0x10]
jmp 0x100ca233
test dl, 1
je 0x100ca22a
xor esi, esi
jmp 0x100ca233
mov dl, 1
call fcn.100289d0
mov esi, eax
test ebx, ebx
je 0x100ca269
mov eax, dword [ebx]
mov edx, dword [ebx + 0x28]
cmp byte [eax + 0x53], 0
jne 0x100ca24a
test edx, edx
jne 0x100ca24a
xor ecx, ecx
jmp 0x100ca255
mov ecx, eax
call fcn.10005460
mov ecx, eax
mov eax, dword [ebx]
mov dword [ebx + 0x28], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100ca269
push eax
call dword [0x1011d150]
add esp, 4
mov ebx, dword [edi + 0x24]
lea eax, [esp + 0x24]
push eax
push 0xffffffffffffffff
mov dword [esp + 0x2c], 0
mov edi, dword [ebx]
push esi
push ebx
mov eax, dword [edi + 0xc]
call eax
add esp, 0x10
test eax, eax
jne 0x100ca34a
mov ecx, dword [esp + 0x24]
mov dword [ecx], ebx
cmp dword [edi], 1
jl 0x100ca34a
push dword [esp + 0x1c]
mov eax, dword [edi + 0x18]
push dword [esp + 0x28]
call eax
add esp, 8
mov esi, eax
test eax, eax
je 0x100ca34a
push dword [esp + 0x24]
mov eax, dword [edi + 0x10]
call eax
add esp, 4
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov ebx, dword [esp + 0x40]
test ecx, ecx
je 0x100ca2db
mov eax, dword [ebx + 0x10]
push ecx
call eax
add esp, 4
mov ebx, dword [esp + 0x14]
xor eax, eax
mov ecx, dword [esp + 0x28]
cmp esi, 0x65
mov edi, dword [esp + 0x20]
cmove esi, eax
add dword [esp + 0x44], 0x28
inc ecx
mov dword [esp + 0x28], ecx
test esi, esi
je 0x100ca195
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
test edi, edi
je 0x100ca5b7
mov ebx, dword [edi]
test ebx, ebx
jne 0x100ca458
push str.API_called_with_finalized_prepared_statement
push 0x15
call sym.sqlite3.dll_sqlite3_log
push 0x10110a2c
push 0x14a42
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call sym.sqlite3.dll_sqlite3_log
add esp, 0x1c
jmp 0x100ca5b3
mov ecx, dword [esp + 0x24]
mov esi, eax
mov dword [esp + 0x3c], ecx
test eax, eax
jne 0x100ca2ca
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x40]
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x38], 0
push eax
lea eax, [esp + 0x68]
mov dword [esp + 0x68], 0
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x64], 0
push eax
lea eax, [esp + 0x60]
mov dword [esp + 0x48], 0
push eax
mov eax, dword [ebx + 0x14]
push ecx
call eax
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x100ca442
push dword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
push edi
push dword [esp + 0x34]
push dword [esp + 0x3c]
push eax
push dword [esp + 0x30]
call fcn.100c99f0
xor dword [esp + 0x30], eax
mov esi, 1
mov eax, dword [esp + 0x38]
add esp, 0x18
xor dword [esp + 0x10], edx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [eax + 0x100]
cmp ebx, esi
jle 0x100ca360
mov edi, dword [eax + 0x104]
add edi, 0x18
nop
mov edx, dword [edi]
cmp edx, dword [esp + 0x34]
jg 0x100ca431
push dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
push dword [esp + 0x2c]
push dword [esp + 0x34]
push dword [esp + 0x3c]
push esi
push dword [esp + 0x30]
call fcn.100c99f0
xor dword [esp + 0x30], eax
add esp, 0x18
xor dword [esp + 0x10], edx
inc esi
add edi, 0x18
cmp esi, ebx
jl 0x100ca400
mov ecx, dword [esp + 0x3c]
jmp 0x100ca35c
mov ecx, dword [esp + 0x3c]
jmp 0x100ca2ce
mov edi, dword [esp + 0x60]
mov dword [esp + 0x18], edi
jmp 0x100ca305
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x100ca469
push eax
call dword [0x1011d148]
add esp, 4
cmp dword [edi + 0x94], 0
jl 0x100ca486
jg 0x100ca47d
cmp dword [edi + 0x90], 0
jbe 0x100ca486
mov edx, edi
mov ecx, ebx
call fcn.1002f010
mov eax, dword [edi + 0x14]
mov dword [esp + 0x44], 0
cmp eax, 0x2df20da3
je 0x100ca49f
cmp eax, 0x319c2973
jne 0x100ca4aa
mov ecx, edi
call fcn.1002ccc0
mov dword [esp + 0x44], eax
mov edi, dword [edi]
mov ecx, edi
mov edx, dword [esp + 0x14]
call fcn.1002cf00
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [edx + 8]
test ecx, ecx
je 0x100ca4ca
mov dword [ecx + 8], eax
jmp 0x100ca4cd
mov dword [edi + 4], eax
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x100ca4da
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov dword [edx + 0x14], 0x5606c3c8
mov dword [edx], 0
test edi, edi
je 0x100ca538
cmp dword [edi + 0x210], 0
je 0x100ca500
mov ecx, edi
call fcn.10004c70
jmp 0x100ca597
cmp edx, dword [edi + 0x164]
jae 0x100ca538
cmp edx, dword [edi + 0x15c]
jb 0x100ca520
mov eax, dword [edi + 0x158]
mov dword [edx], eax
mov dword [edi + 0x158], edx
jmp 0x100ca597
cmp edx, dword [edi + 0x160]
jb 0x100ca538
mov eax, dword [edi + 0x150]
mov dword [edx], eax
mov dword [edi + 0x150], edx
jmp 0x100ca597
cmp dword [0x1011d0f8], 0
je 0x100ca58d
mov eax, dword [0x1011f3e8]
test eax, eax
je 0x100ca558
push eax
call dword [0x1011d148]
mov edx, dword [esp + 0x18]
add esp, 4
push edx
call dword [0x1011d124]
sub dword [0x1011f200], eax
add esp, 4
dec dword [0x1011f224]
push dword [esp + 0x14]
call dword [0x1011d11c]
mov eax, dword [0x1011f3e8]
add esp, 4
test eax, eax
je 0x100ca597
push eax
call dword [0x1011d150]
jmp 0x100ca594
push edx
call dword [0x1011d11c]
add esp, 4
cmp byte [ebx + 0x53], 0
mov edx, dword [esp + 0x44]
jne 0x100ca5a5
test edx, edx
je 0x100ca5ac
mov ecx, ebx
call fcn.10005460
mov ecx, ebx
call fcn.100a6d80
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x48], ecx
jne 0x100ca5c7
cmp dword [esp + 0x4c], eax
je 0x100ca5da
mov eax, dword [esp + 0x54]
mov dword [eax], 0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x54]
pop edi
mov dword [eax], 1
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret