Function at 0x101740d0
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, 0x90
mov edi, edx
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x3c], eax
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
mov eax, dword [0x101ef014]
xor eax, ebp
mov dword [esp + 0x88], eax
xor eax, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [ecx + 8]
mov dword [esp + 0xc], ecx
mov edx, 0xf
push eax
push eax
push eax
call fcn.1002fb80
add esp, 0xc
mov dword [esp + 0x78], eax
mov dword [esp + 0x2c], ebx
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x68], edi
mov edi, dword [edi + 0x18]
lea ecx, [eax + eax*2]
shl ecx, 4
add ecx, edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], esi
mov ecx, dword [esi + 0x50]
mov dword [esp + 0x34], ecx
test eax, eax
jle 0x101742ed
xor eax, eax
xor edx, edx
xor esi, esi
mov dword [esp + 0x50], 0
xor ebx, ebx
mov dword [esp + 0x1c], edx
test byte [edi + 0xa], 2
mov dword [esp + 0x40], eax
je 0x10174237
mov ecx, edi
mov edx, dword [esp + 0x2c]
push dword [esp + 0x24]
push dword [esp + 0x40]
call fcn.10176260
add esp, 8
test eax, eax
je 0x1017422d
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], 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 + 0x50], 0
mov edx, dword [esp + 0x1c]
jne 0x101741f9
mov edx, dword [esp + 0x38]
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
mov edx, dword [esp + 0x2c]
add esp, 0x10
mov eax, ebx
and eax, edx
mov ecx, esi
and ecx, dword [esp + 0x10]
or ecx, eax
mov al, 1
mov dword [esp + 0x50], eax
je 0x1017428c
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
add edi, 0x30
mov eax, ecx
cmp edi, dword [esp + 0x28]
jb 0x10174168
jmp 0x101742f5
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
jmp 0x10174219
mov dword [esp + 0x10], esi
mov esi, dword [edi]
mov ecx, esi
mov edx, dword [esp + 0x2c]
call fcn.10173df0
test eax, eax
je 0x101742dc
test esi, esi
je 0x101742e5
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx]
mov edx, esi
xor eax, eax
push eax
push eax
call fcn.10001810
mov ecx, ebx
mov ebx, dword [esp + 0x1c]
add esp, 8
mov esi, dword [esp + 0x10]
mov edx, ebx
push eax
call fcn.10016b90
add esp, 4
mov ebx, eax
jmp 0x1017417a
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [esp + 0x34]
push dword [esp + 0x20]
call fcn.10175c80
add esp, 4
test eax, eax
jne 0x10174a72
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [eax + ecx*4], edi
mov edx, dword [esp + 0x1c]
or edx, ebx
mov eax, dword [esp + 0x10]
or eax, esi
mov esi, eax
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
jmp 0x10174219
mov esi, dword [esp + 0x10]
jmp 0x1017417a
xor eax, eax
mov ecx, dword [esp + 0x18]
jmp 0x10174276
xor ebx, ebx
xor edx, edx
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x34]
mov word [eax + 0x30], cx
mov word [eax + 0x18], cx
mov dword [eax + 0x2c], 0x4241
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + 0x3c]
not edx
not esi
mov eax, closesocket
or esi, eax
mov dword [esp + 0x14], edi
and esi, edi
and edx, dword [ecx + 0x38]
mov eax, dword [esp + 0x38]
movsx eax, word [eax + 0x22]
cmp ax, 0x3f
mov ecx, 0x3f
cmovl ecx, eax
mov dword [esp + 0x6c], eax
test eax, eax
mov eax, esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x80], ecx
jle 0x10174651
mov esi, edx
xor edx, edx
inc edx
cmp ecx, 2
cmovge edx, ecx
lea ecx, [edx + 3]
dec edx
movd xmm0, edx
and ecx, 0xfffc
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + 0x50], xmm0
movd xmm0, dword [esp + 0x20]
movd xmm1, esi
movd xmm2, eax
punpckldq xmm1, xmm2
pshufd xmm1, xmm1, 0x44
movdqa xmmword [esp + 0x40], xmm1
movdqa xmm4, xmmword [0x101af270]
mov edx, 4
movdqa xmm6, xmmword [0x101af250]
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 [0x101af2d0]
lea esi, [ecx + edx]
add esi, 0xfffffffc
add edx, 0xfffffffc
cmp esi, 4
jne 0x101743b2
neg edx
movd xmm2, edx
pshufd xmm2, xmm2, 0
por xmm2, xmmword [0x101af270]
movdqa xmm3, xmmword [0x101af280]
movdqa xmm4, xmmword [esp + 0x50]
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 esi, xmm1
xor ecx, ecx
inc ecx
cmp dword [esp + 0x14], 0
mov eax, dword [esp + 0x6c]
lea edx, [eax - 0x3e]
cmovns edx, ecx
add edx, esi
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea eax, [esp + 0x84]
mov dword [esp + 0x7c], edx
movsx edx, dx
push eax
call fcn.10171cb0
add esp, 4
test eax, eax
mov edi, dword [esp + 0x38]
je 0x101749cd
mov ecx, eax
mov eax, dword [esp + 0x34]
mov dword [eax + 0x20], ecx
mov dword [ecx], str.auto_index
mov dword [esp + 0x50], ecx
mov dword [ecx + 0xc], edi
mov eax, dword [esp + 0x68]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x40], 0
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
jae 0x101745da
mov dword [esp + 0x40], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x74], 0
mov ecx, esi
mov edx, dword [esp + 0x2c]
push dword [esp + 0x24]
push dword [esp + 0x40]
call fcn.10176260
add esp, 8
test eax, eax
je 0x10174583
mov ecx, dword [esi + 0x18]
xor edi, edi
xor ebx, ebx
inc ebx
shld edi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
mov edx, 0
cmovne ebx, edx
cmp ecx, 0x40
mov eax, closesocket
cmovge edi, eax
cmovge ebx, edx
mov eax, edi
and eax, dword [esp + 0x74]
mov edx, ebx
and edx, dword [esp + 0x20]
or edx, eax
je 0x1017458e
mov ebx, dword [esp + 0x14]
add esi, 0x30
cmp esi, dword [esp + 0x28]
jb 0x1017452c
jmp 0x101745da
mov dword [esp + 0x70], esi
mov edx, dword [esi]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x40]
mov word [eax + esi*2], cx
mov ecx, dword [esp + 0x18]
call fcn.1002f200
test eax, eax
je 0x101745d3
mov eax, dword [eax]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x70]
mov ecx, dword [ecx + 0x20]
mov edx, dword [esp + 0x40]
mov dword [ecx + edx*4], eax
or dword [esp + 0x20], ebx
or dword [esp + 0x74], edi
inc edx
mov dword [esp + 0x40], edx
jmp 0x1017457f
mov eax, 0x101afa5f
jmp 0x101745b2
cmp word [esp + 0x6c], 0
mov eax, dword [esp + 0x80]
jle 0x1017465a
cmp eax, 2
mov ecx, 1
cmovl eax, ecx
xor ecx, ecx
mov esi, dword [esp + 0x40]
mov dword [esp + 0x40], esi
xor edx, edx
xor esi, esi
inc esi
shld edx, esi, cl
shl esi, cl
test cl, 0x20
cmovne edx, esi
mov edi, 0
cmovne esi, edi
and edx, dword [esp + 0x10]
and esi, dword [esp + 0x1c]
or esi, edx
je 0x1017464b
mov edi, eax
mov eax, ebx
mov ebx, dword [esp + 0x50]
mov edx, dword [ebx + 4]
mov esi, dword [esp + 0x40]
mov word [edx + esi*2], cx
mov edx, dword [ebx + 0x20]
mov ebx, eax
mov eax, edi
mov dword [edx + esi*4], 0x101afa5f
inc esi
inc ecx
cmp eax, ecx
jne 0x101745fa
jmp 0x1017465e
mov esi, dword [esp + 0x40]
jmp 0x10174644
mov esi, dword [esp + 0x20]
jmp 0x101744a4
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x3c], 0
js 0x10174a0b
mov edi, dword [esp + 0x50]
mov eax, dword [edi + 4]
mov word [eax + esi*2], 0xffff
mov eax, dword [edi + 0x20]
mov dword [esp + 0x40], esi
mov dword [eax + esi*4], 0x101afa5f
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x28]
lea ecx, [eax + 1]
mov dword [esi + 0x28], ecx
mov ecx, dword [esp + 0x30]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0xc]
mov edx, 0x74
push 0
push dword [esp + 0x80]
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, esi
mov edx, edi
mov edi, dword [esp + 0x30]
call fcn.1016f710
mov eax, dword [esi]
test byte [eax + 0x52], 8
jne 0x101746ee
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esi + 0x2c], eax
mov dword [edi + 0x34], eax
mov ecx, dword [esp + 0xc]
mov edx, 0x4d
push 0
push eax
push 0x2710
call fcn.1002fb80
add esp, 0xc
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
mov edx, dword [eax + 4]
movzx eax, byte [edi + 0x3c]
lea esi, [eax + eax*8]
test byte [edx + esi*8 + 0x30], 0x20
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], esi
jne 0x10174727
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, 0x24
push eax
mov dword [esp + 0x40], 0
push eax
push dword [edi + 4]
jmp 0x10174776
mov eax, dword [edx + esi*8 + 0x24]
mov dword [esp + 0x10], eax
xor edi, edi
mov ebx, dword [esp + 0xc]
mov ecx, ebx
mov edx, 0x47
push edi
push edi
push edi
call fcn.1002fb80
add esp, 0xc
mov dword [esp + 0x3c], eax
mov ecx, ebx
mov edx, 0xb
mov eax, dword [esp + 0x1c]
push dword [eax + esi*8 + 0x20]
push edi
mov esi, dword [esp + 0x18]
push esi
call fcn.1002fb80
add esp, 0xc
mov ecx, ebx
mov ebx, dword [esp + 0x14]
mov edx, 0xc
push edi
push edi
push esi
call fcn.1002fb80
add esp, 0xc
mov dword [esp + 0x28], eax
test ebx, ebx
mov ecx, dword [esp + 0x18]
je 0x10174a47
mov esi, dword [ecx + 0x38]
lea eax, [esi - 1]
mov dword [ecx + 0x38], eax
push 0x10
push eax
push ebx
push ecx
call fcn.10040dd0
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov eax, dword [esp + 0x34]
or byte [eax + 0x2e], 2
neg esi
mov dword [esp + 0x24], esi
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x50]
mov al, byte [ecx + 0x13]
test al, al
je 0x10174a53
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov esi, dword [ecx + eax*4 + 0xa0]
mov eax, dword [edi + 4]
sub esp, 0x18
pxor xmm0, xmm0
movdqu xmmword [esp + 8], xmm0
mov dword [esp + 0x28], esi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.100583e0
add esp, 0x18
mov esi, eax
mov eax, dword [edi + 0x34]
test eax, eax
mov ebx, dword [esp + 0xc]
je 0x1017483a
mov ecx, dword [esp + 0x34]
movzx edi, word [ecx + 0x18]
mov ecx, ebx
mov edx, 0xb4
push esi
push 0
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
jne 0x1017483a
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edi
mov ecx, ebx
mov edx, 0x8a
push 0
push dword [esp + 0x14]
mov eax, dword [esp + 0x38]
push dword [eax + 8]
call fcn.1002fb80
add esp, 0xc
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x10174872
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x10
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
lea edi, [eax + ecx*8]
add edi, 0x30
cmp dword [esp + 0x14], 0
je 0x101748a3
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10174a5f
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx*4], eax
test byte [edi], 0x20
jne 0x101748ee
mov eax, dword [esp + 0x28]
inc eax
mov ecx, dword [esp + 0xc]
mov edx, 0x27
push 0
push eax
mov eax, dword [esp + 0x38]
push dword [eax + 4]
call fcn.1002fb80
mov esi, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x1017495a
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 3
mov esi, dword [esp + 0xc]
jmp 0x1017495a
mov dword [esp + 0x24], edi
add esi, dword [esp + 0x40]
mov ecx, dword [ebx]
mov eax, 0x101f2320
cmp byte [ecx + 0x57], 0
jne 0x10174910
mov eax, dword [esp + 0x3c]
lea eax, [eax + eax*4]
shl eax, 2
add eax, dword [ebx + 0x68]
mov dword [eax + 8], esi
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov edx, ebx
mov eax, dword [esp + 0x30]
push dword [eax + 8]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
push dword [esi + edi*8 + 0x28]
push dword [eax + 4]
call fcn.101764b0
add esp, 0xc
xor eax, eax
mov esi, dword [esp + 0xc]
mov ecx, esi
mov edx, 9
push eax
push ebx
push eax
call fcn.1002fb80
add esp, 0xc
mov eax, dword [esp + 0x24]
and byte [eax], 0xdf
mov edx, dword [esi]
mov eax, dword [esi + 0x6c]
mov ecx, 0x101f2320
cmp byte [edx + 0x57], 0
mov esi, dword [esp + 0x10]
jne 0x1017497f
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 0xc]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
test esi, esi
mov ebx, dword [esp + 0x14]
je 0x101749a9
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x101749a9
mov ecx, eax
inc cl
mov edx, dword [esp + 0x18]
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0xa0], esi
mov esi, dword [esp + 0xc]
mov edx, dword [esi]
mov eax, dword [esi + 0x6c]
mov ecx, 0x101f2320
cmp byte [edx + 0x57], 0
jne 0x101749ca
mov ecx, dword [esp + 0x78]
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [esi + 0x68]
mov dword [ecx + 8], eax
test ebx, ebx
mov eax, dword [esp + 0x18]
je 0x101749f5
mov esi, dword [eax]
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.10156ff0
mov ecx, esi
mov edx, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.1014c9e0
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.10156ff0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x38]
cmp word [eax + 0x22], 0x40
jl 0x1017466c
mov eax, 0x3f
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 4]
mov word [ecx + esi*2], ax
mov ecx, dword [edi + 0x20]
mov dword [ecx + esi*4], 0x101afa5f
inc esi
inc eax
movsx ecx, word [edx + 0x22]
cmp eax, ecx
jl 0x10174a27
jmp 0x10174670
xor eax, eax
dec eax
mov dword [esp + 0x24], eax
jmp 0x101747b6
mov esi, dword [ecx + 0x2c]
inc esi
mov dword [ecx + 0x2c], esi
jmp 0x101747d8
mov edx, ebx
push dword [esp + 0x24]
call fcn.10032440
add esp, 4
jmp 0x101748a3
mov ebx, dword [esp + 0x14]
jmp 0x101749cd