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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xac
cmp dword [ecx + 0x20], 0
je 0x40e489
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa8]
push 0xa
push 4
push ecx
push eax
call fcn.0040e4a0
add esp, 0x10
mov dword [esp + 0x18], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040abc0
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x1c], eax
mov dword [esp], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040cd60
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x20], 0x757d8274
mov byte [esp + 0x24], 8
mov dword [esp + 0x25], 0
lea eax, [esp + 0x20]
xor edi, edi
xor ebp, ebp
nop
nop
movzx ebx, byte [eax]
mov ecx, edi
and ecx, 0xd50363fa
mov edx, ebp
xor edx, 0x957e4e02
sub edx, ecx
inc edx
mov ecx, ebx
not ecx
or ecx, edx
or edx, ebx
add ecx, ebx
mov ebx, 0xfffffffe
sub ebx, ecx
and ebx, edx
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ecx, [ebx + ecx*2]
add cl, 0xf0
mov byte [eax], cl
inc eax
dec ebp
add edi, 0xfffffffe
cmp ebp, 0xfffffff7
jne 0x40e070
lea eax, [esp + 0x20]
mov ecx, esi
push 0x450c48
push eax
mov edi, dword [esp + 0xc]
push edi
call fcn.0040d9e0
mov dword [esp + 0x20], 0x374a4048
mov byte [esp + 0x24], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x36
xor cl, byte [esp + eax + 0x20]
add cl, 0xf2
mov byte [esp + eax + 0x20], cl
inc eax
cmp eax, 5
jne 0x40e0e0
mov ecx, esi
push dword [esp + 0x18]
lea eax, [esp + 0x24]
push eax
push edi
call fcn.0040d9e0
mov eax, dword [str.BVnUqo___BrunoAgazzi]
mov dword [esp + 0x20], 0xc16a6c50
mov ecx, 0x779d22b1
mov edx, 0x22dd4e
nop
nop
movzx edi, byte [esp + ecx - 0x779d2291]
mov ebp, edx
and ebp, 0x22550a
mov ebx, ecx
and ebx, 0x43800035
or ebx, ebp
xor ebx, edi
mov edi, 1
sub edi, ebx
not edi
or edi, ebx
and edi, 1
xor ebx, 0x8b
lea ebx, [ebx + edi*2]
add bl, 0x8a
mov byte [esp + ecx - 0x779d2291], bl
inc ecx
dec edx
cmp ecx, 0x779d22b5
jne 0x40e120
mov ecx, esi
push eax
lea eax, [esp + 0x24]
push eax
mov ebp, dword [esp + 0xc]
push ebp
call fcn.0040d9e0
mov dword [esp + 0x20], 0x7f847c83
mov dword [esp + 0x24], 0x8c73887b
mov dword [esp + 0x28], 0x7675788b
mov byte [esp + 0x2c], 4
mov dword [esp + 0x2d], 0
mov eax, 0x3210cd84
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3210cd64]
xor ecx, eax
mov edx, ecx
and edx, 0x6b
xor ecx, 0x6b
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x3210cd64], cl
inc eax
cmp eax, 0x3210cd95
jne 0x40e1b0
mov dword [esp + 8], 0x43d6e2e1
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0x70
xor cl, byte [esp + eax + 8]
add cl, 0xd0
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 7
jne 0x40e1f0
lea edx, [esp + 8]
mov ecx, esi
lea eax, [esp + 0x20]
push eax
push edx
push ebp
call fcn.0040d9e0
mov dword [esp + 0x20], 0x9e929c9a
mov byte [esp + 0x24], 0x20
mov word [esp + 0x25], 0
mov byte [esp + 0x27], 0
mov eax, 0x89
mov ecx, 0x76
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x69]
mov edi, ecx
or edi, edx
not edx
or edx, eax
and edx, edi
mov bl, 0x52
sub bl, dl
mov byte [esp + eax - 0x69], bl
inc eax
dec ecx
cmp eax, 0x91
jne 0x40e240
mov ecx, esi
push dword [esp]
push dword [esp + 0x20]
lea eax, [esp + 0x28]
push eax
push ebp
call fcn.0040dc60
mov eax, dword [esi + 0x60]
mov dword [esp], eax
mov dword [esp + 0x20], 0x13a511d3
mov dword [esp + 0x24], 0xef62ed5a
mov dword [esp + 0x28], 0xeb5ce955
mov dword [esp + 0x2c], 0xe713e568
mov dword [esp + 0x30], 0xe36be14c
mov dword [esp + 0x34], 0xff43fd4c
mov dword [esp + 0x38], 0xfb1af932
mov dword [esp + 0x3c], 0xf77bf541
mov dword [esp + 0x40], 0xf37ef144
mov dword [esp + 0x44], 0xcf7ecd75
mov dword [esp + 0x48], 0xcb78c969
mov dword [esp + 0x4c], 0xc731c548
mov dword [esp + 0x50], 0xc375c17e
mov dword [esp + 0x54], 0xdf6bdd6e
mov dword [esp + 0x58], 0xdb66d92d
mov dword [esp + 0x5c], 0xd75ad575
mov dword [esp + 0x60], 0xd319d171
mov dword [esp + 0x64], 0xaf0cad4c
mov dword [esp + 0x68], 0xab27a91f
mov dword [esp + 0x6c], 0xa71aa512
mov dword [esp + 0x70], 0xa310a101
mov dword [esp + 0x74], 0xbf7bbd35
mov dword [esp + 0x78], 0xbb07b91a
mov dword [esp + 0x7c], 0xb77bb57c
mov dword [esp + 0x80], 0xb30fb10c
mov dword [esp + 0x84], 0x8f378d41
mov dword [esp + 0x88], 0x8b368938
mov dword [esp + 0x8c], 0x87258533
mov dword [esp + 0x90], 0x833f8139
mov dword [esp + 0x94], 0x9f2c9d2e
mov dword [esp + 0x98], 0x9b6b9925
mov dword [esp + 0x9c], 0x978c9581
mov word [esp + 0xa0], 0x9190
mov byte [esp + 0xa6], 0
mov dword [esp + 0xa2], 0
mov ebp, 0x7f6fe77c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp - 0x7f6fe75c]
mov ebx, edx
and ebx, ebp
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
add cl, dl
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, ebp
add al, 0x94
mov byte [esp + ebp - 0x7f6fe75c], al
inc ebp
cmp ebp, 0x7f6fe803
jne 0x40e3c0
mov dword [esp + 8], 0x13731147
mov dword [esp + 0xc], 0x1f771d8c
mov word [esp + 0x10], 0x1918
mov dword [esp + 0x12], 0
mov eax, 4
mov ecx, 0xfb
nop
nop
nop
nop
movzx edi, byte [esp + eax + 4]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0xec
mov byte [esp + eax + 4], dl
inc eax
dec ecx
cmp eax, 0x12
jne 0x40e430
push 0x493e0
push dword [esp + 4]
mov edi, dword [esp + 0xc]
push edi
push 0
push 0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00410800
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040cd70
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e48b
mov bl, 1
mov eax, ebx
add esp, 0xac
pop esi
pop edi
pop ebx
pop ebp
ret