Function at 0x4093b0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x1c], eax
mov word [esp + 8], 0x8d8f
mov byte [esp + 0xa], 0x9a
mov dword [esp + 0xb], 0
xor ecx, ecx
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ebp + 8]
mov ebx, ecx
and ebx, 6
mov eax, ebp
xor eax, 0xfa38a1db
add eax, ebx
xor eax, edi
lea edi, [eax + 0x38]
mov ebx, 0x47
sub ebx, eax
and eax, 1
and ebx, 0xd9
and edi, 0x26
or edi, ebx
xor edi, 0xd8
lea eax, [edi + eax*2]
mov byte [esp + ebp + 8], al
inc ebp
add ecx, 2
cmp ebp, 7
jne 0x4093f0
mov dword [esp + 0x10], 0x7270745e
mov word [esp + 0x14], 0x7d72
mov dword [esp + 0x16], 0
mov byte [esp + 0x1a], 0
mov ebx, 0x15
mov ebp, 0xea
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebp - 0xda]
mov ecx, ebp
or ecx, eax
not eax
or eax, ebx
and eax, ecx
add al, 0x6e
mov byte [esp + ebp - 0xda], al
dec ebx
inc ebp
cmp ebx, 0xa
jne 0x409460
mov dword [esp + 0x24], 0x80db2523
mov dword [esp + 0x28], 0x8bf5878e
mov dword [esp + 0x2c], 0x92d2c880
mov dword [esp + 0x30], 0x989b9b9d
mov dword [esp + 0x34], 0x90959b97
mov dword [esp + 0x38], 0xe322c99e
mov dword [esp + 0x3c], 0xe6999595
mov dword [esp + 0x40], 0xdeaed8dc
mov dword [esp + 0x44], 0xd2a01ff1
mov dword [esp + 0x48], 0x17fdd4af
mov byte [esp + 0x4c], 0x34
mov dword [esp + 0x4d], 0
mov byte [esp + 0x51], 0
xor ebp, ebp
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebp + 0x24]
mov eax, ebx
or eax, 0x3166f2c5
add eax, ebp
mov edi, ebp
xor edi, 0x3166f2c5
lea eax, [edi + eax*2]
add eax, 2
xor eax, ecx
mov edi, eax
and edi, 0x24
mov edx, eax
and edx, 2
mov ecx, edx
xor ecx, 2
imul ecx, edi
or edi, 2
imul edi, edx
lea edx, [eax + eax]
and edx, 0x4c
sub eax, edx
add eax, ecx
add eax, edi
add al, 0x27
mov byte [esp + ebp + 0x24], al
lea eax, [ebp + 1]
dec ebx
mov ebp, eax
cmp eax, 0x2e
jne 0x4094f0
mov word [esp], 0x5c5d
mov byte [esp + 2], 0x62
mov word [esp + 3], 0
mov byte [esp + 5], 0
mov ebx, 0x4e0e29e8
nop
movzx eax, byte [esp + ebx - 0x4e0e29e8]
mov ecx, eax
and ecx, ebx
add cl, cl
sub al, cl
movzx eax, al
add eax, ebx
add al, 0x78
mov byte [esp + ebx - 0x4e0e29e8], al
inc ebx
cmp ebx, 0x4e0e29ee
jne 0x409560
mov ebp, dword [esp + 0x68]
add ebp, dword [esp + 0x1c]
movzx eax, byte [esp]
mov edi, ebp
test al, al
je 0x4095ab
lea ebx, [esp + 1]
mov edi, ebp
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x4095a0
mov byte [edi], 0
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx + 0x60]
test al, al
je 0x4095dd
lea ebx, [ecx + 0x61]
mov edx, dword [esp + 0x70]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x4095d0
jmp 0x4095e1
mov edx, dword [esp + 0x70]
mov byte [edi], 0
movzx eax, byte [esp + 0x24]
test al, al
je 0x40960b
lea ebx, [esp + 0x25]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x409600
mov byte [edi], 0
movzx eax, byte [esi]
test al, al
je 0x40962b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409620
mov byte [edi], 0
movzx eax, byte [esp + 0x10]
test al, al
je 0x40964b
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409640
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x40966b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x409660
mov byte [edi], 0
movzx eax, byte [esp + 8]
test al, al
je 0x40968b
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x409680
mov byte [edi], 0
sub edi, ebp
add dword [ecx + 0x80], edi
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret 0xc