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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb0
cmp dword [ecx + 0x20], 0
je 0x40e563
mov edi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xac]
push 0xa
push 4
push ecx
push eax
call fcn.0040e580
add esp, 0x10
mov ebx, eax
lea eax, [edi + 0x10]
push eax
call fcn.0040ad10
add esp, 4
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040ce80
add esp, 4
mov ebp, eax
mov dword [esp + 0x1c], 0x1b176210
mov byte [esp + 0x20], 0xfc
mov dword [esp + 0x21], 0
mov word [esp + 0x25], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
and ecx, 8
mov edx, eax
and edx, 2
mov esi, edx
xor esi, 2
imul esi, ecx
or ecx, 2
imul ecx, edx
mov edx, eax
xor edx, 0x2a
add edx, esi
add edx, ecx
xor dl, byte [esp + eax + 0x1c]
add dl, 0x2e
mov byte [esp + eax + 0x1c], dl
inc eax
cmp eax, 0xb
jne 0x40e030
lea eax, [esp + 0x1c]
mov ecx, edi
push 0x44f9c8
push eax
push ebp
call fcn.0040d9a0
mov dword [esp + 0x1c], 0x13aea8a0
mov word [esp + 0x20], 0
mov eax, 0xe876baf9
mov ecx, 0xd0ed75f2
nop
nop
nop
mov esi, eax
xor esi, 0x3d
mov edx, ecx
and edx, 0x84
sub edx, esi
xor dl, byte [esp + eax + 0x17894523]
add dl, 0x54
mov byte [esp + eax + 0x17894523], dl
inc eax
add ecx, 2
cmp eax, 0xe876baff
jne 0x40e090
mov dword [esp + 4], edi
mov ecx, edi
push ebx
lea eax, [esp + 0x20]
push eax
mov dword [esp + 8], ebp
push ebp
call fcn.0040d9a0
mov eax, dword [str.YtvEEK__]
mov dword [esp + 8], eax
mov dword [esp + 0x1c], 0xff1a1014
mov byte [esp + 0x20], 0
xor edx, edx
mov ecx, 0xffffffff
nop
nop
movzx eax, byte [esp + edx + 0x1c]
mov esi, ecx
or esi, 0xd4925e2a
add esi, edx
inc esi
mov edi, esi
and edi, 0xfffffffd
mov ebx, esi
and ebx, 2
or esi, 2
imul esi, ebx
xor ebx, 2
imul ebx, edi
mov edi, edx
xor edi, 0xd4925e2a
add edi, esi
add edi, ebx
mov ebp, edi
or ebp, eax
lea ebx, [edi + eax]
not ebx
add ebx, ebp
and edi, eax
and edi, 0x60
and ebx, 0xdce2079f
or ebx, edi
mov edi, ebx
xor edi, 0xdce2079f
add ebx, ebx
xor ebx, 0xb9c40f3f
sub edi, ebx
and edi, ebp
mov eax, edi
and eax, 0xd924292d
xor edi, 0xd924292d
lea eax, [edi + eax*2]
mov esi, eax
xor esi, 1
add esi, eax
and eax, 0xfe
mov ebx, esi
sub ebx, eax
and edi, 1
and esi, edi
xor ebx, edi
lea eax, [ebx + esi*2]
mov byte [esp + edx + 0x1c], al
inc edx
dec ecx
cmp edx, 5
jne 0x40e0f0
mov ecx, dword [esp + 4]
push dword [esp + 8]
lea eax, [esp + 0x20]
push eax
push dword [esp + 8]
call fcn.0040d9a0
mov dword [esp + 0x1c], 0xb5a8b0a1
mov dword [esp + 0x20], 0xd8cdd4b9
mov dword [esp + 0x24], 0xcacbccd9
mov byte [esp + 0x28], 0x60
mov dword [esp + 0x29], 0
mov dword [esp + 0x2c], 0
xor ecx, ecx
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x1c]
lea esi, [eax + 1]
or esi, 0xf119833b
mov edi, ecx
or edi, 0xf119833b
add edi, esi
lea esi, [ecx + edi]
inc esi
mov ebx, eax
sub ebx, edi
xor ebx, esi
and ebx, edx
xor ebx, esi
add bl, 0xd9
mov byte [esp + ecx + 0x1c], bl
lea edx, [ecx + 1]
dec eax
mov ecx, edx
cmp edx, 0x14
jne 0x40e1e0
mov dword [esp + 0xc], 0x118a7a7f
mov word [esp + 0x10], 0
mov eax, 0xed048085
mov edx, 0xed048086
mov ecx, 0x12fb7f7a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], ecx
movzx ebp, byte [esp + eax + 0x12fb7f87]
mov esi, eax
xor esi, ebp
lea ebx, [esi + esi]
not ebx
add ebx, esi
or ebx, ecx
lea esi, [eax + ebx]
inc esi
mov ecx, esi
and ecx, 0xfffffffd
mov edi, esi
or edi, 0xfffffffd
inc edi
imul edi, ecx
or esi, 2
add edi, ebp
add ebx, edx
shr ebx, 1
and ebx, 1
imul ebx, esi
add ebx, ebx
sub edi, ebx
lea ebx, [eax + edi]
add ebx, 0x5ee97d66
mov ecx, ebx
xor ecx, 0xfffffffe
mov ebp, ebx
or ebp, 1
and ebp, ecx
mov ecx, ebp
and ecx, 2
mov esi, ebp
or ebp, 2
imul ebp, ecx
xor ecx, 2
and esi, 0xfd
imul esi, ecx
mov ecx, dword [esp + 8]
xor ebx, 1
add ebx, ebp
add ebx, esi
mov byte [esp + eax + 0x12fb7f87], bl
inc eax
inc edx
dec ecx
cmp eax, 0xed04808b
jne 0x40e240
lea edi, [esp + 0xc]
mov esi, dword [esp + 4]
mov ecx, esi
lea eax, [esp + 0x1c]
push eax
push edi
mov ebx, dword [esp + 8]
push ebx
call fcn.0040d9a0
mov dword [esp + 0x1c], 0x7682847a
mov byte [esp + 0x20], 0x10
mov dword [esp + 0x21], 0
mov word [esp + 0x25], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x85
xor cl, byte [esp + eax + 0x1c]
add cl, 0x67
mov byte [esp + eax + 0x1c], cl
inc eax
cmp eax, 0xb
jne 0x40e310
mov ecx, esi
push dword [esp + 0xa8]
push dword [esp + 0xa8]
lea eax, [esp + 0x24]
push eax
push ebx
call fcn.0040dbc0
mov eax, dword [esi + 0x60]
mov dword [esp + 0x1c], 0xf345f1b3
mov dword [esp + 0x20], 0xff42fd4a
mov dword [esp + 0x24], 0xfb4cf955
mov dword [esp + 0x28], 0xc7b3c578
mov dword [esp + 0x2c], 0xc37bc19c
mov dword [esp + 0x30], 0xcf63cd7c
mov dword [esp + 0x34], 0xcbaac9b2
mov dword [esp + 0x38], 0xd76bd561
mov dword [esp + 0x3c], 0xd36ed164
mov dword [esp + 0x40], 0xdf6edd75
mov dword [esp + 0x44], 0xdb68d979
mov dword [esp + 0x48], 0x27512598
mov dword [esp + 0x4c], 0x2395218e
mov dword [esp + 0x50], 0x2f9b2d9e
mov dword [esp + 0x54], 0x2b86295d
mov dword [esp + 0x58], 0x378a3595
mov dword [esp + 0x5c], 0x33493191
mov dword [esp + 0x60], 0x3f9c3d5c
mov dword [esp + 0x64], 0x3b87398f
mov dword [esp + 0x68], 0x7aa05b2
mov dword [esp + 0x6c], 0x3b001a1
mov dword [esp + 0x70], 0xf4b0db5
mov dword [esp + 0x74], 0xba709aa
mov dword [esp + 0x78], 0x176b156c
mov dword [esp + 0x7c], 0x13bf11bc
mov dword [esp + 0x80], 0x1fb71d61
mov dword [esp + 0x84], 0x1bb619a8
mov dword [esp + 0x88], 0x67c565d3
mov dword [esp + 0x8c], 0x63cf61c9
mov dword [esp + 0x90], 0x6fdc6dde
mov dword [esp + 0x94], 0x6b1b69c5
mov dword [esp + 0x98], 0x777c7561
mov word [esp + 0x9c], 0x7170
mov byte [esp + 0xa2], 0
mov dword [esp + 0x9e], 0
mov ecx, 0x571d88d4
mov edx, 0x2b
movzx esi, byte [esp + ecx - 0x571d88b8]
mov ebx, edx
xor ebx, ecx
and ebx, esi
xor ebx, ecx
mov esi, ebx
not esi
mov ebp, ebx
and ebp, 0x5b
xor ebx, 0xda
lea ebx, [ebx + ebp*2]
and esi, 1
or ebx, 1
add ebx, esi
mov byte [esp + ecx - 0x571d88b8], bl
inc ecx
dec edx
cmp ecx, 0x571d895b
jne 0x40e480
mov dword [esp + 0xc], 0xf15dff8d
mov dword [esp + 0x10], 0xf549f340
mov word [esp + 0x14], 0xf7f4
mov dword [esp + 0x16], 0
mov esi, 0x15
mov edx, 0xaa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + esi - 9]
mov ebx, ecx
not ebx
mov ebp, ebx
and ebp, 0xe3
or ebx, 0x1c
add ebx, ecx
inc ebx
or ebx, ebp
mov ebp, edx
and ebp, 0xa3
mov ecx, esi
and ecx, 0x1c
or ecx, ebp
xor ecx, ebx
add cl, 0x57
mov byte [esp + esi - 9], cl
inc esi
dec edx
cmp esi, 0x23
jne 0x40e4f0
push 0x493e0
push eax
mov esi, dword [esp + 8]
push esi
push 0
push 0
lea eax, [esp + 0x30]
push eax
push edi
call fcn.00410a90
add esp, 0x1c
mov ebx, eax
push esi
call fcn.0040ce90
add esp, 4
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x60]
add dword [ecx + 4], eax
mov dword [ecx + 0x60], 0
jmp 0x40e565
mov bl, 1
mov eax, ebx
add esp, 0xb0
pop esi
pop edi
pop ebx
pop ebp
ret