Function at 0x401570
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
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x28
mov esi, esp
cmp dword [0x42c248], 0xa
jl 0x4015a2
mov eax, dword [0x42c24c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4015a2
nop word [eax + eax]
jmp 0x4015a0
cvtsi2sd xmm0, dword [ebp + 8]
movsd qword [esi + 0x18], xmm0
nop dword [eax]
push eax
mov dword [esi], esp
sub esp, 0x40
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x14], eax
mov dword [eax], 0x40
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
jmp 0x4015e3
mov edx, dword [esi + 8]
mov edx, dword [edx]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
test ecx, ecx
je 0x4015e3
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x4015e3
mov dword [esi + 8], edx
mov dword [esi + 4], ecx
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0x10], ecx
lea ecx, [eax + 1]
mov dword [esi + 0xc], ecx
jmp 0x401624
test edi, edi
je 0x4015e0
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + edi*4 - 4]
dec edi
movzx ecx, byte [eax + edx]
test cl, cl
je 0x401620
add edx, dword [esi + 0xc]
mov ebx, 0x6ed56cb6
nop dword [eax]
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x401640
cmp ebx, 0x380e4ac1
jne 0x401620
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov edx, dword [eax + edx + 0x24]
add edx, eax
movzx edx, word [edx + edi*2]
add eax, dword [ecx + edx*4]
mov edi, dword [esi + 0x14]
push edi
call eax
movupd xmm0, xmmword [edi + 8]
unpcklps xmm0, xmmword [0x40d4f0]
subpd xmm0, xmmword [0x40d500]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
mulsd xmm1, qword [0x40d510]
movsd xmm0, qword [esi + 0x18]
ucomisd xmm0, xmm1
mov edi, dword [esi]
seta byte [edi]
cmp dword [0x42c248], 0xa
jl 0x40187d
mov eax, dword [0x42c24c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x40187d
nop
push eax
sub esp, 0x3c
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi], eax
mov dword [eax], 0x40
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
jmp 0x401703
mov edx, dword [esi + 8]
mov edx, dword [edx]
mov ecx, dword [edx + 0x18]
mov eax, dword [ecx + 0x3c]
mov eax, dword [ecx + eax + 0x78]
test eax, eax
je 0x401703
mov ebx, dword [ecx + eax + 0x18]
test ebx, ebx
je 0x401703
mov dword [esi + 8], edx
mov dword [esi + 4], eax
mov eax, dword [ecx + eax + 0x20]
add eax, ecx
mov dword [esi + 0x10], eax
lea eax, [ecx + 1]
mov dword [esi + 0xc], eax
jmp 0x401744
test ebx, ebx
je 0x401700
mov eax, dword [esi + 0x10]
mov edi, dword [eax + ebx*4 - 4]
dec ebx
movzx edx, byte [ecx + edi]
test dl, dl
je 0x401740
add edi, dword [esi + 0xc]
mov eax, 0x6ed56cb6
nop dword [eax]
movsx edx, dl
xor edx, eax
imul eax, edx, 0x1000193
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x401760
cmp eax, 0x380e4ac1
jne 0x401740
mov edx, dword [esi + 4]
mov eax, dword [ecx + edx + 0x1c]
add eax, ecx
mov edx, dword [ecx + edx + 0x24]
add edx, ecx
movzx edx, word [edx + ebx*2]
add ecx, dword [eax + edx*4]
push dword [esi]
call ecx
sub esp, 0x40
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi], eax
mov dword [eax], 0x40
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
jmp 0x4017c3
mov edx, dword [esi + 8]
mov edx, dword [edx]
mov ecx, dword [edx + 0x18]
mov eax, dword [ecx + 0x3c]
mov eax, dword [ecx + eax + 0x78]
test eax, eax
je 0x4017c3
mov ebx, dword [ecx + eax + 0x18]
test ebx, ebx
je 0x4017c3
mov dword [esi + 8], edx
mov dword [esi + 4], eax
mov eax, dword [ecx + eax + 0x20]
add eax, ecx
mov dword [esi + 0x10], eax
lea eax, [ecx + 1]
mov dword [esi + 0xc], eax
jmp 0x401804
test ebx, ebx
je 0x4017c0
mov eax, dword [esi + 0x10]
mov edi, dword [eax + ebx*4 - 4]
dec ebx
movzx edx, byte [ecx + edi]
test dl, dl
je 0x401800
add edi, dword [esi + 0xc]
mov eax, 0x6ed56cb6
nop dword [eax]
movsx edx, dl
xor edx, eax
imul eax, edx, 0x1000193
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x401820
cmp eax, 0x380e4ac1
jne 0x401800
mov edx, dword [esi + 4]
mov eax, dword [ecx + edx + 0x1c]
add eax, ecx
mov edx, dword [ecx + edx + 0x24]
add edx, ecx
movzx edx, word [edx + ebx*2]
add ecx, dword [eax + edx*4]
push dword [esi]
call ecx
mov ecx, dword [0x42c24c]
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
cmp dword [0x42c248], 0xa
jl 0x4015b0
test eax, eax
jne 0x4016d0
jmp 0x4015b0
mov edx, 0x29
mov ecx, 0x4823
nop word [eax + eax]
cmp edx, 0x4822
jle 0x4018b0
cmp edx, 0x4823
je 0x4018c6
cmp edx, 0x6784
jne 0x401890
jmp 0x4018df
cmp edx, 0x29
je 0x4018d2
cmp edx, 0x18be
jne 0x401890
mov edx, 0x6784
xor eax, eax
jmp 0x401890
mov edx, 0x6784
mov eax, 1
jmp 0x401890
cmp byte [edi], 0
mov edx, 0x18be
cmovne edx, ecx
jmp 0x401890
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret