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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10c
cmp dword [ecx + 0x20], 0
je 0x409fd8
mov esi, ecx
lea eax, [ecx + 0x10]
push eax
call fcn.00406340
add esp, 4
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xc], eax
movzx eax, byte [esi]
imul ecx, eax, 0xcd
shr ecx, 0xa
and ecx, 0xfffffffe
lea ecx, [ecx + ecx*4]
sub al, cl
movzx eax, al
movzx eax, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esp + 6], al
mov byte [esp + 7], 0
mov dword [esp + 8], edx
lea eax, [edx + 0x400]
push eax
call fcn.00408580
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x70], 0x7b7f7260
mov byte [esp + 0x74], 0xd4
mov word [esp + 0x75], 0
mov byte [esp + 0x77], 0
mov eax, 0x6f1e94ae
mov ecx, 0x10e16b51
nop
movzx edx, byte [esp + eax - 0x6f1e943e]
mov ebx, eax
xor ebx, edx
or ebx, ecx
mov ebp, edx
and ebp, eax
not ebx
or ebx, ebp
add bl, bl
sub dl, bl
movzx edx, dl
add edx, eax
add dl, 0x9a
mov byte [esp + eax - 0x6f1e943e], dl
inc eax
dec ecx
cmp eax, 0x6f1e94b6
jne 0x409bb0
lea edi, [esp + 0x70]
mov ecx, esi
push 0x44cb68
push edi
push dword [esp + 8]
call fcn.00409360
mov dword [esp + 0x70], 0x49d6dcdc
mov byte [esp + 0x74], 0
xor ecx, ecx
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x70]
lea ebp, [ecx - 0x3636f80d]
xor ebp, edx
mov edx, ebp
xor edx, 0x3f
and ebp, 0x3f
lea edx, [edx + ebp*2]
add dl, 2
mov byte [esp + ecx + 0x70], dl
mov edx, ecx
xor eax, 1
add eax, ecx
and ecx, 1
and edx, 6
sub eax, edx
add eax, ecx
mov ecx, eax
cmp eax, 5
jb 0x409c10
lea eax, [esp + 6]
mov ecx, esi
push eax
push edi
push dword [esp + 8]
call fcn.00409360
mov eax, dword [str.MeHdy4__pl4vs05]
mov dword [esp + 0x70], 0x9f7a7074
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x5a
xor dl, byte [esp + ecx + 0x70]
add dl, 0x3e
mov byte [esp + ecx + 0x70], dl
inc ecx
cmp ecx, 4
jne 0x409c70
mov ecx, esi
push eax
push edi
push dword [esp + 8]
call fcn.00409360
mov dword [esp + 0x70], 0x47bc44b3
mov dword [esp + 0x74], 0xb443b84b
mov dword [esp + 0x78], 0x3e3d38cb
mov byte [esp + 0x7c], 0x5c
mov dword [esp + 0x7d], 0
mov byte [esp + 0x81], 0
mov eax, 0x994f83b8
mov ecx, 0x66b07c47
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x66b07cb8]
lea ebp, [ecx - 0x66b07c00]
or ebp, edx
not edx
or edx, eax
and edx, ebp
mov bl, 0x67
sub bl, dl
mov byte [esp + eax + 0x66b07cb8], bl
inc eax
dec ecx
cmp eax, 0x994f83ca
jne 0x409cd0
mov dword [esp + 0x10], 0x813a2a27
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
xor eax, eax
lea edx, [eax + 1]
mov ecx, eax
and ecx, 1
and edx, 0xe
or edx, ecx
xor dl, byte [esp + eax + 0x10]
xor dl, 0xa1
add dl, 0xdb
mov byte [esp + eax + 0x10], dl
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 7
jb 0x409d10
lea eax, [esp + 0x10]
mov ecx, esi
push edi
push eax
push dword [esp + 8]
call fcn.00409360
mov dword [esp + 0x70], 0x6e726c6a
mov byte [esp + 0x74], 0
mov dword [esp + 0x75], 0
xor eax, eax
xor ecx, ecx
movzx ebx, byte [esp + ecx + 0x70]
mov ebp, eax
and ebp, 2
mov edx, ecx
xor edx, 0x1a8bc781
add edx, ebp
xor edx, ebx
mov ebx, edx
xor ebx, 0x86
and edx, 0x79
add edx, edx
sub edx, ebx
inc dl
mov byte [esp + ecx + 0x70], dl
inc ecx
add eax, 2
cmp ecx, 9
jne 0x409d60
mov ecx, esi
push dword [esp + 8]
push dword [esp + 0x10]
push edi
push dword [esp + 0xc]
call fcn.004095e0
mov dword [esp + 0x10], 0x37c539e7
mov dword [esp + 0x14], 0x33be35c6
mov dword [esp + 0x18], 0xcf3c31cd
mov dword [esp + 0x1c], 0xcbffcd40
mov dword [esp + 0x20], 0xc74fc924
mov dword [esp + 0x24], 0xc33fc534
mov dword [esp + 0x28], 0xdffec106
mov dword [esp + 0x2c], 0xdb57dd29
mov dword [esp + 0x30], 0xd75ad92c
mov dword [esp + 0x34], 0xd322d52d
mov dword [esp + 0x38], 0xef60d131
mov dword [esp + 0x3c], 0xebd9ed60
mov dword [esp + 0x40], 0xe715e912
mov dword [esp + 0x44], 0xe317e56a
mov dword [esp + 0x48], 0xff02e1d5
mov dword [esp + 0x4c], 0xfb76fd1d
mov dword [esp + 0x50], 0xf731f919
mov dword [esp + 0x54], 0xf30cf5d4
mov dword [esp + 0x58], 0x8f03f103
mov dword [esp + 0x5c], 0x8b768d7e
mov dword [esp + 0x60], 0x87088969
mov dword [esp + 0x64], 0x8347850d
mov word [esp + 0x68], 0x8180
mov byte [esp + 0x6c], 0
mov word [esp + 0x6a], 0
mov eax, 0x452aed76
movzx ecx, byte [esp + eax - 0x452aed66]
mov edx, eax
and edx, ecx
add ecx, eax
add edx, edx
mov ebx, ecx
sub ebx, edx
add ebx, 0xa6295cb1
mov edx, ebx
and edx, 1
and ecx, 1
and ebx, 0xfe
or ebx, ecx
lea ecx, [ebx + edx*2]
mov byte [esp + eax - 0x452aed66], cl
inc eax
cmp eax, 0x452aedd3
jne 0x409e70
movzx eax, word [esp + 0x10]
test ax, ax
je 0x409ed1
lea edi, [esp + 0x70]
lea ecx, [esp + 0x12]
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409ec0
mov word [edi], 0
movzx ecx, byte [esi + 0x60]
test cl, cl
je 0x409f01
lea eax, [esi + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, cl
mov word [edi], cx
add edi, 2
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x409ef0
mov dword [edi], 0xa000d
mov word [edi + 4], 0
mov eax, dword [esi + 0x80]
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0x21452775
mov dword [esp + 0x14], 0x5db923b0
mov word [esp + 0x18], 0x5f5c
mov dword [esp + 0x1a], 0
mov byte [esp + 0x1e], 0
xor ecx, ecx
xor edx, edx
nop
movzx edi, byte [esp + edx + 0x10]
mov ebp, edx
xor ebp, 0x717f25c7
mov ebx, ecx
and ebx, 0x10
sub ebx, ebp
mov eax, ebx
and eax, edi
add eax, eax
add ebx, edi
mov ebp, ebx
sub ebp, eax
and ebx, 1
mov eax, 0x1d
sub eax, ebp
add ebp, 0xe2
and eax, 0x50
and ebp, 0xaf
or ebp, eax
xor ebp, 0x51
lea eax, [ebx*2]
add eax, ebp
mov byte [esp + edx + 0x10], al
inc edx
add ecx, 2
cmp edx, 0xf
jne 0x409f40
lea eax, [esp + 0x70]
push 0x493e0
push dword [esp + 0xc]
mov edi, dword [esp + 8]
push edi
push 0
push 0
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0040c4d0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.00408590
add esp, 4
mov eax, dword [esi + 0x80]
add dword [esi + 4], eax
mov dword [esi + 0x80], 0
jmp 0x409fda
mov bl, 1
mov eax, ebx
add esp, 0x10c
pop esi
pop edi
pop ebx
pop ebp
ret