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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x11c
cmp dword [ecx + 0x20], 0
je 0x40a06c
mov esi, ecx
lea eax, [ecx + 0x10]
push eax
call fcn.00406180
add esp, 4
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x14], 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 + 2], al
mov byte [esp + 3], 0
mov dword [esp + 0x18], edx
lea eax, [edx + 0x400]
push eax
call fcn.00408350
add esp, 4
mov ebx, eax
mov dword [esp + 0x80], 0x9b97a290
mov byte [esp + 0x84], 0x3c
mov dword [esp + 0x85], 0
mov byte [esp + 0x89], 0
mov eax, 0x4a
mov ecx, 0xb5
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x36]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0x8e
mov byte [esp + eax + 0x36], dl
inc eax
dec ecx
cmp eax, 0x54
jne 0x409c00
lea eax, [esp + 0x80]
mov ecx, esi
push 0x449568
push eax
push ebx
call fcn.00409410
mov dword [esp + 0x80], 0x219a9c94
mov word [esp + 0x84], 0
mov byte [esp + 0x86], 0
xor eax, eax
nop
mov ecx, eax
add cl, 0x49
xor cl, byte [esp + eax + 0x80]
add cl, 0x93
mov byte [esp + eax + 0x80], cl
inc eax
cmp eax, 7
jne 0x409c50
lea eax, [esp + 2]
mov dword [esp + 0x1c], esi
mov ecx, esi
push eax
lea eax, [esp + 0x84]
push eax
mov dword [esp + 0xc], ebx
push ebx
call fcn.00409410
mov eax, dword [str.MeHdy4__pl7vs04]
mov dword [esp + 0x10], eax
mov dword [esp + 0x80], 0xf74a404c
mov byte [esp + 0x84], 0
xor ebp, ebp
mov ecx, 0x9ba6f8d7
mov edx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov eax, ebp
and eax, 0xfffffffe
mov ecx, dword [esp + 0xc]
sub ecx, eax
movzx edi, byte [esp + ebp + 0x80]
mov edx, dword [esp + 8]
or edx, 0x9ba6f8d6
lea eax, [edx + ecx]
mov ebx, eax
and ebx, edi
mov esi, edi
not esi
and esi, eax
xor eax, edi
add eax, edx
mov edx, dword [esp + 8]
sub eax, esi
add eax, ecx
mov ecx, dword [esp + 0xc]
not ebx
and eax, ebx
add al, 0xd2
mov byte [esp + ebp + 0x80], al
inc ebp
add ecx, 2
dec edx
cmp ebp, 5
jne 0x409cc0
mov ebp, dword [esp + 0x1c]
mov ecx, ebp
push dword [esp + 0x10]
lea ebx, [esp + 0x84]
push ebx
mov edi, dword [esp + 0xc]
push edi
call fcn.00409410
mov dword [esp + 0x80], 0xd180011
mov dword [esp + 0x84], 0x18051c09
mov dword [esp + 0x88], 0x1a1b1419
mov byte [esp + 0x8c], 0x70
mov dword [esp + 0x8d], 0
mov dword [esp + 0x90], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 0xe
mov edx, ecx
xor edx, 0xe7
add edx, esi
xor dl, byte [esp + ecx + 0x80]
add dl, 0x7d
mov byte [esp + ecx + 0x80], dl
inc ecx
add eax, 2
cmp ecx, 0x14
jne 0x409d80
mov dword [esp + 0x20], 0x43d6a2a1
mov byte [esp + 0x24], 0
mov eax, 0x91
mov ecx, 0x6f
movzx edx, byte [esp + eax - 0x71]
lea esi, [edx + edx]
not esi
add esi, edx
or esi, ecx
add esi, eax
and edx, ecx
or edx, esi
add dl, 0x30
mov byte [esp + eax - 0x71], dl
inc eax
dec ecx
cmp eax, 0x96
jne 0x409dc0
lea eax, [esp + 0x20]
mov ecx, ebp
push ebx
push eax
push edi
call fcn.00409410
mov dword [esp + 0x80], 0x5662646a
mov byte [esp + 0x84], 0xb0
mov dword [esp + 0x85], 0
mov byte [esp + 0x89], 0
mov eax, 0xea1fa2dd
nop
nop
nop
movzx ecx, byte [esp + eax + 0x15e05da3]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xaf
mov byte [esp + eax + 0x15e05da3], cl
inc eax
cmp eax, 0xea1fa2e7
jne 0x409e20
mov ecx, ebp
push dword [esp + 0x18]
push dword [esp + 0x18]
push ebx
push edi
call fcn.004096c0
mov dword [esp + 0x20], 0x21972779
mov dword [esp + 0x24], 0x3dae2396
mov dword [esp + 0x28], 0x39883f83
mov dword [esp + 0x2c], 0x354d3bb4
mov dword [esp + 0x30], 0x31bd3798
mov dword [esp + 0x34], 0xd8d3380
mov dword [esp + 0x38], 0x96e0f46
mov dword [esp + 0x3c], 0x5850bbf
mov dword [esp + 0x40], 0x18a07b0
mov dword [esp + 0x44], 0x1db203bb
mov dword [esp + 0x48], 0x19ac1fbf
mov dword [esp + 0x4c], 0x156b1b94
mov dword [esp + 0x50], 0x11a717aa
mov dword [esp + 0x54], 0x6da513a2
mov dword [esp + 0x58], 0x69d26f1b
mov dword [esp + 0x5c], 0x65e66bcb
mov dword [esp + 0x60], 0x612367c7
mov dword [esp + 0x64], 0x7dc06300
mov dword [esp + 0x68], 0x79f17fcd
mov dword [esp + 0x6c], 0x75c67bce
mov dword [esp + 0x70], 0x71c477d7
mov dword [esp + 0x74], 0x4d3573fb
mov word [esp + 0x78], 0x4f4c
mov word [esp + 0x7e], 0
mov dword [esp + 0x7a], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x20]
mov esi, eax
and esi, 0x12
mov edi, ecx
xor edi, 0xce87f889
add edi, esi
xor edi, edx
mov edx, edi
and edx, 0x52
xor edi, 0x52
lea edx, [edi + edx*2]
inc dl
mov byte [esp + ecx + 0x20], dl
inc ecx
add eax, 2
cmp ecx, 0x60
jne 0x409f30
movzx eax, word [esp + 0x20]
test ax, ax
je 0x409f91
lea ebx, [esp + 0x80]
lea ecx, [esp + 0x22]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409f80
mov word [ebx], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebp + ecx + 0x61], 0
lea ecx, [ecx + 1]
jne 0x409fb0
cmp eax, ecx
jae 0x409fcc
movsx ecx, byte [ebp + eax + 0x60]
mov word [ebx], cx
add ebx, 2
inc eax
jmp 0x409fa0
mov dword [ebx], 0xa000d
mov word [ebx + 4], 0
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x20], 0x9f50b3d
mov dword [esp + 0x24], 0x5f107f8
mov dword [esp + 0x28], 0x304
mov byte [esp + 0x2c], 0
mov ecx, 0xdc59c643
movzx edx, byte [esp + ecx + 0x23a639dd]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0xb1
mov byte [esp + ecx + 0x23a639dd], dl
inc ecx
cmp ecx, 0xdc59c650
jne 0x40a000
lea ecx, [esp + 0x80]
push 0x493e0
push eax
mov esi, dword [esp + 0xc]
push esi
push 0
push 0
push ecx
lea eax, [esp + 0x38]
push eax
call fcn.0040c730
add esp, 0x1c
mov ebx, eax
push esi
call fcn.00408360
add esp, 4
mov eax, dword [ebp + 0x80]
add dword [ebp + 4], eax
mov dword [ebp + 0x80], 0
jmp 0x40a06e
mov bl, 1
mov eax, ebx
add esp, 0x11c
pop esi
pop edi
pop ebx
pop ebp
ret