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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov esi, dword [esp + 0x78]
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x14], eax
mov word [esp], 0xd13
mov byte [esp + 2], 6
mov word [esp + 3], 0
mov eax, 0x4a445b41
mov edi, 0xbe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x4a445b41]
mov ebx, edi
xor ebx, eax
and ebx, ecx
xor ebx, eax
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ecx, [ebx + ecx*2]
add cl, 0xba
mov byte [esp + eax - 0x4a445b41], cl
inc eax
dec edi
cmp eax, 0x4a445b46
jne 0x40d4a0
mov dword [esp + 8], 0xcec8cc22
mov word [esp + 0xc], 0xc5ce
mov dword [esp + 0xe], 0
mov byte [esp + 0x12], 0
mov eax, 0x33340b0
nop
movzx ecx, byte [esp + eax - 0x33340a8]
xor ecx, eax
lea edi, [ecx - 0x10004371]
mov ebx, edi
and ebx, 1
mov ebp, 0x70
sub ebp, ecx
and ebp, 0x60
and edi, 0x9f
or edi, ebp
xor edi, 0x61
lea ecx, [edi + ebx*2]
mov byte [esp + eax - 0x33340a8], cl
inc eax
cmp eax, 0x33340bb
jne 0x40d4f0
mov dword [esp + 0x1c], 0xbe447073
mov dword [esp + 0x20], 0xc2be6c68
mov dword [esp + 0x24], 0xc5cec413
mov dword [esp + 0x28], 0xcac1c6c9
mov dword [esp + 0x2c], 0x2c9c5c6
mov dword [esp + 0x30], 0xdc2f6967
mov dword [esp + 0x34], 0xdfd1c3da
mov dword [esp + 0x38], 0xde361cc4
mov dword [esp + 0x3c], 0xccd7d7c9
mov dword [esp + 0x40], 0xecd9cfdb
mov dword [esp + 0x44], 0xe75e35ea
mov dword [esp + 0x48], 0x22ede9e9
mov dword [esp + 0x4c], 0x12fa14e8
mov dword [esp + 0x50], 0xee45335
mov dword [esp + 0x54], 0x4b29f0fb
mov byte [esp + 0x58], 0x68
mov dword [esp + 0x59], 0
mov byte [esp + 0x5d], 0
mov ecx, 0x55c4d0b9
mov edx, 0x3b2f46
lea eax, [edx - 0x3b2f00]
mov edi, eax
mov ebp, edx
and ebp, 0x39054a
mov ebx, ecx
and ebx, 0x10010b5
or ebx, ebp
mov ebp, ecx
and ebp, 0x58
and eax, 0xa7
or eax, ebp
xor eax, ebx
xor ebx, 0x4a
or ebx, ecx
xor eax, 0x12
and eax, ebx
movzx ebx, byte [esp + ecx - 0x55c4d09d]
or edi, ebx
not ebx
or eax, ebx
and eax, edi
mov bl, 0x62
sub bl, al
mov byte [esp + ecx - 0x55c4d09d], bl
inc ecx
dec edx
cmp ecx, 0x55c4d0fb
jne 0x40d5c0
mov ecx, dword [esp + 0x74]
add ecx, dword [esp + 0x14]
movzx eax, byte [esp + 0x1c]
mov edi, ecx
test al, al
je 0x40d63b
lea ebx, [esp + 0x1d]
mov edi, ecx
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x40d630
mov byte [edi], 0
movzx eax, byte [esi]
test al, al
mov edx, dword [esp + 0x7c]
je 0x40d65b
inc esi
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40d650
mov byte [edi], 0
movzx eax, byte [esp + 8]
test al, al
je 0x40d67b
lea esi, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40d670
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x40d69b
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 0x40d690
mov byte [edi], 0
movzx eax, byte [esp]
test al, al
je 0x40d6bb
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40d6b0
mov byte [edi], 0
sub edi, ecx
mov eax, dword [esp + 0x18]
add dword [eax + 0x60], edi
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 0xc