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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x1c], eax
mov word [esp], 0x8583
mov byte [esp + 2], 0x8e
mov dword [esp + 3], 0
mov byte [esp + 7], 0
mov ebx, 0x5e
mov ebp, 0xa2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebp
and ecx, 0x9d
mov eax, ebp
or eax, 0x62
add eax, ebx
or eax, ecx
xor al, byte [esp + ebx - 0x5e]
xor al, 0x9d
add al, 0x2f
mov byte [esp + ebx - 0x5e], al
inc ebx
dec ebp
cmp ebx, 0x66
jne 0x4093b0
mov dword [esp + 0x10], 0x7e787c42
mov word [esp + 0x14], 0x657e
mov dword [esp + 0x16], 0
mov ebx, 0x37f510e8
movzx eax, byte [esp + ebx - 0x37f510d8]
mov ebp, eax
xor ebp, ebx
lea ecx, [ebp*2]
not ecx
add ecx, ebp
and ecx, ebx
add cl, cl
sub al, cl
movzx eax, al
add eax, ebx
add al, 0x78
mov byte [esp + ebx - 0x37f510d8], al
inc ebx
cmp ebx, 0x37f510f2
jne 0x4093f0
mov dword [esp + 0x24], 0xd00b4d33
mov dword [esp + 0x28], 0xdbeddfd6
mov dword [esp + 0x2c], 0xe20218d0
mov dword [esp + 0x30], 0x28dbdbd5
mov dword [esp + 0x34], 0x201d2b1f
mov dword [esp + 0x38], 0x13d2e926
mov dword [esp + 0x3c], 0xee292d2d
mov dword [esp + 0x40], 0x6261814
mov dword [esp + 0x44], 0x230c7e1
mov dword [esp + 0x48], 0xcfe50c37
mov byte [esp + 0x4c], 0xac
mov dword [esp + 0x4d], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0x71
xor al, byte [esp + ebx + 0x24]
add al, 0xcb
mov byte [esp + ebx + 0x24], al
inc ebx
cmp ebx, 0x2d
jne 0x409490
add edi, dword [esp + 0x1c]
mov word [esp + 8], 0x7c7d
mov byte [esp + 0xa], 0x22
mov word [esp + 0xb], 0
xor ebx, ebx
mov ecx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebx + 8]
xor al, bl
xor al, 0x38
add al, 0xe8
mov byte [esp + ebx + 8], al
inc ebx
cmp ebx, 5
jne 0x4094d0
movzx ebx, byte [esp + 8]
mov eax, edi
test bl, bl
je 0x40950c
lea ebp, [esp + 9]
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [ebp]
inc ebp
test bl, bl
jne 0x409500
mov byte [edi], 0
movzx ebx, byte [ecx + 0x60]
test bl, bl
je 0x40952c
lea ebp, [ecx + 0x61]
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [ebp]
inc ebp
test bl, bl
jne 0x409520
mov byte [edi], 0
movzx ebx, byte [esp + 0x24]
test bl, bl
je 0x40954c
lea ebp, [esp + 0x25]
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [ebp]
inc ebp
test bl, bl
jne 0x409540
mov byte [edi], 0
movzx ebx, byte [esi]
test bl, bl
je 0x40956b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409560
mov byte [edi], 0
movzx ebx, byte [esp + 0x10]
test bl, bl
je 0x40958b
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409580
mov byte [edi], 0
movzx ebx, byte [edx]
test bl, bl
je 0x4095ab
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x4095a0
mov byte [edi], 0
movzx edx, byte [esp]
test dl, dl
je 0x4095cb
lea esi, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x4095c0
mov byte [edi], 0
sub edi, eax
add dword [ecx + 0x80], edi
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret 0xc