Function at 0x1004c2d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov edx, dword [ebp + 8]
xor ecx, ecx
push ebx
push esi
push edi
mov eax, dword [edx]
xor edi, edi
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x2c], edi
mov esi, dword [eax]
mov ecx, dword [eax + 4]
inc esi
mov ebx, dword [eax + 0x10]
push esi
push dword [edx + 0xc]
mov dword [ebp - 0xc], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ecx
call sym.e_sqlite3.dll_sqlite3_column_text
mov ecx, dword [ebp + 8]
add esp, 8
mov dword [ebp - 0x18], eax
mov ecx, dword [ecx + 0xc]
push esi
push ecx
test eax, eax
jne 0x1004c344
call sym.e_sqlite3.dll_sqlite3_column_type
add esp, 8
sub eax, 5
neg eax
sbb eax, eax
pop edi
pop esi
and eax, 7
pop ebx
mov esp, ebp
pop ebp
ret
call sym.e_sqlite3.dll_sqlite3_column_bytes
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x40], eax
mov ecx, dword [ecx + 0x24]
mov edx, dword [ecx]
mov dword [ebp - 0x38], edx
lea edx, [ebp - 0x34]
push edx
push eax
mov eax, dword [ebp + 8]
push dword [ebp - 0x18]
push dword [eax + 0x14]
push ecx
call fcn.100a2c30
add esp, 0x1c
test eax, eax
je 0x1004c385
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, 1
lea eax, [ebp - 0x10]
mov dword [ebp - 0x3c], 0xffffffff
push eax
lea eax, [ebp - 0x20]
mov dword [ebp - 8], 0
push eax
lea eax, [ebp - 8]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x38]
push dword [ebp - 0x34]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x1010a1d8]
call esi
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x1004c6ba
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
cmp ecx, edx
jl 0x1004c385
test edi, edi
mov edi, dword [ebp - 8]
jne 0x1004c5e9
mov eax, dword [ebp - 0x40]
sub eax, edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x18]
add eax, edi
mov dword [ebp - 0x48], eax
mov eax, ebx
or eax, dword [ebp - 4]
je 0x1004c58d
mov eax, ebx
mov dword [ebp - 0x2c], esi
and eax, 1
or eax, esi
jne 0x1004c436
mov edi, dword [ebp - 4]
inc esi
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, ebx
and ecx, edi
or edx, ecx
je 0x1004c410
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x2c], esi
mov ebx, dword [ebp + 0x18]
xor edx, edx
dec ebx
mov dword [ebp - 0x1c], 0
xor ecx, ecx
mov eax, ebx
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebp - 0x14]
and ecx, dword [ebp - 4]
or edx, ecx
jne 0x1004c493
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
dec ebx
xor edx, edx
xor ecx, ecx
mov eax, ebx
bts edx, eax
inc esi
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, edi
and ecx, dword [ebp - 4]
or edx, ecx
je 0x1004c468
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x2c]
sub esi, dword [ebp - 0x1c]
mov eax, esi
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
test ebx, ebx
jle 0x1004c584
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x1c], 0
mov ecx, dword [eax + 0x24]
mov eax, dword [ecx]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x44]
mov eax, dword [ebp + 8]
push dword [ebp - 0x48]
push dword [eax + 0x14]
push ecx
call fcn.100a2c30
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1004c6d5
mov edi, dword [ebp + 0x18]
add edi, ebx
mov ebx, dword [ebp - 0x4c]
cmp dword [ebp - 0x1c], edi
jge 0x1004c52c
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x28], 0
push eax
lea eax, [ebp - 0x48]
mov dword [ebp - 0x44], 0
push eax
lea eax, [ebp - 0x44]
mov dword [ebp - 0x48], 0
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x2c]
push ebx
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x1010a1d8]
call esi
mov esi, eax
add esp, 0x18
test esi, esi
je 0x1004c4e4
mov eax, dword [ebp - 0x2c]
push ebx
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x1010a1d8]
call edi
add esp, 4
test esi, esi
je 0x1004c54d
cmp esi, 0x65
jne 0x1004c6d5
mov edx, dword [ebp - 0xc]
xor eax, eax
mov edi, dword [ebp - 8]
cmp esi, 0x65
sete al
sub eax, dword [ebp + 0x18]
add eax, dword [ebp - 0x1c]
test eax, eax
jle 0x1004c587
movq xmm1, qword [ebp - 0x5c]
add edx, eax
movd xmm0, eax
psrlq xmm1, xmm0
movq qword [ebp - 0x5c], xmm1
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 4], ecx
jmp 0x1004c58a
mov edx, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
xor esi, esi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], edx
test edx, edx
jg 0x1004c5ae
cmp dword [ebp + 0x10], esi
jg 0x1004c5ae
test edi, edi
je 0x1004c5d4
push edi
push dword [ebp - 0x18]
jmp 0x1004c5b3
push 0xffffffffffffffff
push dword [ebp + 0x24]
push dword [ebp + 0x28]
call fcn.1004ce60
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1004c6d5
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], eax
cmp ecx, edx
jl 0x1004c380
mov eax, dword [ebp + 0x18]
add eax, edx
cmp ecx, eax
jge 0x1004c6ad
mov eax, ecx
xor ecx, ecx
sub eax, edx
xor edx, edx
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, ebx
and ecx, dword [ebp - 4]
or edx, ecx
je 0x1004c61f
mov ebx, 1
jmp 0x1004c621
xor ebx, ebx
mov ecx, dword [ebp - 0xc]
cmp dword [ebp - 0x10], ecx
jle 0x1004c649
sub edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x24]
push edi
mov edi, dword [ebp + 0x28]
push eax
push edi
call fcn.1004ce60
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1004c698
mov edi, dword [ebp - 8]
test ebx, ebx
je 0x1004c666
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x28]
call fcn.1004ce60
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1004c698
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
sub eax, edi
push eax
mov eax, dword [ebp - 0x18]
add eax, edi
mov edi, dword [ebp + 0x28]
push eax
push edi
call fcn.1004ce60
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1004c698
test ebx, ebx
je 0x1004c698
push 0xffffffffffffffff
push dword [ebp + 0x20]
push edi
call fcn.1004ce60
add esp, 0xc
mov esi, eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
test esi, esi
jne 0x1004c6d5
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x2c]
jmp 0x1004c385
cmp dword [ebp + 0x14], 0
je 0x1004c6d5
push 0xffffffffffffffff
push dword [ebp + 0x24]
jmp 0x1004c6c8
cmp esi, 0x65
jne 0x1004c6d5
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x24]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x28]
call fcn.1004ce60
mov esi, eax
add esp, 0xc
mov eax, dword [ebp - 0x38]
push dword [ebp - 0x34]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x1010a1d8]
call edi
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret