Function at 0x1016c710
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10275bc9
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1f0
mov eax, dword [0x103230ac]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1fc], edx
mov eax, ecx
mov dword [ebp - 0x1f0], eax
lea ecx, [eax + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
imul eax, eax, 0xef00
lea eax, [eax + 0x10842e00]
mov dword [ebp - 0x1f4], eax
mov eax, dword [0x10c0dd10]
add eax, 0x72c821ae
xor eax, 0x43f50f5d
cmp dword [eax + 0x13c], 0
je 0x1016d17f
mov ecx, dword [eax + 0x134]
mov dword [ebp - 0x1e4], ecx
test ecx, ecx
je 0x1016d17f
mov eax, dword [0x103c22ec]
test al, 1
jne 0x1016c947
or eax, 1
mov dword [0x103c22ec], eax
mov dword [ebp - 4], 0
mov eax, dword [0x103bf630]
mov dword [ebp - 0x1d8], eax
cmp eax, dword [0x103bf634]
je 0x1016c833
nop word [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x1e0], ecx
test ecx, ecx
je 0x1016c822
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016c7f6
xor edx, edx
test ecx, ecx
je 0x1016c822
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016c803
cmp edi, 0x4e9f1122
je 0x1016c84c
mov eax, dword [ebp - 0x1d8]
add eax, 4
mov dword [ebp - 0x1d8], eax
cmp eax, dword [0x103bf634]
jne 0x1016c7e0
mov ecx, dword [ebp - 0x1e4]
xor eax, eax
mov dword [0x103c22f0], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016c94c
mov eax, dword [ebp - 0x1e0]
xor edi, edi
mov dword [ebp - 0x1d8], edi
mov dword [ebp - 0x1f8], edi
cmp dword [eax + 4], edi
jle 0x1016c90e
xor ecx, ecx
mov dword [ebp - 0x1dc], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x1ec], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1016c8ae
cmp dword [ecx + 4], 0
jle 0x1016c8ae
push 0
mov edx, 0x1c93bcf0
call fcn.1013c990
add esp, 4
test eax, eax
je 0x1016c8a8
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1d8], edi
mov eax, dword [ebp - 0x1e0]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016c8b7
xor edx, edx
test ecx, ecx
je 0x1016c8e3
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016c8c4
cmp edi, 0x1c93bcf0
je 0x1016c924
mov eax, dword [ebp - 0x1e0]
mov edx, dword [ebp - 0x1f8]
mov ecx, dword [ebp - 0x1dc]
inc edx
mov edi, dword [ebp - 0x1d8]
add ecx, 0x3c
mov dword [ebp - 0x1f8], edx
mov dword [ebp - 0x1dc], ecx
cmp edx, dword [eax + 4]
jl 0x1016c871
mov ecx, dword [ebp - 0x1e4]
mov eax, edi
mov dword [0x103c22f0], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016c94c
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1d8]
mov dword [0x103c22f0], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016c94c
mov eax, dword [0x103c22f0]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x1d4], eax
mov eax, dword [0x103c3c0c]
test al, 1
jne 0x1016caf6
or eax, 1
mov dword [0x103c3c0c], eax
mov dword [ebp - 4], 1
mov eax, dword [0x103bf630]
mov dword [ebp - 0x1dc], eax
cmp eax, dword [0x103bf634]
je 0x1016c9e0
mov ecx, dword [eax]
mov dword [ebp - 0x1d8], ecx
test ecx, ecx
je 0x1016c9cf
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016c9a0
xor edx, edx
test ecx, ecx
je 0x1016c9cf
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016c9b0
cmp edi, 0x72e242a1
je 0x1016c9f9
mov eax, dword [ebp - 0x1dc]
add eax, 4
mov dword [ebp - 0x1dc], eax
cmp eax, dword [0x103bf634]
jne 0x1016c984
mov ecx, dword [ebp - 0x1e4]
xor eax, eax
mov dword [0x103c3bcc], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016cafb
mov eax, dword [ebp - 0x1d8]
xor edi, edi
mov dword [ebp - 0x1e0], edi
mov dword [ebp - 0x1dc], edi
cmp dword [eax + 4], edi
jle 0x1016cabd
xor ecx, ecx
mov dword [ebp - 0x1f8], ecx
nop
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x1ec], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1016ca5d
cmp dword [ecx + 4], 0
jle 0x1016ca5d
push 0
mov edx, 0x84cdad2
call fcn.1013c990
add esp, 4
test eax, eax
je 0x1016ca57
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1e0], edi
mov eax, dword [ebp - 0x1d8]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016ca66
xor edx, edx
test ecx, ecx
je 0x1016ca92
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016ca73
cmp edi, 0x84cdad2
je 0x1016cad3
mov eax, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1f8]
inc edx
mov edi, dword [ebp - 0x1e0]
add ecx, 0x3c
mov dword [ebp - 0x1dc], edx
mov dword [ebp - 0x1f8], ecx
cmp edx, dword [eax + 4]
jl 0x1016ca20
mov ecx, dword [ebp - 0x1e4]
mov eax, edi
mov dword [0x103c3bcc], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016cafb
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1e0]
mov dword [0x103c3bcc], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016cafb
mov eax, dword [0x103c3bcc]
cmp dword [ebp - 0x1d4], 2
je 0x1016cb0e
cmp dword [ecx + eax], 0
jle 0x1016cb0e
mov al, 1
jmp 0x1016cb10
xor al, al
test al, al
je 0x1016d17f
push 0x158
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.102372c0
mov eax, dword [0x10c0dd10]
add esp, 0xc
mov edi, dword [ebp - 0x1f0]
add eax, 0x72c821ae
xor eax, 0x43f50f5d
lea ecx, [edi + 8]
mov esi, dword [eax + 0xac]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
xor edx, edx
lea ecx, [ebp - 0x1d0]
test esi, esi
push ecx
cmovne edx, esi
mov ecx, esi
push eax
mov edx, dword [edx]
mov edx, dword [edx + 0x20]
call edx
cmp byte [ebp - 0x94], 0
jne 0x1016d17f
cmp byte [0x103a6a15], 0
je 0x1016d17f
cmp dword [edi + 0x9960], 0
je 0x1016d17f
mov eax, dword [0x10c0dd20]
test eax, eax
je 0x1016cb9e
add eax, 2
mov eax, dword [eax]
cmp dword [eax + edi + 4], 0
je 0x1016d191
mov edx, dword [ebp - 0x1fc]
mov edi, dword [ebp - 0x1f4]
cmp dword [edx + 0x18], 2
jge 0x1016cbd9
mov eax, dword [edi + 8]
cmp eax, 3
jge 0x1016cbce
inc eax
mov dword [edi + 8], eax
mov eax, dword [edi + 0xc]
jmp 0x1016cbee
mov dword [edi + 0xc], 0
xor eax, eax
jmp 0x1016cbee
mov eax, dword [edi + 0xc]
cmp eax, 3
jge 0x1016cbe7
inc eax
mov dword [edi + 0xc], eax
jmp 0x1016cbee
mov dword [edi + 8], 0
cmp dword [edi + 8], eax
jle 0x1016cc45
lea eax, [ebp - 0x2c]
mov byte [edi], 0
push eax
mov ecx, 0x103bbf50
call fcn.10052ee0
add edi, 0x14
lea eax, [ebp - 0x2c]
cmp edi, eax
je 0x1016cc38
mov ecx, edi
call fcn.1002aa60
movups xmm0, xmmword [ebp - 0x2c]
mov byte [ebp - 0x2c], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x1c]
movq qword [edi + 0x10], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
lea ecx, [ebp - 0x2c]
call fcn.1002aa60
jmp 0x1016d191
mov ecx, dword [edi + 0x334]
and ecx, reloc.WS2_32.dll_getsockopt
jns 0x1016cc58
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, dword [edx + 0xa4]
xorps xmm3, xmm3
mov dword [edi + ecx*4 + 0x314], eax
xor ecx, ecx
mov eax, dword [edi + 0x334]
cmp eax, 9
lea edx, [eax + 1]
cmovl ecx, edx
mov edx, 7
mov dword [edi + 0x334], ecx
lea ecx, [edi + 0x318]
movss xmm2, dword [0x1030c030]
movss xmm1, dword [0x1030b9b4]
nop word [eax + eax]
movss xmm0, dword [ecx - 4]
subss xmm0, dword [ecx]
andps xmm0, xmm2
comiss xmm3, xmm0
jb 0x1016ccd1
mov eax, dword [edi + 0x33c]
cmp eax, 3
jge 0x1016ccc5
inc eax
mov dword [edi + 0x33c], eax
jmp 0x1016ccf4
mov dword [edi + 0x338], 0
jmp 0x1016ccf4
comiss xmm0, xmm1
jb 0x1016ccf4
mov eax, dword [edi + 0x338]
cmp eax, 3
jge 0x1016ccea
inc eax
mov dword [edi + 0x338], eax
jmp 0x1016ccf4
mov dword [edi + 0x33c], 0
add ecx, 4
sub edx, 1
jne 0x1016cca0
mov esi, dword [edi + 0x33c]
cmp dword [edi + 0x338], esi
mov esi, dword [0x1040e298]
mov ecx, dword [ebp - 0x1f0]
setg al
mov byte [edi + 0x304], al
jle 0x1016cf35
mov eax, dword [ecx + 8]
add ecx, 8
add esi, 0xed3cd0a4
xor esi, 0x80d02dea
mov eax, dword [eax + 0x28]
call eax
cmp dword [esi + eax*4 + 0x63d6c], 0
jle 0x1016cd4b
xor eax, eax
jmp 0x1016cee0
movss xmm1, dword [edi + 0x330]
movss xmm4, dword [0x1030bc60]
comiss xmm4, xmm1
movss xmm0, dword [0x1030bb34]
jbe 0x1016cd79
nop dword [eax + eax]
addss xmm1, xmm0
comiss xmm4, xmm1
ja 0x1016cd70
movss xmm3, dword [0x1030bae8]
comiss xmm1, xmm3
jbe 0x1016cd8f
subss xmm1, xmm0
comiss xmm1, xmm3
ja 0x1016cd86
movss xmm2, dword [edi + 0x32c]
comiss xmm4, xmm2
jbe 0x1016cda9
nop dword [eax]
addss xmm2, xmm0
comiss xmm4, xmm2
ja 0x1016cda0
comiss xmm2, xmm3
jbe 0x1016cdb9
nop
subss xmm2, xmm0
comiss xmm2, xmm3
ja 0x1016cdb0
mulss xmm1, dword [0x1030b738]
mulss xmm2, dword [0x1030b738]
movaps xmm0, xmm1
movss dword [ebp - 0x1ec], xmm1
movss dword [ebp - 0x1e4], xmm2
call fcn.1002eba0
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [ebp - 0x1e4]
call fcn.1002eba0
movss xmm1, dword [ebp - 0x1d4]
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x1ec]
movss dword [ebp - 0x1dc], xmm1
call fcn.1002eb80
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [ebp - 0x1e4]
call fcn.1002eb80
movss xmm1, dword [ebp - 0x1d4]
fld dword [ebp - 0x1dc]
addss xmm1, xmm0
movss xmm4, dword [0x1030bc60]
movss xmm2, dword [0x1030bb34]
movss dword [ebp - 0x1d4], xmm1
fld dword [ebp - 0x1d4]
fpatan
fstp dword [ebp - 0x1d4]
movss xmm1, dword [ebp - 0x1d4]
mulss xmm1, dword [0x1030ba40]
comiss xmm4, xmm1
jbe 0x1016ce89
nop dword [eax]
addss xmm1, xmm2
comiss xmm4, xmm1
ja 0x1016ce80
movss xmm3, dword [0x1030bae8]
comiss xmm1, xmm3
jbe 0x1016ce9f
subss xmm1, xmm2
comiss xmm1, xmm3
ja 0x1016ce96
mov eax, dword [ebp - 0x1fc]
movss xmm0, dword [eax + 0xa4]
subss xmm0, xmm1
comiss xmm4, xmm0
jbe 0x1016cebf
addss xmm0, xmm2
comiss xmm4, xmm0
ja 0x1016ceb6
comiss xmm0, xmm3
jbe 0x1016cecd
subss xmm0, xmm2
comiss xmm0, xmm3
ja 0x1016cec4
xor eax, eax
comiss xmm0, dword [0x1030b6ac]
setbe al
lea eax, [eax*2 - 1]
mov dword [edi + 4], eax
mov ecx, 0x103bbf38
lea eax, [ebp - 0x44]
mov byte [edi], 1
push eax
call fcn.10042ff0
add edi, 0x14
lea eax, [ebp - 0x44]
cmp edi, eax
je 0x1016cf28
mov ecx, edi
call fcn.1002aa60
movups xmm0, xmmword [ebp - 0x44]
mov byte [ebp - 0x44], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x34]
movq qword [edi + 0x10], xmm0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
lea ecx, [ebp - 0x44]
call fcn.1002aa60
jmp 0x1016d191
mov eax, dword [ecx + 8]
add ecx, 8
add esi, 0xed3cd0a4
xor esi, 0x80d02dea
mov eax, dword [eax + 0x28]
call eax
cmp dword [esi + eax*4 + 0x63f74], 1
jne 0x1016cf62
mov dword [edi + 4], 0xffffffff
jmp 0x1016d130
mov ecx, dword [ebp - 0x1f0]
mov esi, dword [0x1040e298]
add ecx, 8
add esi, 0xed3cd0a4
xor esi, 0x80d02dea
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cmp dword [esi + eax*4 + 0x63f74], 0xffffffff
jne 0x1016cf9a
mov dword [edi + 4], 1
jmp 0x1016d130
mov ecx, dword [ebp - 0x1f0]
mov esi, dword [0x1040e298]
add ecx, 8
add esi, 0xed3cd0a4
xor esi, 0x80d02dea
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cmp dword [esi + eax*4 + 0x63f74], 0
jne 0x1016d130
mov eax, dword [0x103fd858]
test eax, eax
jne 0x1016d11c
mov esi, dword [0x103fd854]
test esi, esi
jne 0x1016d0cb
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 0x18]
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0x1dc], edi
mov ecx, dword [edi + 0x3c]
mov ecx, dword [ecx + edi + 0x78]
add ecx, edi
mov dword [ebp - 0x1ec], ecx
cmp ecx, edi
je 0x1016d092
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x1016d092
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, edi
mov esi, dword [ecx - 4]
sub ecx, 4
add esi, edi
mov dword [ebp - 0x1d4], ecx
dec edx
mov edi, 0x55e9fa5e
mov dword [ebp - 0x1e4], edx
mov cl, byte [esi]
inc esi
mov byte [ebp - 0x1e5], cl
test cl, cl
je 0x1016d085
mov al, cl
nop dword [eax + eax]
movsx edx, al
lea esi, [esi + 1]
sub al, 0x41
mov ecx, edx
or ecx, 0x20
cmp al, 0x19
mov al, byte [esi - 1]
cmova ecx, edx
xor ecx, edi
imul edi, ecx, 0x1000193
test al, al
jne 0x1016d050
mov eax, dword [ebp - 0x1fc]
mov edx, dword [ebp - 0x1e4]
cmp edi, 0xd7c44cce
je 0x1016d099
mov ecx, dword [ebp - 0x1d4]
mov edi, dword [eax + 0x18]
test edx, edx
jne 0x1016d022
mov eax, dword [eax]
jmp 0x1016cff1
mov eax, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1dc]
mov edi, dword [ebp - 0x1f4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, esi
add eax, esi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, esi
mov dword [ebp - 0x1d4], eax
mov esi, eax
mov dword [0x103fd854], eax
lea eax, [ebp - 0x74]
mov ecx, 0x103b8eb8
push eax
call fcn.1004a990
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x74]
cmp dword [ebp - 0x60], 0x10
mov eax, dword [0x10c0dd10]
cmovae ecx, dword [ebp - 0x74]
add eax, 0x72c821ae
xor eax, 0x43f50f5d
push ecx
push dword [eax + 0x158]
call esi
lea ecx, [ebp - 0x74]
mov dword [0x103fd858], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1002aa60
mov eax, dword [0x103fd858]
push 1
push 0
call eax
add esp, 8
neg eax
sbb eax, eax
and eax, 0xfffffffe
inc eax
mov dword [edi + 4], eax
lea eax, [ebp - 0x5c]
mov byte [edi], 1
push eax
mov ecx, 0x103bbf68
call fcn.10042ff0
add edi, 0x14
lea eax, [ebp - 0x5c]
cmp edi, eax
je 0x1016d175
mov ecx, edi
call fcn.1002aa60
movups xmm0, xmmword [ebp - 0x5c]
mov byte [ebp - 0x5c], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x4c]
movq qword [edi + 0x10], xmm0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
lea ecx, [ebp - 0x5c]
call fcn.1002aa60
jmp 0x1016d191
mov eax, dword [ebp - 0x1f4]
cmp byte [eax], 0
je 0x1016d191
mov ecx, eax
call fcn.1016c610
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1023505f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret