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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
mov esi, dword [0x4e6d68]
mov eax, ecx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
push edi
test esi, esi
jne 0x438aa9
mov eax, dword fs:[0x30]
xor ebx, ebx
mov edx, 0xf895bb6e
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], edx
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x2c]
mov esi, dword [eax + 0x30]
add ecx, 0xfffffff8
test ebx, ebx
je 0x43894a
movzx ecx, cx
mov edx, 0x21dcf4c4
shr ecx, 1
lea edi, [esi + ecx*2]
jmp 0x43893e
movsx ecx, byte [esi]
xor ecx, edx
imul edx, ecx, 0x1000193
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x1000193
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x1000193
add esi, 2
cmp esi, edi
jne 0x438916
cmp edx, ebx
jne 0x4389e4
mov edi, dword [eax + 0x18]
mov ecx, dword [edi + 0x3c]
mov ebx, dword [ecx + edi + 0x78]
mov ecx, dword [ecx + edi + 0x7c]
add ebx, edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], ebx
cmp ebx, edi
je 0x4389e1
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x4389e1
mov ecx, dword [ebx + 0x20]
lea ecx, [ecx + esi*4]
add ecx, edi
sub ecx, 4
mov dword [ebp - 8], 0x21dcf4c4
mov dword [ebp - 0x1c], ecx
dec esi
mov ecx, dword [ecx]
add ecx, edi
mov dl, byte [ecx]
inc ecx
mov dword [ebp - 0x14], ecx
mov cl, dl
mov byte [ebp - 1], dl
mov edx, dword [ebp - 0x10]
test cl, cl
je 0x4389d5
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
movsx ecx, cl
xor ecx, ebx
imul edx, ecx, 0x1000193
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x1000193
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul ebx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x43899d
mov edi, dword [eax + 0x18]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 8], ebx
mov ebx, dword [ebp - 0x18]
cmp dword [ebp - 8], edx
je 0x4389eb
mov ecx, dword [ebp - 0x1c]
test esi, esi
jne 0x438973
mov ebx, dword [ebp - 0xc]
mov eax, dword [eax]
jmp 0x4388fa
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edi]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov esi, dword [eax + edi]
add esi, edi
cmp esi, ebx
jbe 0x438aa0
mov eax, dword [ebp - 0x20]
add eax, ebx
cmp esi, eax
jae 0x438aa0
mov eax, 0x21dcf4c4
mov ebx, eax
mov dword [ebp - 0xc], eax
mov edx, eax
mov dword [ebp - 0x10], eax
mov al, byte [esi]
cmp al, 0x2e
je 0x438a59
movsx eax, al
xor eax, ebx
imul ecx, eax, 0x1000193
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x1000193
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ebx, eax, 0x1000193
inc esi
mov al, byte [esi]
cmp al, 0x2e
jne 0x438a2a
mov dword [ebp - 0xc], ebx
inc esi
mov al, byte [esi]
test al, al
je 0x438a8f
movsx eax, al
xor eax, edx
imul ecx, eax, 0x1000193
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x1000193
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul edx, eax, 0x1000193
inc esi
mov al, byte [esi]
test al, al
jne 0x438a60
mov dword [ebp - 0x10], edx
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x4389e4
mov eax, dword [ebp - 0x24]
mov dword [0x4e6d68], esi
push eax
call esi
test eax, eax
jne 0x438ba5
call fcn.00438c98
mov dword [ebp - 0x14], eax
call fcn.00438baa
mov ecx, dword fs:[0x30]
mov dword [ebp - 0x18], eax
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0xc]
mov esi, dword [ecx + 0x18]
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + esi + 0x78]
add eax, esi
mov dword [ebp - 0x1c], eax
cmp eax, esi
je 0x438b52
mov edi, dword [eax + 0x18]
test edi, edi
je 0x438b52
mov eax, dword [eax + 0x20]
lea eax, [eax + edi*4]
add eax, esi
sub eax, 4
mov edx, 0xd9ae0464
dec edi
mov dword [ebp - 8], edx
mov dword [ebp - 0x20], eax
mov ebx, dword [eax]
add ebx, esi
mov dl, byte [ebx]
inc ebx
test dl, dl
je 0x438b4e
mov esi, dword [ebp - 8]
movsx eax, dl
xor eax, esi
imul edx, eax, 0x1000193
mov eax, edx
shr eax, 0x10
xor eax, edx
imul edx, eax, 0x1000193
mov eax, edx
shr eax, 0x10
xor eax, edx
mov dl, byte [ebx]
imul esi, eax, 0x1000193
inc ebx
test dl, dl
jne 0x438b10
mov dword [ebp - 8], esi
cmp dword [ebp - 8], 0xc4d4841b
mov esi, dword [ecx + 0x18]
je 0x438b59
mov eax, dword [ebp - 0x20]
test edi, edi
jne 0x438af3
mov ecx, dword [ecx]
jmp 0x438ad1
mov edx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov eax, dword [edx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + esi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov edi, dword [eax + esi]
add edi, esi
cmp byte [ebx + 0x2e], 0
je 0x438b96
push 0x9731cfdf
push 0x8d8de3e7
push 0
push 0x17
mov ecx, ebx
call fcn.00407f3c
add esp, 0x10
mov byte [ebx + 0x2e], 0
push dword [ebp - 0x28]
push dword [ebp - 0x14]
push ebx
push dword [ebp - 0x24]
call edi
add esp, 0x10
pop edi
pop esi
pop ebx
leave
ret