Function at 0x40d450
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], 0xb05
mov byte [esp + 2], 0x12
mov word [esp + 3], 0
mov byte [esp + 5], 0
mov ebx, 0x3593723c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebx - 0x3593723c]
mov ecx, eax
and ecx, ebx
add cl, cl
sub al, cl
movzx eax, al
add eax, ebx
add al, 0xd4
mov byte [esp + ebx - 0x3593723c], al
inc ebx
cmp ebx, 0x35937242
jne 0x40d490
mov dword [esp + 8], 0xc6c8c4d2
mov dword [esp + 0xc], 0x2dd6
mov byte [esp + 0x10], 0
mov edi, 0xa74204c
mov ebp, 0x758bdfb3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi - 0xa742044]
mov ecx, eax
not ecx
or ecx, 0x3d6cb862
add ecx, eax
inc ecx
and eax, 0xffffff9d
xor eax, 0xc293479d
or ecx, eax
mov eax, ebp
and eax, 0x4083479d
mov ebx, edi
and ebx, 0x8642042
or ebx, eax
mov eax, ecx
and eax, ebx
add ebx, ecx
add eax, eax
sub ebx, eax
add ebx, 0x87856e01
mov eax, ebx
xor eax, 0x7e
and ebx, 1
add ebx, ebx
sub ebx, eax
inc bl
mov byte [esp + edi - 0xa742044], bl
inc edi
dec ebp
cmp edi, 0xa742055
jne 0x40d4e0
mov dword [esp + 0x1c], 0x1a18d4d5
mov dword [esp + 0x20], 0x6062824
mov dword [esp + 0x24], 0x3760835
mov dword [esp + 0x28], 0xe030277
mov dword [esp + 0x2c], 0x3e0b7f7e
mov dword [esp + 0x30], 0x55e3e1
mov dword [esp + 0x34], 0x5730502
mov dword [esp + 0x38], 0x725eb800
mov dword [esp + 0x3c], 0x80d090f
mov dword [esp + 0x40], 0x106b0975
mov dword [esp + 0x44], 0x6da65f12
mov dword [esp + 0x48], 0xa6671317
mov dword [esp + 0x4c], 0x6e1a686c
mov dword [esp + 0x50], 0x5220ad53
mov dword [esp + 0x54], 0x916b545d
mov byte [esp + 0x58], 0xb4
mov dword [esp + 0x59], 0
mov word [esp + 0x5d], 0
mov ebx, 0x2a
mov edx, 0x90c7b3d5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebx - 0xe]
mov ecx, eax
not ecx
mov edi, ecx
or edi, 0xc8
add eax, edi
inc eax
mov edi, edx
xor edi, 0xc8
mov ebp, edx
or ebp, 0x37
and ebp, edi
mov edi, ebx
and edi, 0xc8
or edi, ebp
and ecx, 0x37
or ecx, eax
xor ecx, edi
add cl, 0x2e
mov byte [esp + ebx - 0xe], cl
inc ebx
dec edx
cmp ebx, 0x6d
jne 0x40d5e0
mov eax, dword [esp + 0x74]
add eax, dword [esp + 0x14]
movzx ecx, byte [esp + 0x1c]
mov edi, eax
test cl, cl
je 0x40d64b
lea ebx, [esp + 0x1d]
mov edi, eax
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x40d640
mov byte [edi], 0
movzx ecx, byte [esi]
test cl, cl
mov edx, dword [esp + 0x7c]
je 0x40d66b
inc esi
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40d660
mov byte [edi], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x40d68b
lea esi, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40d680
mov byte [edi], 0
movzx ecx, byte [edx]
test cl, cl
je 0x40d6ab
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d6a0
mov byte [edi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40d6cb
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d6c0
mov byte [edi], 0
sub edi, eax
mov eax, dword [esp + 0x18]
add dword [eax + 0x60], edi
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 0xc