Function at 0x40dae0
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 0x40e052
movzx eax, byte [ecx]
mov esi, ecx
lea ecx, [esp + 0xac]
push 0xa
push 4
push ecx
push eax
call fcn.0040e070
add esp, 0x10
mov dword [esp + 0xa4], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a980
add esp, 4
mov ecx, dword [esi + 0x10]
mov dword [esp + 8], esi
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xa8], eax
mov dword [esp + 4], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040cad0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x1c], 0x477b7678
mov byte [esp + 0x20], 0xe4
mov word [esp + 0x21], 0
mov byte [esp + 0x23], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x1c]
mov ebp, edx
not ebp
mov esi, eax
and esi, 0xc
mov edi, ecx
xor edi, 0x3fe4a63e
lea ebx, [esi + edi]
add esi, edi
add esi, 0x53e2f41a
and ebp, 0x96
mov edi, esi
or edi, 0x6fc1ef96
sub edi, ebx
add edi, 0xac1d0be6
and esi, 0x90061069
or esi, edi
xor edx, 0x6fc1ef96
or edx, ebp
xor edx, esi
mov esi, edx
and esi, 0x47
xor edx, 0x47
lea edx, [edx + esi*2]
inc dl
mov byte [esp + ecx + 0x1c], dl
inc ecx
add eax, 2
cmp ecx, 8
jne 0x40db70
lea eax, [esp + 0x1c]
mov ecx, dword [esp + 8]
push 0x450bec
push eax
push dword [esp + 8]
call fcn.0040d500
mov dword [esp + 0x1c], 0xff1a1068
mov eax, 0x646f83aa
mov ecx, 0x9b907c55
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x646f838e]
mov ebp, eax
and ebp, edx
add ebp, ebp
mov esi, ebp
sub esi, edx
add esi, ecx
or esi, 0x9d26dad
add esi, edx
sub edx, ebp
add edx, eax
sub esi, ebp
lea edi, [eax + esi]
inc edi
mov esi, edi
and esi, 0xfd
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
xor ebx, 2
imul ebx, esi
xor edx, 0xad
add edx, edi
add edx, ebx
inc dl
mov byte [esp + eax - 0x646f838e], dl
inc eax
dec ecx
cmp eax, 0x646f83ae
jne 0x40dc00
mov ebp, dword [esp + 8]
mov ecx, ebp
push dword [esp + 0xa4]
lea eax, [esp + 0x20]
push eax
push dword [esp + 8]
call fcn.0040d500
mov eax, dword [str.BVnUqo___BrunoAgazzi]
mov dword [esp + 0x1c], 0x11fa8480
mov word [esp + 0x20], 0
mov byte [esp + 0x22], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xc5
xor dl, byte [esp + ecx + 0x1c]
add dl, 0x27
mov byte [esp + ecx + 0x1c], dl
inc ecx
cmp ecx, 7
jne 0x40dca0
mov ecx, ebp
push eax
lea eax, [esp + 0x20]
push eax
push dword [esp + 8]
call fcn.0040d500
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 byte [esp + 0x2d], 0
mov eax, 0x583e21bb
mov ecx, 0x44
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x583e219f]
lea esi, [ecx - 0x583e2200]
and esi, 0xa1401e72
mov edi, eax
and edi, 0x5818210d
or edi, esi
xor edi, edx
xor edi, 0xa1661ef2
lea esi, [eax - 0x583e2100]
and esi, edx
or esi, edi
not edx
or edx, ecx
and edx, esi
mov esi, edx
not esi
or esi, 0x58
mov edi, edx
and edi, 0xa7
mov ebx, edx
xor ebx, 0x58
add ebx, esi
sub ebx, edi
lea edx, [ebx + edx*2]
add dl, 2
mov byte [esp + eax - 0x583e219f], dl
inc eax
dec ecx
cmp eax, 0x583e21cd
jne 0x40dd00
mov dword [esp + 0xc], 0xb11a6a6f
mov byte [esp + 0x10], 0
mov eax, 0xe2dd7d5d
mov ecx, 0x22
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x1d2282af]
mov ebx, edx
xor ebx, eax
or ebx, ecx
add bl, bl
add bl, dl
movzx edx, bl
add edx, eax
add dl, 0x31
mov byte [esp + eax + 0x1d2282af], dl
inc eax
dec ecx
cmp eax, 0xe2dd7d62
jne 0x40dd80
lea edx, [esp + 0xc]
mov ecx, ebp
lea eax, [esp + 0x1c]
push eax
push edx
push dword [esp + 8]
call fcn.0040d500
mov dword [esp + 0x1c], 0xc6beb8c6
mov byte [esp + 0x20], 0x24
mov dword [esp + 0x21], 0
mov dword [esp + 0x24], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0xf8
xor cl, byte [esp + eax + 0x1c]
add cl, 0x28
mov byte [esp + eax + 0x1c], cl
inc eax
cmp eax, 0xc
jne 0x40dde0
mov ecx, ebp
push dword [esp + 4]
push dword [esp + 0xac]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0xc]
call fcn.0040d720
mov eax, dword [ebp + 0x60]
mov dword [esp + 4], eax
mov dword [esp + 0x1c], 0x37c539e7
mov dword [esp + 0x20], 0x33be35c6
mov dword [esp + 0x24], 0xcf3c31cd
mov dword [esp + 0x28], 0xcbffcd40
mov dword [esp + 0x2c], 0xc74fc924
mov dword [esp + 0x30], 0xc33fc534
mov dword [esp + 0x34], 0xdffec106
mov dword [esp + 0x38], 0xdb57dd29
mov dword [esp + 0x3c], 0xd75ad92c
mov dword [esp + 0x40], 0xd322d52d
mov dword [esp + 0x44], 0xef60d131
mov dword [esp + 0x48], 0xebd9ed60
mov dword [esp + 0x4c], 0xe715e912
mov dword [esp + 0x50], 0xe317e56a
mov dword [esp + 0x54], 0xff02e1d5
mov dword [esp + 0x58], 0xfb76fd1d
mov dword [esp + 0x5c], 0xf731f919
mov dword [esp + 0x60], 0xf30cf5d4
mov dword [esp + 0x64], 0x8f03f103
mov dword [esp + 0x68], 0x8b768d7e
mov dword [esp + 0x6c], 0x87088969
mov dword [esp + 0x70], 0x8347850d
mov dword [esp + 0x74], 0x9f63817e
mov dword [esp + 0x78], 0x9b579d54
mov dword [esp + 0x7c], 0x976b9964
mov dword [esp + 0x80], 0x936b9559
mov dword [esp + 0x84], 0xaf529160
mov dword [esp + 0x88], 0xab55ad5f
mov dword [esp + 0x8c], 0xa75ba951
mov dword [esp + 0x90], 0xa32ca52a
mov dword [esp + 0x94], 0xbf8fa15d
mov dword [esp + 0x98], 0xbbacbda9
mov word [esp + 0x9c], 0xb9b8
mov dword [esp + 0x9e], 0
mov ecx, 0xb7475076
mov edx, 0x48b8afd8
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x48b8afa6]
mov ebp, ecx
and ebp, ebx
mov eax, ebp
and eax, 0xfffffffd
mov esi, ebp
and esi, 2
mov edi, ebp
or edi, 0xfffffffd
inc edi
imul edi, eax
or ebp, 2
imul ebp, esi
lea eax, [ecx + ebx]
lea esi, [edi + ebx]
sub esi, ebp
add esi, ecx
add esi, 0xb1
not eax
and eax, 1
sub ebp, edi
sub ebp, ebx
add ebp, edx
and ebp, 0x42
and esi, 0xbd
or esi, ebp
xor esi, 0x43
lea eax, [esi + eax*2]
mov byte [esp + ecx + 0x48b8afa6], al
inc ecx
dec edx
cmp ecx, 0xb74750fc
jne 0x40df50
mov dword [esp + 0xc], 0xc165c715
mov dword [esp + 0x10], 0xcd69c350
mov dword [esp + 0x14], 0xcfcc
mov byte [esp + 0x18], 0
mov ecx, 0xd20830b1
mov edx, 0x2df7cf4e
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x2df7cf5b]
mov eax, ecx
and eax, esi
add eax, eax
lea edi, [ecx + esi]
mov ebx, edx
sub ebx, esi
and ebx, eax
not eax
and eax, edi
sub eax, ebx
add al, 0x8b
mov byte [esp + ecx + 0x2df7cf5b], al
inc ecx
dec edx
cmp ecx, 0xd20830be
jne 0x40dfe0
push 0x493e0
push dword [esp + 8]
mov esi, dword [esp + 8]
push esi
push 0
push 0
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00410760
add esp, 0x1c
mov ebx, eax
push esi
call fcn.0040cae0
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x60]
add dword [ecx + 4], eax
mov dword [ecx + 0x60], 0
jmp 0x40e054
mov bl, 1
mov eax, ebx
add esp, 0xb0
pop esi
pop edi
pop ebx
pop ebp
ret