Function at 0x10174b60
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov edi, edx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], eax
mov esi, dword [ebp + 0x10]
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 8], ecx
mov ecx, dword [ecx + 8]
mov dword [esp + 4], ecx
mov edx, 0xf
push eax
push eax
push eax
call fcn.10030110
add esp, 0xc
mov dword [esp + 0x8c], eax
mov ecx, dword [edi]
mov eax, dword [edi + 0xc]
mov edx, dword [ecx + 4]
movzx ecx, byte [esi + 0x3c]
lea ecx, [ecx + ecx*8]
lea ebx, [eax + eax*2]
shl ebx, 4
mov dword [esp + 0x78], edi
mov edi, dword [edi + 0x18]
add ebx, edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], ecx
lea ecx, [edx + ecx*8]
add ecx, 8
mov dword [esp + 0x84], ecx
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], esi
mov ecx, dword [esi + 0x50]
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x10174d84
xor eax, eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0xc], 0
xor ebx, ebx
test byte [edi + 0xa], 2
mov dword [esp + 0x40], eax
je 0x10174cdd
mov ecx, edi
mov edx, dword [esp + 0x84]
push dword [esp + 0x18]
push dword [esp + 0x3c]
call fcn.10176b80
add esp, 8
test eax, eax
je 0x10174cd7
mov dword [esp + 0x60], ebx
mov ecx, dword [edi + 0x18]
xor esi, esi
xor ebx, ebx
inc ebx
shld esi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne esi, ebx
mov edx, 0
cmovne ebx, edx
cmp ecx, 0x40
mov eax, closesocket
cmovge esi, eax
cmovge ebx, edx
cmp byte [esp + 0xc], 0
jne 0x10174ca5
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
shl ecx, 4
push dword [eax + ecx]
push dword [edx]
push str.automatic_index_on__s__s_
push 0x11c
call sym.nss3.dll_sqlite3_log
add esp, 0x10
mov eax, ebx
and eax, dword [esp + 0x10]
mov ecx, esi
and ecx, dword [esp + 0x28]
or ecx, eax
mov al, 1
mov dword [esp + 0xc], eax
je 0x10174d32
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x60]
add edi, 0x30
mov eax, edx
cmp edi, dword [esp + 0x1c]
jb 0x10174c21
jmp 0x10174d98
mov edx, dword [esp + 0x40]
jmp 0x10174cc3
mov esi, dword [edi]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0x3c]
mov ecx, esi
mov edx, dword [esp + 0x24]
push eax
call fcn.10174830
add esp, 4
test eax, eax
je 0x10174c2f
test esi, esi
je 0x10174d7c
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 8]
mov ecx, dword [ebx]
mov edx, esi
xor eax, eax
push eax
push eax
call fcn.10001810
mov ecx, ebx
mov ebx, dword [esp + 0x68]
add esp, 8
mov edx, ebx
push eax
call fcn.1016e030
add esp, 4
mov ebx, eax
jmp 0x10174c2f
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x20]
push dword [esp + 0x34]
call fcn.101764f0
add esp, 4
test eax, eax
jne 0x101754a4
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [eax + ecx*4], edi
or dword [esp + 0x10], ebx
or dword [esp + 0x28], esi
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x34]
jmp 0x10174cc3
xor eax, eax
mov ecx, dword [esp + 8]
jmp 0x10174d20
xor ebx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], 0
xor edx, edx
mov edi, dword [esp + 0x20]
mov word [edi + 0x30], dx
mov word [edi + 0x18], dx
mov dword [edi + 0x2c], 0x4241
xor ecx, ecx
dec ecx
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x2b], 2
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], ecx
mov esi, dword [esp + 0x24]
je 0x10174df3
mov ecx, dword [esp + 0x10]
not ecx
mov edi, edx
mov edx, dword [esp + 0x28]
not edx
mov eax, closesocket
or edx, eax
mov eax, dword [esp + 0x30]
and ecx, dword [esi + eax*8 + 0x40]
and edx, dword [esi + eax*8 + 0x44]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], edx
mov edx, edi
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
movsx ecx, word [eax + 0x22]
cmp cx, 0x3f
mov eax, 0x3f
cmovl eax, ecx
mov dword [esp + 0x7c], ecx
test ecx, ecx
mov dword [esp + 0x90], eax
jle 0x10174f65
xor ecx, ecx
inc ecx
cmp eax, 2
cmovge ecx, eax
lea eax, [ecx + 3]
dec ecx
movd xmm0, ecx
and eax, 0xfffc
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + 0x60], xmm0
movd xmm0, edx
movd xmm1, dword [esp + 0x34]
movd xmm2, dword [esp + 0x5c]
punpckldq xmm1, xmm2
pshufd xmm1, xmm1, 0x44
movdqa xmmword [esp + 0x40], xmm1
movdqa xmm4, xmmword [0x101b12b0]
mov ecx, 4
movdqa xmm6, xmmword [0x101b1290]
pxor xmm2, xmm2
xorps xmm5, xmm5
movdqa xmm1, xmm4
punpckhdq xmm1, xmm2
movdqa xmm7, xmm6
psllq xmm7, xmm1
movdqa xmm3, xmm4
psrldq xmm3, 0xc
movdqa xmm1, xmm6
psllq xmm1, xmm3
movss xmm5, xmm4
movdqa xmm3, xmm6
psllq xmm3, xmm5
movsd xmm1, xmm7
movdqa xmm7, xmm4
psrlq xmm7, 0x20
movdqa xmm5, xmm6
psllq xmm5, xmm7
movsd xmm5, xmm3
movapd xmm3, xmmword [esp + 0x40]
andpd xmm5, xmm3
andpd xmm1, xmm3
pcmpeqd xmm1, xmm2
pshufd xmm3, xmm1, 0xb1
pand xmm3, xmm1
pcmpeqd xmm5, xmm2
pshufd xmm7, xmm5, 0xb1
pand xmm7, xmm5
pcmpeqd xmm1, xmm1
pxor xmm3, xmm1
pxor xmm7, xmm1
packssdw xmm7, xmm3
movdqa xmm1, xmm0
psubd xmm0, xmm7
paddd xmm4, xmmword [0x101b1310]
lea edx, [eax + ecx]
add edx, 0xfffffffc
add ecx, 0xfffffffc
cmp edx, 4
jne 0x10174e73
neg ecx
movd xmm2, ecx
pshufd xmm2, xmm2, 0
por xmm2, xmmword [0x101b12b0]
movdqa xmm3, xmmword [0x101b12c0]
movdqa xmm4, xmmword [esp + 0x60]
pxor xmm4, xmm3
pxor xmm2, xmm3
pcmpgtd xmm2, xmm4
pand xmm1, xmm2
pandn xmm2, xmm0
por xmm2, xmm1
pshufd xmm0, xmm2, 0xee
paddd xmm0, xmm2
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd edx, xmm1
mov eax, dword [esp + 0x30]
mov eax, dword [esi + eax*8 + 0x44]
mov ecx, dword [esp + 0x7c]
add ecx, 0xffffffc1
sar eax, 0x1f
and eax, ecx
lea esi, [edx + eax]
inc esi
mov eax, dword [esp + 8]
mov ecx, dword [eax]
lea eax, [esp + 0x94]
movsx edx, si
push eax
call fcn.10172710
add esp, 4
test eax, eax
je 0x101754a8
mov ecx, eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x60], ebx
mov dword [edi + 0x20], eax
mov dword [eax], str.auto_index
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x78]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], 0
cmp esi, dword [esp + 0x1c]
jae 0x101750ea
mov dword [esp + 0xc], 0
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], edi
mov ecx, esi
mov edx, dword [esp + 0x84]
push dword [esp + 0x18]
push dword [esp + 0x3c]
call fcn.10176b80
add esp, 8
test eax, eax
je 0x10175061
mov ecx, dword [esi + 0x18]
mov edx, ebx
xor ebx, ebx
xor edi, edi
inc edi
shld ebx, edi, cl
shl edi, cl
test cl, 0x20
cmovne ebx, edi
mov eax, 0
cmovne edi, eax
cmp ecx, 0x40
mov eax, closesocket
cmovge ebx, eax
mov eax, 0
cmovge edi, eax
mov eax, ebx
mov dword [esp + 0x28], edx
and eax, edx
mov edx, edi
and edx, dword [esp + 0x40]
or edx, eax
je 0x10175070
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
jmp 0x10175065
mov edi, dword [esp + 0x40]
add esi, 0x30
cmp esi, dword [esp + 0x1c]
jb 0x10174ff4
jmp 0x101750ea
mov eax, dword [esi]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov edx, dword [esp + 0xc]
mov word [eax + edx*2], cx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x80]
call fcn.1002f790
test eax, eax
je 0x101750e3
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x20]
mov edx, dword [esp + 0xc]
mov dword [ecx + edx*4], eax
or edi, dword [esp + 0x40]
or ebx, dword [esp + 0x28]
inc edx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x10175065
call fcn.10044010
cmp al, 0x42
mov eax, dword [esp + 0x3c]
movzx eax, al
mov ecx, 1
cmovne eax, ecx
mov dword [esp + 0x3c], eax
jmp 0x10175065
mov eax, 0x101b1a9f
jmp 0x1017509e
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
lea eax, [eax + ecx*8]
add eax, 0x40
cmp word [esp + 0x7c], 0
mov dword [esp + 0x40], eax
jle 0x101754e6
xor edx, edx
inc edx
mov eax, dword [esp + 0x90]
cmp eax, 2
cmovl eax, edx
xor ecx, ecx
xor edi, edi
shld edi, edx, cl
mov ebx, edx
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
mov esi, 0
cmovne ebx, esi
and edi, dword [esp + 0x5c]
and ebx, dword [esp + 0x34]
or ebx, edi
je 0x1017515f
mov esi, eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 4]
mov ebx, dword [esp + 0xc]
mov word [edi + ebx*2], cx
mov edi, dword [eax + 0x20]
mov eax, esi
mov dword [edi + ebx*4], 0x101b1a9f
inc ebx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x2c]
inc ecx
cmp eax, ecx
jne 0x1017511a
mov eax, dword [esp + 0x40]
cmp dword [eax + 4], 0
js 0x101754ef
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 4]
mov word [eax + esi*2], 0xffff
mov eax, dword [edi + 0x20]
mov dword [esp + 0xc], esi
mov dword [eax + esi*4], 0x101b1a9f
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x28]
lea edx, [eax + 1]
mov dword [esi + 0x28], edx
mov edx, dword [esp + 0x14]
mov dword [edx + 8], eax
mov edx, 0x74
push 0
push dword [esp + 0x8c]
push eax
call fcn.10030110
add esp, 0xc
mov ecx, esi
mov edx, edi
call fcn.10170170
mov eax, dword [esi]
test byte [eax + 0x52], 8
jne 0x101751e0
cmp byte [esp + 0x3c], 0
jne 0x1017555c
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
test byte [eax + esi*8 + 0x30], 0x20
jne 0x1017520d
xor eax, eax
mov ecx, dword [esp + 4]
mov edx, 0x24
push eax
mov dword [esp + 0x3c], 0
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + 4]
jmp 0x10175258
mov ecx, dword [eax + esi*8 + 0x24]
mov dword [esp + 0x40], ecx
xor edi, edi
mov ebx, dword [esp + 4]
mov ecx, ebx
mov edx, 0x47
push edi
push edi
push edi
call fcn.10030110
add esp, 0xc
mov dword [esp + 0x38], eax
mov ecx, ebx
mov edx, 0xb
mov eax, dword [esp + 0x24]
push dword [eax + esi*8 + 0x20]
push edi
mov esi, dword [esp + 0x48]
push esi
call fcn.10030110
add esp, 0xc
mov ecx, ebx
mov edx, 0xc
push edi
push edi
push esi
call fcn.10030110
add esp, 0xc
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x20]
test edx, edx
mov ecx, dword [esp + 8]
je 0x1017552b
mov edi, dword [ecx + 0x38]
lea eax, [edi - 1]
mov dword [ecx + 0x38], eax
push 0x10
push eax
push edx
push ecx
call fcn.10041490
mov ecx, dword [esp + 0x18]
add esp, 0x10
or byte [esi + 0x2e], 2
neg edi
mov dword [esp + 0x18], edi
mov al, byte [ecx + 0x13]
test al, al
je 0x10175537
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov edx, dword [ecx + eax*4 + 0xa0]
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 4]
sub esp, 0x18
pxor xmm0, xmm0
movdqu xmmword [esp + 8], xmm0
mov dword [esp + 0x58], edx
mov dword [esp + 4], edx
mov dword [esp], eax
mov edx, dword [esp + 0x28]
call fcn.1005cc70
add esp, 0x18
mov esi, eax
mov eax, dword [edi + 0x34]
test eax, eax
mov ecx, dword [esp + 4]
je 0x10175322
mov edx, dword [esp + 0x20]
movzx edi, word [edx + 0x18]
mov edx, 0xb4
push esi
push 0
push eax
call fcn.10030110
mov ecx, dword [esp + 0x10]
add esp, 0xc
mov edx, dword [ecx]
cmp byte [edx + 0x57], 0
jne 0x10175322
mov edx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [edx + eax*4 + 1], 0xfd
mov dword [edx + eax*4 + 0x10], edi
mov edx, 0x8a
push 0
push dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
push dword [eax + 8]
call fcn.10030110
mov edx, dword [esp + 0x10]
add esp, 0xc
mov eax, dword [edx + 0x6c]
test eax, eax
jle 0x10175354
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
lea ebx, [eax + ecx*8]
add ebx, 0x30
cmp dword [esp + 0x60], 0
je 0x10175385
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10175543
mov eax, dword [edx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov edi, dword [esp + 0x18]
mov dword [ecx + edi*4], eax
test byte [ebx], 0x20
jne 0x101753c2
mov eax, dword [esp + 0x1c]
inc eax
mov ecx, edx
mov edx, 0x27
push 0
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + 4]
call fcn.10030110
mov edx, dword [esp + 0x10]
add esp, 0xc
mov eax, dword [edx + 0x6c]
test eax, eax
jle 0x10175430
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 3
jmp 0x10175430
mov dword [esp + 0x18], ebx
add esi, dword [esp + 0xc]
mov ecx, dword [edx]
mov eax, 0x101f4350
cmp byte [ecx + 0x57], 0
jne 0x101753e4
mov eax, dword [esp + 0x38]
lea eax, [eax + eax*4]
shl eax, 2
add eax, dword [edx + 0x68]
mov dword [eax + 8], esi
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
push dword [eax + 8]
mov esi, dword [esp + 0x28]
mov edi, edx
mov ebx, dword [esp + 0x34]
push dword [esi + ebx*8 + 0x28]
push dword [eax + 4]
call fcn.10176ff0
add esp, 0xc
xor eax, eax
mov ecx, dword [esp + 4]
mov edx, 9
push eax
push edi
push eax
call fcn.10030110
mov edx, dword [esp + 0x10]
add esp, 0xc
mov eax, dword [esp + 0x18]
and byte [eax], 0xdf
mov eax, edx
mov edx, dword [edx]
mov eax, dword [eax + 0x6c]
mov ecx, 0x101f4350
cmp byte [edx + 0x57], 0
mov esi, dword [esp + 0x40]
jne 0x10175457
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 4]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
test esi, esi
je 0x1017547d
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x1017547d
mov ecx, eax
inc cl
mov edx, dword [esp + 8]
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0xa0], esi
mov esi, dword [esp + 4]
mov edx, dword [esi]
mov eax, dword [esi + 0x6c]
mov ecx, 0x101f4350
cmp byte [edx + 0x57], 0
jne 0x101754a1
mov ecx, dword [esp + 0x8c]
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [esi + 0x68]
mov dword [ecx + 8], eax
mov ebx, dword [esp + 0x60]
test ebx, ebx
mov eax, dword [esp + 8]
je 0x101754d0
mov esi, dword [eax]
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.10157a00
mov ecx, esi
mov edx, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.1014f3a0
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.10157a00
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esp + 0x2c]
jmp 0x10175168
cmp word [ebx + 0x22], 0x40
jl 0x10175176
mov eax, 0x3f
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 4]
mov word [edx + esi*2], ax
mov edx, dword [edi + 0x20]
mov dword [edx + esi*4], 0x101b1a9f
inc esi
inc eax
movsx edx, word [ebx + 0x22]
cmp eax, edx
jl 0x1017550b
jmp 0x10175182
xor eax, eax
dec eax
mov dword [esp + 0x18], eax
jmp 0x1017529c
mov edx, dword [ecx + 0x2c]
inc edx
mov dword [ecx + 0x2c], edx
jmp 0x101752b6
mov edx, dword [esp + 4]
push dword [esp + 0x18]
call fcn.100329e0
mov edx, dword [esp + 8]
add esp, 4
jmp 0x10175385
mov eax, dword [esp + 0x78]
mov edx, dword [eax]
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x14]
push esi
call fcn.10176dd0
add esp, 4
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x2c]
inc eax
mov ecx, dword [esp + 8]
mov dword [ecx + 0x2c], eax
mov dword [esi + 0x34], eax
mov ecx, dword [esp + 4]
mov edx, 0x4d
push 0
push eax
push 0x2710
call fcn.10030110
add esp, 0xc
jmp 0x101751e0