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, 0xa0
cmp dword [ecx + 0x20], 0
je 0x40dfff
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0x9c]
push 0xa
push 4
push ecx
push eax
call fcn.0040e010
add esp, 0x10
mov ebx, eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a7b0
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.0040c8d0
add esp, 4
mov edi, eax
mov dword [esp + 0x10], 0xd05120c
mov byte [esp + 0x14], 0x68
mov dword [esp + 0x15], 0
mov dword [esp + 0x18], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xe7
xor cl, byte [esp + eax + 0x10]
add cl, 0x7d
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xc
jne 0x40db70
lea eax, [esp + 0x10]
mov ecx, esi
push 0x44f8a4
push eax
push edi
call fcn.0040d450
mov dword [esp + 0x10], 0x33aea8a0
mov eax, 0x4c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3c]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x84
mov byte [esp + eax - 0x3c], cl
inc eax
cmp eax, 0x50
jne 0x40dbb0
mov ecx, esi
push ebx
lea eax, [esp + 0x14]
push eax
push edi
call fcn.0040d450
mov eax, dword [str.hRjzG3__BEX]
mov dword [esp + 0x10], 0xc9565c58
mov byte [esp + 0x14], 0
mov ecx, 0x6c0885b3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x6c0885a3]
xor edx, ecx
add edx, 0xfcf7a701
mov ebx, edx
xor ebx, 0x19224381
and edx, 0xe0002c7e
add edx, edx
sub edx, ebx
mov ebx, edx
and ebx, 1
xor edx, 1
lea edx, [edx + ebx*2]
mov byte [esp + ecx - 0x6c0885a3], dl
inc ecx
cmp ecx, 0x6c0885b8
jne 0x40dc00
mov ecx, esi
push eax
lea eax, [esp + 0x14]
push eax
push edi
call fcn.0040d450
mov dword [esp + 0x10], 0xd5d8d0c1
mov dword [esp + 0x14], 0xc8ddd4e9
mov dword [esp + 0x18], 0xdadbdcc9
mov byte [esp + 0x1c], 0x40
mov dword [esp + 0x1d], 0
mov word [esp + 0x21], 0
mov eax, 0xbd421473
mov ecx, 0x8c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x42bdeb9d]
mov ebx, eax
or ebx, edx
not edx
or edx, ecx
and edx, ebx
mov ebx, edx
and ebx, 1
or edx, 1
add edx, ebx
add dl, 0xc0
mov byte [esp + eax + 0x42bdeb9d], dl
inc eax
dec ecx
cmp eax, 0xbd421486
jne 0x40dc90
mov dword [esp], 0x37ba4659
mov eax, 0xd02cfa36
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x2fd305ca]
xor ecx, eax
lea ebx, [ecx + ecx]
mov ebp, ebx
and ebp, 0xe2
and ebx, 0x801831e2
mov edx, ebx
neg edx
add edx, ecx
add edx, 0xef1f1cf1
sub ecx, ebx
add ecx, ebp
add ecx, 0xef1f1cf1
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax + 0x2fd305ca], cl
inc eax
cmp eax, 0xd02cfa3a
jne 0x40dcd0
mov edx, esp
mov ecx, esi
lea eax, [esp + 0x10]
push eax
push edx
mov dword [esp + 0x14], edi
push edi
call fcn.0040d450
mov dword [esp + 0x10], 0x7a727072
mov byte [esp + 0x14], 0x9c
mov dword [esp + 0x15], 0
mov dword [esp + 0x18], 0
mov edi, 0xf5000fda
mov ecx, 0xafff025
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi + 0xafff036]
mov ebp, ecx
and ebp, 0x23a4012
mov edx, ecx
not edx
mov eax, edi
and eax, 0xa1000a2d
or eax, ebp
and edx, 0x2d
or edx, eax
xor edx, ebx
mov eax, edx
not eax
xor edx, 0x563a45d2
lea ebx, [edx + 0x36ffb0bd]
and eax, 1
mov ebp, ebx
and ebp, 0xfe
xor ebx, 1
add eax, edx
add eax, 0x36ffb0bd
add eax, ebx
sub eax, ebp
mov byte [esp + edi + 0xafff036], al
inc edi
dec ecx
cmp edi, 0xf5000fe6
jne 0x40dd60
mov ecx, esi
push dword [esp + 0x98]
push dword [esp + 0x98]
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x18]
call fcn.0040d6f0
mov eax, dword [esi + 0x60]
mov dword [esp + 0x10], 0x1fad195f
mov dword [esp + 0x14], 0x63d61dae
mov dword [esp + 0x18], 0x67d461c5
mov dword [esp + 0x1c], 0x6b0765d0
mov dword [esp + 0x20], 0x6fd7693c
mov dword [esp + 0x24], 0x73d76ddc
mov dword [esp + 0x28], 0x7716710e
mov dword [esp + 0x2c], 0x7bcf75d9
mov dword [esp + 0x30], 0x7fca79d4
mov dword [esp + 0x34], 0x43f27dd5
mov dword [esp + 0x38], 0x47f041e1
mov dword [esp + 0x3c], 0x4b3945f0
mov dword [esp + 0x40], 0x4ffd49e2
mov dword [esp + 0x44], 0x53ff4dfa
mov dword [esp + 0x48], 0x57f2513d
mov dword [esp + 0x4c], 0x5bee55f5
mov dword [esp + 0x50], 0x5f2159f9
mov dword [esp + 0x54], 0xa3045d3c
mov dword [esp + 0x58], 0xa713a113
mov dword [esp + 0x5c], 0xab0ea516
mov dword [esp + 0x60], 0xaf18a909
mov dword [esp + 0x64], 0xb3cfad15
mov dword [esp + 0x68], 0xb713b116
mov dword [esp + 0x6c], 0xbbcfb5cc
mov dword [esp + 0x70], 0xbf1bb91c
mov dword [esp + 0x74], 0x832bbdc9
mov dword [esp + 0x78], 0x87228130
mov dword [esp + 0x7c], 0x8b2d8537
mov dword [esp + 0x80], 0x8f2b8921
mov dword [esp + 0x84], 0x93248d3a
mov dword [esp + 0x88], 0x97e79135
mov dword [esp + 0x8c], 0x9b949599
mov dword [esp + 0x90], 0x9998
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x10]
mov edi, ecx
and edi, 0xf6
xor edi, 0xafaed6f6
mov ebx, ecx
and ebx, 9
sub ebx, edi
mov edi, 0xcf
sub edi, ebx
add ebx, 0xbfa28330
xor edi, ebx
and edi, edx
xor edi, ebx
mov edx, edi
and edx, 0x5d
xor edi, 0xdd
lea edx, [edi + edx*2]
inc dl
mov byte [esp + ecx + 0x10], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0x84
jb 0x40df00
mov dword [esp], 0xb7d789db
mov dword [esp + 4], 0xb3dbb524
mov dword [esp + 8], 0xb1b0
mov ecx, 0x664c1e
mov edx, 0xbf99b3e1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, edx
xor edi, 0x2ac7851b
mov ebp, edx
or ebp, 0x951832e4
and ebp, edi
mov edi, ecx
and edi, 0x46041b
mov ebx, ebp
xor ebx, edi
not edi
and edi, ebp
add ebx, ebp
sub ebx, edi
xor bl, byte [esp + ecx - 0x664c1e]
xor bl, 0xe4
add bl, 0x6a
mov byte [esp + ecx - 0x664c1e], bl
inc ecx
dec edx
cmp ecx, 0x664c2a
jne 0x40df80
push 0x493e0
push eax
mov edi, dword [esp + 0x14]
push edi
push 0
push 0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00410430
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040c8e0
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e001
mov bl, 1
mov eax, ebx
add esp, 0xa0
pop esi
pop edi
pop ebx
pop ebp
ret