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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x150
mov ecx, dword [str.default]
mov byte [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0xfb3763e0
mov dword [esp + 0xcc], 0
mov eax, dword [esp + 0xcc]
cmp eax, 0x10
ja 0x40cab6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0xcc]
movzx esi, byte [esp + eax + 0x40]
lea edi, [edx + 0x7f]
and edi, esi
mov eax, 0x55614d80
sub eax, edx
or eax, esi
not eax
add eax, esi
sub eax, edi
mov edx, eax
or edx, 0x86
and eax, 0x86
add eax, edx
inc al
mov edx, dword [esp + 0xcc]
mov byte [esp + edx + 0x40], al
inc dword [esp + 0xcc]
mov eax, dword [esp + 0xcc]
cmp eax, 0x11
jb 0x40ca60
mov edx, dword [str.LPnhqo___ethinformation]
mov dword [esp + 0x10], 0x9ec6bab9
mov dword [esp + 0x14], 0xaea5a8d6
mov dword [esp + 0x18], 0xd6a5acde
mov dword [esp + 0x1c], 0xaedddea1
mov dword [esp + 0x20], 0xd564a4a7
mov dword [esp + 0x24], 0xabb3e799
mov dword [esp + 0x28], 0xe75ca1a6
mov dword [esp + 0x2c], 0x7fbb9195
mov dword [esp + 0xcc], 0
mov eax, dword [esp + 0xcc]
cmp eax, 0x1f
ja 0x40cb70
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0xcc]
mov eax, dword [esp + 0xcc]
movzx edi, byte [esp + eax + 0x10]
lea eax, [esi - 0x3e49bef4]
add esi, 0xc
and esi, edi
or eax, edi
sub eax, esi
mov esi, eax
xor esi, 0xab
and eax, 0x2b
lea eax, [esi + eax*2]
inc al
mov esi, dword [esp + 0xcc]
mov byte [esp + esi + 0x10], al
inc dword [esp + 0xcc]
mov eax, dword [esp + 0xcc]
cmp eax, 0x20
jb 0x40cb20
movzx ebx, byte [esp + 0x10]
lea eax, [esp + 0xcc]
test bl, bl
je 0x40cb9b
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40cb90
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40cbbb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40cbb0
mov byte [eax], 0
movzx edx, byte [esp + 0x40]
test dl, dl
je 0x40cbdb
lea esi, [esp + 0x41]
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40cbd0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40cbfb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40cbf0
mov byte [eax], 0
lea ecx, [esp + 0xcc]
mov dword [esp + 0x40], 0xb30db1f3
mov dword [esp + 0x44], 0xb702b50a
mov dword [esp + 0x48], 0x8b34892d
mov dword [esp + 0x4c], 0x8ff38d38
mov dword [esp + 0x50], 0x830b81d4
mov dword [esp + 0x54], 0x87238534
mov dword [esp + 0x58], 0x9bfa99d2
mov dword [esp + 0x5c], 0x9f2e9d3d
mov dword [esp + 0x60], 0x932e9120
mov dword [esp + 0x64], 0x9735952d
mov dword [esp + 0x68], 0xeb5ee949
mov dword [esp + 0x6c], 0xef51ed55
mov dword [esp + 0x70], 0xe39de15e
mov dword [esp + 0x74], 0xe79be56c
mov dword [esp + 0x78], 0xfb4df94f
mov dword [esp + 0x7c], 0xff83fd4b
mov dword [esp + 0x80], 0xf34df156
mov dword [esp + 0x84], 0xf74bf546
mov dword [esp + 0x88], 0xcb7fc9b5
mov dword [esp + 0x8c], 0xcf72cd7e
mov dword [esp + 0x90], 0xc37cc165
mov dword [esp + 0x94], 0xc779c567
mov dword [esp + 0x98], 0xdb7fd97c
mov dword [esp + 0x9c], 0xdfc3dd78
mov dword [esp + 0xa0], 0xd3d2d1ca
mov word [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
cmp edx, 0x79
ja 0x40cd67
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add dl, 0x98
xor dl, byte [esp + esi + 0x40]
add dl, 0xd8
mov esi, dword [esp + 0x10]
mov byte [esp + esi + 0x40], dl
inc dword [esp + 0x10]
mov edx, dword [esp + 0x10]
cmp edx, 0x7a
jb 0x40cd40
sub eax, ecx
mov dword [esp + 0x10], 0x33ab3567
mov dword [esp + 0x14], 0x2fa731a2
mov word [esp + 0x18], 0x2d2e
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov dword [esp + 0x25], 0
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xc]
cmp edx, 0x18
ja 0x40cdf6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edi, byte [esp + edx + 0x10]
lea edx, [esi - 0xa75f1d7]
add esi, 0x29
or esi, edx
and esi, edi
or edx, edi
sub edx, esi
add dl, 0xe1
mov esi, dword [esp + 0xc]
mov byte [esp + esi + 0x10], dl
inc dword [esp + 0xc]
mov edx, dword [esp + 0xc]
cmp edx, 0x19
jb 0x40cdc0
lea edx, [esp + 0x3c]
lea esi, [esp + 0xc]
lea edi, [esp + 0x40]
lea ebx, [esp + 0x10]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x447828
call fcn.0040ae70
add esp, 0x1c
movzx eax, al
mov eax, dword [eax*4 + 0x43f8e4]
mov ecx, 0xaf9889c5
xor ecx, dword [str.f2eP_f]
add eax, ecx
inc eax
jmp eax
dec esp
inc esp
add byte [ecx - 0x60d7fc0e], al
add ebp, dword [eax]
lahf
add ebp, dword [eax]
lahf
shr dword [ecx], 0xd1
jmp ecx