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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa0
cmp dword [ecx + 0x20], 0
je 0x40db5b
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0x9c]
push 0xa
push 4
push ecx
push eax
call fcn.0040db70
add esp, 0x10
mov ebp, eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a410
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040c560
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x10], 0xebd7c2d0
mov byte [esp + 0x14], 0x4c
mov dword [esp + 0x15], 0
mov byte [esp + 0x19], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x72
xor cl, byte [esp + eax + 0x10]
add cl, 0xc6
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xa
jne 0x40d770
lea eax, [esp + 0x10]
mov ecx, esi
push 0x44e51c
push eax
push dword [esp + 8]
call fcn.0040d0d0
mov dword [esp + 0x10], 0x13aea8a0
mov dword [esp + 0x14], 0
mov edx, 0x7c
movzx eax, byte [esp + edx - 0x6c]
mov ebx, eax
mov edi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, edi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x94
mov byte [esp + edx - 0x6c], al
inc edx
cmp edx, 0x84
jne 0x40d7b0
mov ecx, esi
push ebp
lea eax, [esp + 0x14]
push eax
push dword [esp + 8]
call fcn.0040d0d0
mov eax, dword [str.tLYMe5__2]
mov dword [esp + 0x10], 0xcf6a5054
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
xor ecx, ecx
xor edx, edx
nop
movzx edi, byte [esp + edx + 0x10]
mov ebx, ecx
and ebx, 4
mov ebp, edx
xor ebp, 0xe1a45f32
add ebp, ebx
mov ebx, ebp
and ebx, edi
add ebx, ebx
add ebp, edi
mov edi, ebp
not edi
and edi, ebx
not ebx
and ebx, ebp
sub ebx, edi
add bl, 6
mov byte [esp + edx + 0x10], bl
inc edx
add ecx, 2
cmp edx, 7
jne 0x40d820
mov ecx, esi
push eax
lea eax, [esp + 0x14]
push eax
mov ebp, dword [esp + 8]
push ebp
call fcn.0040d0d0
mov dword [esp + 0x10], 0x15e810e1
mov dword [esp + 0x14], 0xf80df419
mov dword [esp + 0x18], 0xa0b0cf9
mov byte [esp + 0x1c], 0x60
mov dword [esp + 0x1d], 0
mov dword [esp + 0x20], 0
mov eax, 0x20afc76b
mov ecx, 0xdf503894
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x20afc75b]
mov edi, eax
and edi, edx
add edi, edi
sub edi, edx
add edi, ecx
lea ebx, [eax - 0x20afc700]
and ebx, edi
add bl, bl
sub dl, bl
movzx edx, dl
add edx, eax
add dl, 0xe9
mov byte [esp + eax - 0x20afc75b], dl
inc eax
dec ecx
cmp eax, 0x20afc77f
jne 0x40d8b0
mov dword [esp + 4], 0x99667673
xor eax, eax
mov ecx, 0xdb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
shr edx, 1
mov edi, eax
not edi
mov ebx, eax
and ebx, 1
neg ebx
and ebx, edi
and ebx, 2
mov edi, eax
or edi, 2
imul edi, edx
lea edx, [ebx + edi*2]
add edx, ecx
xor dl, byte [esp + eax + 4]
add dl, 0xb9
mov byte [esp + eax + 4], dl
inc eax
dec ecx
cmp eax, 4
jne 0x40d900
lea edi, [esp + 4]
mov ecx, esi
lea eax, [esp + 0x10]
push eax
push edi
push ebp
call fcn.0040d0d0
mov dword [esp + 0x10], 0xd6c2c4da
mov byte [esp + 0x14], 0x70
mov dword [esp + 0x15], 0
mov byte [esp + 0x19], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x95
xor cl, byte [esp + eax + 0x10]
add cl, 0x17
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xa
jne 0x40d970
mov ecx, esi
push dword [esp + 0x98]
push dword [esp + 0x98]
lea eax, [esp + 0x18]
push eax
push ebp
call fcn.0040d330
mov eax, dword [esi + 0x60]
mov dword [esp + 0x10], 0x97059927
mov dword [esp + 0x14], 0x931e9506
mov dword [esp + 0x18], 0x8f1c910d
mov dword [esp + 0x1c], 0x8bdf8d00
mov dword [esp + 0x20], 0x870f8924
mov dword [esp + 0x24], 0x831f8514
mov dword [esp + 0x28], 0xff9e81c6
mov dword [esp + 0x2c], 0xfb77fd69
mov dword [esp + 0x30], 0xf77af96c
mov dword [esp + 0x34], 0xf362f56d
mov dword [esp + 0x38], 0xef60f151
mov dword [esp + 0x3c], 0xebb9ed60
mov dword [esp + 0x40], 0xe775e972
mov dword [esp + 0x44], 0xe377e56a
mov dword [esp + 0x48], 0xdf42e1b5
mov dword [esp + 0x4c], 0xdb56dd7d
mov dword [esp + 0x50], 0xd791d979
mov dword [esp + 0x54], 0xd34cd5b4
mov dword [esp + 0x58], 0xcf43d143
mov dword [esp + 0x5c], 0xcb56cd5e
mov dword [esp + 0x60], 0xc748c969
mov dword [esp + 0x64], 0xc387c54d
mov dword [esp + 0x68], 0x3fa3c15e
mov dword [esp + 0x6c], 0x3b773d74
mov dword [esp + 0x70], 0x37ab39a4
mov dword [esp + 0x74], 0x33ab3579
mov dword [esp + 0x78], 0x2fb231a0
mov dword [esp + 0x7c], 0x2bb52dbf
mov dword [esp + 0x80], 0x27bb29b1
mov dword [esp + 0x84], 0x23ac25aa
mov dword [esp + 0x88], 0x1f4f21bd
mov dword [esp + 0x8c], 0x1b6c1d69
mov dword [esp + 0x90], 0x1918
xor ecx, ecx
nop
nop
nop
mov edx, ecx
add dl, 0x26
xor dl, byte [esp + ecx + 0x10]
add dl, 0x42
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0x84
jne 0x40dac0
mov dword [esp + 4], 0x218527d5
mov dword [esp + 8], 0x3d992390
mov dword [esp + 0xc], 0x3f3c
mov ecx, 0x3f7b06c9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x3f7b06c5]
mov edx, ebx
and edx, ecx
add dl, dl
sub bl, dl
movzx edx, bl
add edx, ecx
add dl, 0x13
mov byte [esp + ecx - 0x3f7b06c5], dl
inc ecx
cmp ecx, 0x3f7b06d5
jne 0x40db00
push 0x493e0
push eax
push ebp
push 0
push 0
lea eax, [esp + 0x24]
push eax
push edi
call fcn.004104c0
add esp, 0x1c
mov ebx, eax
push ebp
call fcn.0040c570
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40db5d
mov bl, 1
mov eax, ebx
add esp, 0xa0
pop esi
pop edi
pop ebx
pop ebp
ret