Function at 0x100cdcb0
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d6cb9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcc
push ebx
mov ebx, ecx
mov ecx, dword [0x100fc310]
push esi
push edi
mov dword [ebp - 0x3c], ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x100fc320]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov esi, eax
test esi, esi
je 0x100ce299
mov ecx, esi
call fcn.10005ff0
cmp eax, 2
je 0x100cdd10
cmp eax, 3
jne 0x100ce299
mov ecx, esi
mov dword [ebx + 8], esi
call fcn.1000eb10
mov ecx, dword [ebx + 8]
mov dword [ebx + 0xc], eax
call fcn.1005e9d0
sub eax, 4
je 0x100cdd2f
sub eax, 1
jne 0x100cdd48
mov ecx, dword [ebx + 8]
call fcn.1005e8e0
mov ecx, dword [0x100fc320]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
call edx
mov dword [ebx + 0x10], eax
mov ecx, dword [0x100fc320]
mov edi, 1
mov dword [ebp - 0x40], edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp eax, edi
jle 0x100ce1ab
mov ecx, dword [0x100fbfac]
mov eax, dword fs:[0x2c]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x38], eax
mov ecx, dword [0x100fc320]
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edi, eax
mov dword [ebp - 0x14], edi
test edi, edi
je case.0x100cdf4d.90
mov ecx, dword [edi + 8]
mov edx, dword [ecx + 0x20]
lea ecx, [edi + 8]
call edx
test al, al
jne case.0x100cdf4d.90
cmp edi, dword [ebx + 8]
jne 0x100cddbd
mov ecx, dword [0x100fc364]
mov eax, dword [ecx]
call dword [eax + 0x7c]
test eax, eax
je case.0x100cdf4d.90
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov eax, dword [eax + 8]
call eax
test eax, eax
je case.0x100cdf4d.90
mov esi, dword [eax + 0x14]
cmp esi, 0x56
jg 0x100cdf38
je case.0x100cdf4d.88
sub esi, 1
jne case.0x100cdf4d.90
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
mov eax, dword [eax + 0x24]
call eax
mov ecx, dword [0x100fc324]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov ecx, eax
mov dword [ebp - 0x10], eax
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100cde10
xor esi, esi
sub ecx, edx
mov edx, 0x811c9dc5
je 0x100cde5f
mov ebx, dword [ebp - 0x10]
movzx eax, byte [ebx + esi]
inc esi
xor eax, edx
imul edx, eax, 0x1000193
cmp esi, ecx
jb 0x100cde25
mov ebx, dword [ebp - 0x3c]
cmp edx, 0x4c849f3c
ja 0x100cdec8
je case.0x100cdf4d.180
cmp edx, 0x1b20e275
je case.0x100cdf4d.180
cmp edx, 0x3cb8abb3
je case.0x100cdf4d.180
mov edx, dword [ebp - 0x10]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100cde65
xor esi, esi
mov eax, 0x811c9dc5
sub edx, ecx
je case.0x100cdf4d.90
mov ebx, dword [ebp - 0x10]
nop
movzx ecx, byte [ebx + esi]
inc esi
xor ecx, eax
imul eax, ecx, 0x1000193
cmp esi, edx
jb 0x100cde80
mov ebx, dword [ebp - 0x3c]
cmp eax, 0x84ea2fe5
ja 0x100cdef7
je 0x100cdf2c
cmp eax, 0x43d6266e
ja 0x100cdee4
je 0x100cdf2c
cmp eax, 0x2eb1674
je 0x100cdf2c
cmp eax, 0x19acc50e
je 0x100cdf2c
cmp eax, 0x3a712436
je 0x100cdf2c
jmp case.0x100cdf4d.90
cmp edx, 0x5978b32e
je case.0x100cdf4d.180
cmp edx, 0x97113ea7
jne 0x100cde5f
mov dword [ebp - 0x10], 7
jmp 0x100ce168
cmp eax, 0x7c4a5426
je 0x100cdf2c
cmp eax, 0x7f11af2d
je 0x100cdf2c
jmp case.0x100cdf4d.90
cmp eax, 0xe1525a25
ja 0x100cdf1a
je 0x100cdf2c
cmp eax, 0x9d08c4c8
je 0x100cdf2c
cmp eax, 0xa7eab73f
je 0x100cdf2c
cmp eax, 0xd614ea2e
je 0x100cdf2c
jmp case.0x100cdf4d.90
cmp eax, 0xe80bc214
je 0x100cdf2c
cmp eax, 0xf8573d98
jne case.0x100cdf4d.90
mov dword [ebp - 0x10], 6
jmp 0x100ce168
lea eax, [esi - 0x58]
cmp eax, 0xbe
ja case.0x100cdf4d.90
movzx eax, byte [eax + 0x100ce2c0]
jmp dword [eax*4 + 0x100ce2ac]
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push eax
mov ecx, ebx
call fcn.100ce4f0
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
je 0x100cdf76
mov dword [ecx], edi
add dword [eax + 4], 4
jmp 0x100cdf85
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, eax
call fcn.100ce5b0
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebx + 8]
call fcn.10005ff0
mov ecx, edi
mov esi, eax
call fcn.10005ff0
sub eax, esi
neg eax
sbb eax, eax
add eax, 2
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x4c]
jmp 0x100ce16b
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 3
push eax
mov ecx, ebx
call fcn.100ce4f0
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
je 0x100cdfcc
mov dword [ecx], edi
add dword [eax + 4], 4
jmp 0x100cdfdb
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, eax
call fcn.100ce5b0
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebx + 8]
call fcn.10005ff0
mov ecx, edi
mov esi, eax
call fcn.10005ff0
sub eax, esi
neg eax
sbb eax, eax
add eax, 5
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x44]
jmp 0x100ce16b
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 8
push eax
mov ecx, ebx
call fcn.100ce4f0
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
je 0x100ce022
mov dword [ecx], edi
add dword [eax + 4], 4
jmp 0x100ce031
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, eax
call fcn.100ce5b0
mov edi, dword [ebp - 0x14]
cmp esi, 0xd8
jne 0x100ce124
cmp dword [edi + 0x8fc], 1
jne case.0x100cdf4d.90
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
mov eax, dword [0x1017dbb4]
cmp eax, dword [ecx + 4]
jle 0x100ce100
push 0x1017dbb4
call fcn.100d136a
add esp, 4
cmp dword [0x1017dbb4], 0xffffffff
jne 0x100ce100
mov dword [ebp - 4], 0
xor ecx, ecx
mov dword [ebp - 0x24], 0x97aa9ead
mov dword [ebp - 0x20], 0xb0a9b7ac
mov dword [ebp - 0x1c], 0x100bbad
mov al, cl
sub al, 0x40
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xa
jb 0x100ce098
mov byte [ebp - 0x19], 0
xor ecx, ecx
mov dword [ebp - 0x34], 0x819d9584
mov dword [ebp - 0x30], 0x80a3b6a5
mov dword [ebp - 0x2c], 0xaaa4acba
mov dword [ebp - 0x28], 0x100a8a8
mov al, cl
sub al, 0x40
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 0xe
jb 0x100ce0c8
lea eax, [ebp - 0x24]
mov byte [ebp - 0x25], 0
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.10007f10
push 0x1017dbb4
mov dword [0x1017dbb0], eax
mov dword [ebp - 4], 0xffffffff
call fcn.100d1320
add esp, 4
mov eax, dword [0x1017dbb0]
mov ecx, dword [0x100fc320]
mov edx, dword [eax + edi]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
cmp eax, dword [ebx + 8]
jne case.0x100cdf4d.90
mov dword [ebp - 0x10], 9
jmp 0x100ce168
cmp esi, 0x100
jne case.0x100cdf4d.90
push ecx
mov ecx, dword [ebx + 8]
call fcn.10020230
test eax, eax
je case.0x100cdf4d.90
mov ecx, eax
call fcn.100149a0
cmp eax, 0x15f
jne case.0x100cdf4d.90
mov ecx, edi
call fcn.100bb5d0
mov ecx, dword [0x100fc320]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
call edx
cmp eax, dword [ebx + 8]
jne case.0x100cdf4d.90
mov dword [ebp - 0x10], 0xa
lea eax, [ebp - 0x10]
push eax
mov ecx, ebx
call fcn.100ce4f0
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
je 0x100ce183
mov dword [ecx], edi
add dword [eax + 4], 4
jmp case.0x100cdf4d.90
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, eax
call fcn.100ce5b0
mov ecx, dword [0x100fc320]
mov edi, dword [ebp - 0x40]
inc edi
mov dword [ebp - 0x40], edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp edi, eax
jl 0x100cdd77
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push eax
mov ecx, ebx
call fcn.100ce400
push eax
lea ecx, [ebp - 0x24]
call fcn.10025ae0
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x20]
mov eax, ecx
mov esi, dword [ebp - 0x24]
sub eax, esi
sar eax, 2
mov dword [0x1017f87c], eax
cmp eax, dword [0x1017f880]
je 0x100ce28c
cmp esi, ecx
je 0x100ce28c
push 0x84
lea eax, [ebp - 0xd8]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esi]
add esp, 0xc
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov ecx, dword [0x100fc310]
lea edi, [ebp - 0xd8]
push edi
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
call edx
test al, al
je 0x100ce264
mov edi, dword [ebp - 0x90]
test edi, edi
je 0x100ce264
mov ecx, dword [0x100fc2e0]
mov byte [ebp - 0x41], 1
mov edx, dword [ebp - 0x44]
and edx, 0xff100001
mov eax, dword [ecx]
or edx, 0x100001
push 4
push edx
push edi
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x44], edx
call eax
mov byte [ebp - 0x15], al
jmp 0x100ce268
mov byte [ebp - 0x15], 0
mov ecx, dword [esi]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov cl, byte [ebp - 0x15]
add esi, 4
mov byte [eax + ebx + 0x14], cl
cmp esi, dword [ebp - 0x20]
jne 0x100ce1f3
mov eax, dword [0x1017f87c]
lea ecx, [ebp - 0x24]
mov dword [0x1017f880], eax
call fcn.10009550
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret