Function at 0x435820
Capabilities:
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, 0x40
mov edi, dword [ebp + 8]
movzx eax, word [edi]
mov dword [esp + 8], 0x8b943b25
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov word [esp + 0x14], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xd
ja 0x43589b
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
mov esi, 0x12
sub esi, ecx
add ecx, 0xebc070ed
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0x85
mov edx, dword [esp]
mov byte [esp + edx + 8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe
jb case.default.0x4358a6
xor ecx, ecx
cmp dword [esp + 8], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x43fbb0]
mov edx, dword [edi + 0x3c]
mov esi, dword [edi + edx]
mov dword [esp + 8], 0xa3a2687c
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xb
ja 0x43591b
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 8]
mov ebx, 0xb9
sub ebx, ecx
add ecx, 0x1e52c946
xor ebx, ecx
and ebx, edi
xor ebx, ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 4]
add cl, 0x16
mov edi, dword [esp]
mov byte [esp + edi + 8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xc
jb 0x4358e0
xor ecx, ecx
cmp esi, dword [esp + 8]
setne cl
mov esi, dword [ebp + 8]
jmp dword [ecx*4 + 0x43fbb8]
mov edi, dword [esi + edx + 0x7c]
mov ebx, dword [esi + edx + 0x78]
test edi, edi
sete cl
test ebx, ebx
sete dl
or dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x43fbc0]
mov dword [esp + 0x20], edi
mov eax, dword [esi + ebx + 0x20]
add eax, esi
mov dword [esp + 0x34], eax
mov eax, dword [esi + ebx + 0x24]
add eax, esi
mov dword [esp + 0x28], eax
mov eax, dword [esi + ebx + 0x1c]
add eax, esi
mov dword [esp + 0x24], eax
mov eax, dword [esi + ebx + 0x18]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x30], eax
cmp edx, eax
setb cl
mov dword [esp + 0x2c], 1
jmp dword [ecx*4 + 0x43fbc8]
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x34]
mov ecx, edx
mov dword [esp + 0x1c], edx
mov edx, dword [eax + edx*4]
add edx, esi
mov ebx, 0xffffffff
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov edi, ecx
cmp byte [edx + ebx + 1], 0
lea ebx, [ebx + 1]
lea ecx, [ecx + 1]
jne 0x4359b0
test ebx, ebx
je 0x4359d0
cmp ebx, 4
jae 0x4359e0
mov esi, 0xa4c9dcf
jmp 0x435a27
mov esi, 0xa4c9dcf
jmp 0x435a51
mov ecx, edi
and ecx, 0xfffffffc
mov esi, 0xa4c9dcf
nop
nop
nop
nop
nop
nop
movsx eax, byte [edx]
xor eax, esi
imul eax, eax, 0x1000193
movsx esi, byte [edx + 1]
xor esi, eax
imul eax, esi, 0x1000193
movsx esi, byte [edx + 2]
xor esi, eax
imul eax, esi, 0x1000193
movsx esi, byte [edx + 3]
add edx, 4
xor esi, eax
imul esi, esi, 0x1000193
add ecx, 0xfffffffc
jne 0x4359f0
test bl, 3
je 0x435a51
and edi, 3
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx eax, byte [edx + ecx]
xor eax, esi
imul esi, eax, 0x1000193
inc ecx
cmp edi, ecx
jne 0x435a40
xor eax, eax
cmp esi, dword [ebp + 0xc]
setne al
mov ebx, dword [esp + 0x38]
jmp dword [eax*4 + 0x43fbd0]
mov edx, dword [esp + 0x1c]
mov ecx, edx
not ecx
or ecx, 1
add ecx, edx
xor edx, 1
lea edx, [edx + ecx*2]
add edx, 2
xor ecx, ecx
cmp edx, dword [esp + 0x30]
setb cl
mov esi, dword [ebp + 8]
jmp dword [ecx*4 + 0x43fbc8]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + eax*4]
xor edx, edx
mov ecx, eax
sub ecx, ebx
setae dl
mov esi, dword [ebp + 8]
jmp dword [edx*4 + 0x43fbd8]
xor edx, edx
cmp ecx, dword [esp + 0x20]
setb dl
jmp dword [edx*4 + 0x43fbe0]
add esi, eax
xor eax, eax
jmp dword [eax*4 + 0x43fbe8]
mov eax, dword [esp + 0x2c]
jmp dword [eax*4 + 0x43fbe8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret