Function at 0x43ebf0
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, 0x58
mov esi, esp
mov ecx, dword [ebp + 8]
push eax
mov dword [esi], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
mov dword [esi + 0x1c], esp
sub esp, 0x1c
mov dword [esi + 0x34], esp
sub esp, 8
mov dword [esi + 0x40], esp
movzx edx, word [ecx]
mov dword [esi + 8], 0x2b247b75
mov dword [esi + 0xc], 0
mov dword [esi + 0xf], 0
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edi
and ebx, 0xa
xor ebx, 0xc4db5d7a
lea ecx, [ebx + ebx]
not ecx
add ecx, ebx
mov ebx, edi
or ebx, 0x3b24a285
and ebx, ecx
mov ecx, edi
and ecx, 5
add ebx, ecx
movzx ecx, byte [esi + edi + 8]
xor ebx, ecx
mov dword [esi + 0x4c], ebx
mov ecx, dword [esi + 0x4c]
add cl, 0x5d
mov byte [esi + edi + 8], cl
inc edi
cmp edi, 0xb
jne case.default.0x43ec85
xor ecx, ecx
cmp dword [esi + 8], edx
setne cl
jmp dword [ecx*4 + 0x44b8cc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
lea edi, [ecx + edx]
mov ebx, dword [esi]
mov dword [ebx], edi
mov edx, dword [ecx + edx]
mov dword [eax], 0xd3d01e66
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov dword [esi + 8], 0x7c2f66c5
mov ebx, dword [esi + 8]
add bl, 0x8b
mov byte [eax], bl
movzx edi, byte [eax + 1]
xor edi, 0x7c2f66a4
mov dword [esi + 8], edi
mov ebx, dword [esi + 8]
add bl, 0x8b
mov byte [eax + 1], bl
movzx edi, byte [eax + 2]
xor edi, 0x7c2f66a5
mov dword [esi + 8], edi
mov ebx, dword [esi + 8]
add bl, 0x8b
mov byte [eax + 2], bl
movzx edi, byte [eax + 3]
xor edi, 0x7c2f66a6
mov dword [esi + 8], edi
mov ebx, dword [esi + 8]
add bl, 0x8b
mov byte [eax + 3], bl
movzx edi, byte [eax + 4]
xor edi, 0x7c2f66a7
mov dword [esi + 8], edi
mov ebx, dword [esi + 8]
add bl, 0x8b
mov byte [eax + 4], bl
movzx edi, byte [eax + 5]
xor edi, 0x7c2f66a8
mov dword [esi + 8], edi
mov ebx, dword [esi + 8]
add bl, 0x8b
mov byte [eax + 5], bl
movzx edi, byte [eax + 6]
xor edi, 0x7c2f66a9
mov dword [esi + 8], edi
mov ebx, dword [esi + 8]
add bl, 0x8b
mov byte [eax + 6], bl
movzx edi, byte [eax + 7]
xor edi, 0x7c2f66aa
mov dword [esi + 8], edi
mov ebx, dword [esi + 8]
add bl, 0x8b
mov byte [eax + 7], bl
movzx edi, byte [eax + 8]
xor edi, 0x7c2f66ab
mov dword [esi + 8], edi
mov edi, dword [esi + 8]
xor ebx, ebx
cmp edx, dword [eax]
setne bl
xor eax, eax
mov edi, dword [esi + 0x1c]
jmp dword [ebx*4 + 0x44b8d4]
mov eax, dword [esi]
mov ecx, dword [eax]
xor edx, edx
cmp dword [ecx + 0x7c], 0
sete dl
xor eax, eax
jmp dword [edx*4 + 0x44b8dc]
mov edx, dword [ecx + 0x78]
xor ecx, ecx
test edx, edx
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x44b8e4]
mov ecx, edx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + edx + 0x20]
add eax, ebx
mov dword [esi + 0x48], eax
mov eax, dword [ebx + edx + 0x24]
add eax, ebx
mov dword [esi + 0x3c], eax
mov eax, dword [ebx + edx + 0x1c]
add eax, ebx
mov dword [esi + 0x38], eax
mov edx, dword [0x44d62c]
xor eax, eax
mov dword [esi], edx
test edx, edx
sete al
jmp dword [eax*4 + 0x44b8ec]
mov edi, dword [0x44d628]
mov dword [esi + 0x18], ecx
mov eax, dword [ebx + ecx + 0x18]
add eax, edi
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x43edf8
shl eax, 3
mov ecx, eax
push ecx
call fcn.00408fc0
add esp, 4
lea ecx, [edi*8]
mov edx, dword [esi]
lea edi, [edx + edi*8]
mov dword [esi + 4], edi
cmp eax, edx
jbe 0x43eeba
cmp dword [esi + 4], eax
jbe 0x43eeba
mov edi, edx
test ecx, ecx
je 0x43ee7f
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edi + ecx - 1]
mov byte [eax + ecx - 1], bl
movzx ebx, byte [edi + ecx - 2]
mov byte [eax + ecx - 2], bl
movzx ebx, byte [edi + ecx - 3]
mov byte [eax + ecx - 3], bl
movzx ebx, byte [edi + ecx - 4]
mov byte [eax + ecx - 4], bl
movzx ebx, byte [edi + ecx - 5]
mov byte [eax + ecx - 5], bl
movzx ebx, byte [edi + ecx - 6]
mov byte [eax + ecx - 6], bl
movzx ebx, byte [edi + ecx - 7]
mov byte [eax + ecx - 7], bl
movzx ebx, byte [edi + ecx - 8]
mov byte [eax + ecx - 8], bl
add edx, 0xfffffff8
mov ecx, edx
jne 0x43ee30
xor ecx, ecx
test edi, edi
sete cl
mov ebx, dword [ebp + 8]
jmp dword [ecx*4 + 0x44b8f4]
xor eax, eax
jmp case.0x43ec85.2
mov dword [esi + 0x18], ecx
mov eax, dword [ebx + ecx + 0x18]
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x43eeaf
shl eax, 3
mov ecx, eax
push ecx
call fcn.00408fc0
add esp, 4
jmp 0x43ef01
mov edx, eax
add edx, ecx
mov dword [esi + 0x30], edx
shr ecx, 2
mov edi, eax
mov edx, dword [esi]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, dword [esi + 0x30]
xor ecx, ecx
mov edx, dword [esi + 4]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov edi, dword [0x44d62c]
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x44b8f4]
push edi
mov edi, eax
call fcn.00408fd0
mov eax, edi
add esp, 4
mov edi, dword [esi + 0x1c]
mov dword [0x44d62c], eax
mov byte [edi], 0
lea eax, [ebx - 1]
mov dword [esi + 0x44], eax
xor edx, edx
xor eax, eax
mov ecx, dword [esi + 0x18]
cmp edx, dword [ebx + ecx + 0x18]
setb al
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
jmp dword [eax*4 + 0x44b8fc]
mov edx, dword [esi + 0x24]
inc edx
xor eax, eax
mov ecx, dword [esi + 0x18]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44b8fc]
mov eax, dword [esi + 0x48]
mov dword [esi + 0x24], edx
mov eax, dword [eax + edx*4]
lea ecx, [ebx + eax]
add eax, dword [esi + 0x44]
mov dword [esi], ecx
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x43ef70
mov edx, eax
mov ecx, dword [esi]
xor edx, ecx
mov edi, ecx
not edi
and edi, eax
add edi, edi
mov eax, edi
sub eax, edx
je 0x43efb0
inc edx
cmp edi, edx
jne 0x43efc0
mov edi, 0xa4c9dcf
mov edx, ecx
test al, 1
jne 0x43f035
jmp 0x43f05f
mov edi, 0xa4c9dcf
jmp 0x43f05f
mov dword [esi + 4], eax
mov ebx, eax
and ebx, 0xfffffffe
mov edi, 0xa4c9dcf
mov edx, ecx
nop
movsx eax, byte [edx]
xor eax, edi
mov ecx, eax
and ecx, 0x1000193
mov edi, eax
or eax, 0x1000193
imul eax, ecx
xor ecx, 0x1000193
and edi, 0xfefffe6c
imul edi, ecx
add eax, edi
movsx edi, byte [edx + 1]
xor edi, eax
mov ecx, edi
and ecx, 0x1000193
mov eax, edi
or edi, 0x1000193
imul edi, ecx
xor ecx, 0x1000193
and eax, 0xfefffe6c
imul eax, ecx
add edi, eax
add edx, 2
add ebx, 0xfffffffe
jne 0x43efd0
mov ebx, dword [ebp + 8]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
test al, 1
je 0x43f05f
movsx eax, byte [edx]
xor edi, eax
mov ecx, edi
and ecx, 0x1000193
mov eax, edi
or edi, 0x1000193
imul edi, ecx
xor ecx, 0x1000193
and eax, 0xfefffe6c
imul eax, ecx
mov ecx, dword [esi]
add edi, eax
xor eax, eax
cmp dword [0x44d630], 0
sete al
jmp dword [eax*4 + 0x44b904]
xor eax, eax
cmp edi, 0x84f57947
sete al
jmp dword [eax*4 + 0x44b90c]
xor eax, eax
cmp byte [ecx], 0x4e
setne al
jmp dword [eax*4 + 0x44b914]
xor eax, eax
cmp byte [ecx + 1], 0x74
setne al
jmp dword [eax*4 + 0x44b91c]
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x24]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esi + 0x38]
mov eax, dword [ecx + eax*4]
add eax, ebx
mov dword [esi + 0x30], eax
xor ecx, ecx
mov dword [esi + 0x20], 0xffffffff
xor eax, eax
cmp ecx, 0x20
setl al
jmp dword [eax*4 + 0x44b924]
mov eax, dword [esi + 0x30]
mov dword [esi], ecx
add eax, ecx
mov ebx, dword [esi + 0x34]
push ebx
push eax
call fcn.00401000
add esp, 8
mov edx, dword [ebx + 0x18]
mov ecx, edx
shr ecx, 0xa
and ecx, 4
mov dword [esi + 4], 1
jmp dword [ecx + 0x44b92c]
mov ecx, dword [esi + 0x34]
movzx ebx, byte [ecx + 6]
xor ecx, ecx
cmp bl, 0xc2
sete cl
jmp dword [ecx*4 + 0x44b934]
mov ecx, edx
shr ecx, 1
and ecx, 4
jmp dword [ecx + 0x44b94c]
jmp dword [0x44b960]
xor ecx, ecx
cmp bl, 0xc3
sete cl
jmp dword [ecx*4 + 0x44b974]
xor ecx, ecx
cmp bl, 0xb8
sete cl
jmp dword [ecx*4 + 0x44b97c]
shr edx, 2
and edx, 4
jmp dword [edx + 0x44b984]
add dword [esi], eax
mov dword [esi + 4], 0
jmp case.0x43eeea.15
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x20], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x43eeea.40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esi]
mov eax, dword [esi + 4]
jmp dword [eax*4 + 0x44b99c]
xor eax, eax
cmp ecx, 0x20
setl al
jmp dword [eax*4 + 0x44b924]
xor eax, eax
cmp dword [esi + 0x20], 0xffffffff
setne al
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
jmp dword [eax*4 + 0x44b9a4]
xor eax, eax
xor edx, edx
cmp eax, dword [0x44d628]
setb dl
xor ecx, ecx
jmp dword [edx*4 + 0x44b9ac]
mov eax, dword [esi + 0x20]
mov dword [edx + ecx*8 + 4], eax
xor edx, edx
mov al, 1
jmp dword [edx*4 + 0x44b9bc]
add ecx, 0xbae77337
mov edx, ecx
xor edx, 1
and ecx, 1
lea ecx, [edx + ecx*2]
add ecx, 0x45188cc9
xor edx, edx
cmp ecx, dword [0x44d628]
setb dl
jmp dword [edx*4 + 0x44b9ac]
mov edx, dword [0x44d62c]
xor ebx, ebx
cmp dword [edx + ecx*8], edi
sete bl
jmp dword [ebx*4 + 0x44b9b4]
mov edx, 1
jmp dword [edx*4 + 0x44b9bc]
movzx eax, al
jmp dword [eax*4 + 0x44b9c4]
mov ebx, dword [esi + 0x40]
mov dword [ebx], edi
mov eax, dword [esi + 0x20]
mov dword [ebx + 4], eax
mov eax, dword [0x44d62c]
mov ecx, dword [0x44d628]
lea edx, [ecx + 1]
mov dword [0x44d628], edx
mov edx, dword [ebx]
mov edi, dword [ebx + 4]
mov dword [eax + ecx*8 + 4], edi
mov dword [eax + ecx*8], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dl, 1
mov cl, 1
jmp dword [0x44b9d8]
mov dword [esi + 0x2c], edx
mov dword [esi + 0x28], ecx
mov edx, dword [esi + 0x24]
inc edx
xor eax, eax
mov ebx, dword [ebp + 8]
mov ecx, dword [esi + 0x18]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44b8fc]
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x24]
movzx eax, word [eax + edx*2]
mov ecx, dword [esi + 0x38]
mov eax, dword [ecx + eax*4]
mov dword [0x44d630], eax
inc edx
xor eax, eax
mov ecx, dword [esi + 0x18]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44b8fc]
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x2c]
mov byte [ecx], al
jmp dword [0x44b9e4]
cmp byte [esi + 0x28], 0
setne al
jmp dword [0x44b9f0]
cmp byte [ecx], 0
setne al
jmp dword [0x44b9f0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
out dx, al
inc ebx
add dh, bh
out dx, al
inc ebx
add cl, cl
inc ebx
add byte [edi - 0x11], dl
inc ebx
add byte [eax + esi*8 - 0xf8dffbd], al
inc ebx
add byte [eax + esi*8 - 0xd5fffbd], al
inc ebx
add byte [ebx + 0x400043f0], dl
out dx, eax
inc ebx
add byte [ebx + 0x400043f0], ah
out dx, eax
inc ebx
add byte [ebp - 0x2fffbc0f], bl
invalid