Function at 0x418528
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, 0x2cc
mov eax, dword [0x4e2040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x4e5c80]
push ebx
mov ebx, edx
mov dword [ebp - 0x294], ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x298], edi
test eax, eax
jne 0x418640
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x288], ecx
cmp ecx, esi
je 0x418613
mov ebx, dword [ecx + 0x18]
test ebx, ebx
je 0x418613
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + ebx*4]
add ecx, esi
sub ecx, 4
mov edx, 0x33f89bfa
mov dword [ebp - 0x284], ecx
dec ebx
mov dword [ebp - 0x280], edx
mov ecx, dword [ecx]
add ecx, esi
mov dl, byte [ecx]
inc ecx
mov dword [ebp - 0x28c], ecx
test dl, dl
je 0x418609
mov edi, dword [ebp - 0x280]
mov esi, ecx
movsx ecx, dl
xor ecx, edi
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
mov dl, byte [esi]
imul edi, ecx, 0x1000193
inc esi
test dl, dl
jne 0x4185c2
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x280], edi
cmp dword [ebp - 0x280], 0xfc521807
mov edi, dword [ebp - 0x298]
je 0x41861a
mov ecx, dword [ebp - 0x284]
test ebx, ebx
jne 0x418594
mov eax, dword [eax]
jmp 0x418567
mov edx, dword [ebp - 0x288]
mov eax, dword [edx + 0x24]
lea eax, [eax + ebx*2]
mov ebx, dword [ebp - 0x294]
movzx ecx, word [eax + esi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + esi]
add eax, esi
mov dword [0x4e5c80], eax
cmp dword [ebx + 0x14], 7
mov ecx, ebx
jbe 0x41864a
mov ecx, dword [ebx]
push ecx
call eax
xor esi, esi
cmp eax, 0xffffffff
jne 0x418661
mov dword [edi], esi
mov dword [edi + 4], esi
mov dword [edi + 8], esi
jmp 0x418a9e
push 0x250
lea eax, [ebp - 0x278]
push esi
push eax
call fcn.004b21c0
add esp, 0xc
lea ecx, [ebp - 0x28]
mov edx, ebx
push 0x4d15c8
call fcn.0041a24d
pop ecx
mov ecx, dword [0x4e5ca4]
test ecx, ecx
jne 0x41878b
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x18]
mov ecx, dword [ebx + 0x3c]
mov ecx, dword [ecx + ebx + 0x78]
add ecx, ebx
mov dword [ebp - 0x290], ecx
cmp ecx, ebx
je 0x41875d
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x41875d
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, ebx
sub ecx, 4
mov dword [ebp - 0x284], 0x8b265d6d
mov dword [ebp - 0x28c], ecx
dec edx
mov dword [ebp - 0x280], edx
mov ecx, dword [ecx]
add ecx, ebx
mov dl, byte [ecx]
inc ecx
mov dword [ebp - 0x288], ecx
mov cl, dl
mov byte [ebp - 0x279], dl
mov edx, dword [ebp - 0x280]
test cl, cl
je 0x41874f
mov ebx, dword [ebp - 0x288]
mov edx, dword [ebp - 0x284]
movsx ecx, cl
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
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x418712
mov ebx, dword [eax + 0x18]
cmp edx, 0x721c483d
je 0x418764
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x28c]
test edx, edx
jne 0x4186cd
mov eax, dword [eax]
jmp 0x4186a0
mov edx, dword [ebp - 0x290]
mov ecx, dword [ebp - 0x280]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + ebx]
add ecx, ebx
mov dword [0x4e5ca4], ecx
cmp dword [ebp - 0x14], 7
lea edx, [ebp - 0x278]
lea eax, [ebp - 0x28]
cmova eax, dword [ebp - 0x28]
push edx
push eax
call ecx
mov dword [ebp - 0x28c], eax
cmp eax, 0xffffffff
jne 0x4187b8
mov dword [edi], esi
mov dword [edi + 4], esi
mov dword [edi + 8], esi
jmp 0x418a96
mov edi, dword [ebp - 0x294]
push 0x2e
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0x28c]
pop eax
test byte [ebp - 0x278], 0x10
je 0x418850
cmp word [ebp - 0x24c], ax
jne 0x4187f5
cmp word [ebp - 0x24a], ax
je 0x418850
cmp word [ebp - 0x24a], 0
je 0x418850
lea eax, [ebp - 0x24c]
mov edx, edi
push eax
push 0x4d15c4
lea ecx, [ebp - 0x2c8]
call fcn.0041a24d
pop ecx
mov edx, eax
lea ecx, [ebp - 0x2b0]
call fcn.0040c732
pop ecx
mov ecx, dword [ebp - 0xc]
push eax
cmp ecx, dword [ebp - 8]
je 0x418831
call fcn.0040c17b
add dword [ebp - 0xc], 0x18
jmp 0x41883a
push ecx
lea ecx, [ebp - 0x10]
call fcn.0041a2cc
lea ecx, [ebp - 0x2b0]
call fcn.0040c4e8
lea ecx, [ebp - 0x2c8]
call fcn.0040c4e8
mov eax, dword [0x4e5c8c]
test eax, eax
jne 0x418953
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x18]
mov ecx, dword [ebx + 0x3c]
mov ecx, dword [ecx + ebx + 0x78]
add ecx, ebx
mov dword [ebp - 0x294], ecx
cmp ecx, ebx
je 0x418926
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x418926
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, ebx
sub ecx, 4
mov dword [ebp - 0x288], 0x7ab6a7f8
mov dword [ebp - 0x284], ecx
dec edx
mov dword [ebp - 0x280], edx
mov ecx, dword [ecx]
add ecx, ebx
mov dl, byte [ecx]
inc ecx
mov dword [ebp - 0x290], ecx
mov cl, dl
mov byte [ebp - 0x279], dl
mov edx, dword [ebp - 0x280]
test cl, cl
je 0x418918
mov ebx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x288]
movsx ecx, cl
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
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x4188db
mov ebx, dword [eax + 0x18]
cmp edx, 0x9340ebf4
je 0x41892d
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
test edx, edx
jne 0x418896
mov eax, dword [eax]
jmp 0x418869
mov edx, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x280]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
mov dword [0x4e5c8c], eax
lea ecx, [ebp - 0x278]
push ecx
push esi
call eax
push 0x2e
test eax, eax
pop eax
jne 0x4187d0
mov eax, dword [0x4e5c94]
mov edi, dword [ebp - 0x298]
push 0
pop esi
test eax, eax
jne 0x418a74
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x18]
mov ecx, dword [ebx + 0x3c]
mov ecx, dword [ecx + ebx + 0x78]
add ecx, ebx
mov dword [ebp - 0x298], ecx
cmp ecx, ebx
je 0x418a47
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x418a47
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, ebx
sub ecx, 4
mov dword [ebp - 0x288], 0x875268a6
mov dword [ebp - 0x284], ecx
dec edx
mov dword [ebp - 0x280], edx
mov ecx, dword [ecx]
add ecx, ebx
mov dl, byte [ecx]
inc ecx
mov dword [ebp - 0x290], ecx
mov cl, dl
mov byte [ebp - 0x279], dl
mov edx, dword [ebp - 0x280]
test cl, cl
je 0x418a39
mov ebx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x288]
movsx ecx, cl
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
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x4189fc
mov ebx, dword [eax + 0x18]
cmp edx, 0x15058e58
je 0x418a4e
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
test edx, edx
jne 0x4189b7
mov eax, dword [eax]
jmp 0x41898a
mov edx, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x280]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
mov dword [0x4e5c94], eax
push dword [ebp - 0x28c]
call eax
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], esi
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
lea ecx, [ebp - 0x28]
call fcn.0040c4e8
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004b0ce6
leave
ret