Function at 0x435c30
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov ecx, dword [esp + 0x40]
movzx eax, word [ecx]
mov dword [esp + 4], 0xf3f23301
mov byte [esp + 8], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 4
ja 0x435c90
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 4]
add edx, 0x2e4c5f9e
xor edx, esi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
add dl, 0xae
mov esi, dword [esp]
mov byte [esp + esi + 4], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 5
jb 0x435c60
xor edx, edx
cmp dword [esp + 4], eax
setne dl
xor eax, eax
jmp dword [edx*4 + 0x440790]
mov edx, dword [ecx + 0x3c]
mov esi, dword [ecx + edx]
mov dword [esp + 4], 0x33348e86
mov word [esp + 8], 0
mov dword [esp], 0
mov edi, dword [esp]
cmp edi, 5
ja 0x435d00
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp]
mov ebx, dword [esp]
movzx ebx, byte [esp + ebx + 4]
add edi, 0xa91dad89
xor edi, ebx
mov dword [esp + 0xc], edi
mov ebx, dword [esp + 0xc]
add bl, 0x41
mov edi, dword [esp]
mov byte [esp + edi + 4], bl
inc dword [esp]
mov edi, dword [esp]
cmp edi, 6
jb 0x435cd0
xor ebx, ebx
cmp esi, dword [esp + 4]
setne bl
jmp dword [ebx*4 + 0x440798]
mov edi, dword [ecx + edx + 0x78]
mov esi, dword [ecx + edx + 0x7c]
test esi, esi
sete dl
test edi, edi
sete dh
or dh, dl
movzx edx, dh
jmp dword [edx*4 + 0x4407a0]
mov dword [esp + 0x14], esi
mov eax, dword [ecx + edi + 0x20]
add eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [ecx + edi + 0x24]
add eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + edi + 0x1c]
add eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edi
mov edx, dword [ecx + edi + 0x18]
xor edi, edi
xor eax, eax
mov dword [esp + 0x24], edx
cmp edi, edx
setb al
mov dword [esp + 0x20], 1
jmp dword [eax*4 + 0x4407a8]
mov eax, dword [esp + 0x28]
mov edx, dword [eax + edi*4]
add edx, ecx
mov eax, 0xffffffff
xor ebx, ebx
mov esi, ebx
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
lea ebx, [ebx + 1]
jne 0x435d90
test eax, eax
je 0x435dc0
cmp eax, 1
jne 0x435dd0
mov ebp, 0xb14a5e2
test al, 1
jne 0x435e51
jmp 0x435e86
mov ebp, 0xb14a5e2
jmp 0x435e86
and esi, 0xfffffffe
mov ebp, 0xb14a5e2
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, byte [edx]
lea ebx, [ecx + ebp]
and ebp, ecx
add ebp, ebp
sub ebx, ebp
mov ecx, ebx
or ecx, 0x1000193
mov ebp, ebx
and ebp, 0x1000193
imul ecx, ebp
xor ebp, 0x1000193
and ebx, 0xfefffe6c
imul ebx, ebp
add ebx, ecx
movsx ecx, byte [edx + 1]
add edx, 2
lea ebp, [ebx + ecx]
and ebx, ecx
add ebx, ebx
sub ebp, ebx
mov ecx, ebp
or ecx, 0x1000193
mov ebx, ebp
and ebx, 0x1000193
imul ecx, ebx
xor ebx, 0x1000193
and ebp, 0xfefffe6c
imul ebp, ebx
add ebp, ecx
add esi, 0xfffffffe
jne 0x435de0
mov ecx, dword [esp + 0x40]
test al, 1
je 0x435e86
movsx ecx, byte [edx]
lea eax, [ecx + ebp]
and ebp, ecx
add ebp, ebp
sub eax, ebp
mov ecx, eax
or ecx, 0x1000193
mov edx, eax
and edx, 0x1000193
imul ecx, edx
xor edx, 0x1000193
and eax, 0xfefffe6c
imul eax, edx
add eax, ecx
mov ecx, dword [esp + 0x40]
mov ebp, eax
xor eax, eax
cmp ebp, dword [esp + 0x44]
setne al
jmp dword [eax*4 + 0x4407b0]
mov ecx, dword [esp + 0x20]
jmp dword [ecx*4 + 0x4407c8]
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret