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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa8
cmp dword [ecx + 0x20], 0
je 0x40e25e
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa4]
push 0xa
push 4
push ecx
push eax
call fcn.0040e270
add esp, 0x10
mov ebx, eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a8b0
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040ca10
add esp, 4
mov edi, eax
mov dword [esp + 0x20], 0xb0f1200
mov byte [esp + 0x24], 0x94
mov dword [esp + 0x25], 0
mov word [esp + 0x29], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x40dd97
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x20]
lea edx, [ecx + ecx]
and edx, 0xb2e1f84c
sub ecx, edx
add ecx, 0x5970fc26
mov ebp, ecx
and ebp, edx
xor ecx, edx
lea ecx, [ecx + ebp*2]
lea edx, [ecx + eax]
and ecx, eax
add ecx, ecx
sub edx, ecx
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
mov ecx, eax
xor ecx, 0xbe
and eax, 0x41
add eax, eax
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 0x20], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40dd40
lea ebp, [esp + 0x20]
mov ecx, esi
push 0x44f368
push ebp
push edi
call fcn.0040d620
mov dword [esp + 0x20], 0xf9166c6c
mov word [esp + 0x24], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x40de16
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x20]
mov edx, eax
xor edx, 0x1d1bd12b
and eax, 0x1d1bd12b
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov ecx, eax
not ecx
and ecx, 0xd7
and eax, 0x28
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 0x20], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x40ddd0
mov ecx, esi
push ebx
push ebp
push edi
call fcn.0040d620
mov eax, dword [str.tLYMe5__3]
mov dword [esp + 0x20], 0x77cac0cc
mov dword [esp + 0x24], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 7
ja 0x40de80
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0xb9f93e16
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x92
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 8
jb 0x40de50
mov ecx, esi
push eax
push ebp
push edi
call fcn.0040d620
mov dword [esp + 0x20], 0xabdcacdf
mov dword [esp + 0x24], 0xd4a7d0af
mov dword [esp + 0x28], 0xa2dda0d7
mov byte [esp + 0x2c], 0x44
mov dword [esp + 0x2d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x10
ja 0x40df06
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x20]
mov edx, eax
xor edx, 0xa1e43792
and eax, 0x21e43792
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov ecx, eax
xor ecx, 0xda
and eax, 0x25
add eax, eax
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 0x20], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x11
jb 0x40dec0
mov dword [esp + 8], 0x89063633
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40df87
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx edx, byte [esp + eax + 8]
mov ebx, ecx
or ebx, 0xc8a0b11c
mov eax, ecx
not eax
or eax, 0x375f4ee3
and eax, ebx
add ecx, ecx
and ecx, 0x6ebe9dc6
mov ebx, eax
not ebx
add ebx, ecx
and ebx, edx
add ecx, edx
sub eax, ecx
add eax, ebx
not eax
sub eax, ebx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x91
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40df30
lea eax, [esp + 8]
mov ecx, esi
push ebp
push eax
push edi
call fcn.0040d620
mov dword [esp + 0x20], 0x6266649e
mov byte [esp + 0x24], 0xf8
mov dword [esp + 0x25], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40e000
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x20]
mov edx, eax
xor edx, 0xb32c687f
and eax, 0x332c687f
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0x85
mov ecx, dword [esp]
mov byte [esp + ecx + 0x20], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40dfc0
mov ecx, esi
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push ebp
push edi
call fcn.0040d8c0
mov eax, dword [esi + 0x60]
mov dword [esp + 0x20], 0xb7258947
mov dword [esp + 0x24], 0xb32eb526
mov dword [esp + 0x28], 0xbf2cb15d
mov dword [esp + 0x2c], 0xbb6fbd20
mov dword [esp + 0x30], 0xa73fb944
mov dword [esp + 0x34], 0xa34fa534
mov dword [esp + 0x38], 0xaf8ea166
mov dword [esp + 0x3c], 0xab37ad39
mov dword [esp + 0x40], 0x57caa93c
mov dword [esp + 0x44], 0x53c255bd
mov dword [esp + 0x48], 0x5fc051b1
mov dword [esp + 0x4c], 0x5b895dc0
mov dword [esp + 0x50], 0x47d559b2
mov dword [esp + 0x54], 0x43d745da
mov dword [esp + 0x58], 0x4fa24195
mov dword [esp + 0x5c], 0x4bd64dad
mov dword [esp + 0x60], 0x77b149a9
mov dword [esp + 0x64], 0x739c7554
mov dword [esp + 0x68], 0x7fe371e3
mov dword [esp + 0x6c], 0x7b967dee
mov dword [esp + 0x70], 0x67f87999
mov dword [esp + 0x74], 0x63a765fd
mov dword [esp + 0x78], 0x6f83618e
mov dword [esp + 0x7c], 0x6bb76db4
mov dword [esp + 0x80], 0x17fb6984
mov dword [esp + 0x84], 0x13fb15c9
mov dword [esp + 0x88], 0x1ff21180
mov dword [esp + 0x8c], 0x1bf51d8f
mov dword [esp + 0x90], 0x7eb19f1
mov dword [esp + 0x94], 0x39c059a
mov dword [esp + 0x98], 0xfdf01ed
mov dword [esp + 0x9c], 0xb3c0d39
mov dword [esp + 0xa0], 0x908
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x83
ja 0x40e194
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
mov ebp, ecx
xor ebp, 0x52e50f5e
and ecx, 0xd2e50f5e
lea ecx, [ecx*2]
add ecx, ebp
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x2a
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x84
jb 0x40e150
mov dword [esp + 8], 0x89358b7d
mov dword [esp + 0xc], 0x85318738
mov dword [esp + 0x10], 0x8384
mov byte [esp + 0x14], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xc
ja 0x40e227
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
mov ebp, ecx
xor ebp, 0x31bd87e3
mov ebx, ecx
xor ebx, 0x4e42781c
or ecx, 0x31bd87e3
and ecx, ebx
lea ecx, [ecx*2]
add ecx, ebp
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
mov edx, ecx
xor edx, 0x6f
and ecx, 0x10
add ecx, ecx
sub ecx, edx
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xd
jb 0x40e1d0
push 0x493e0
push eax
push edi
push 0
push 0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00410af0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040ca20
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e260
mov bl, 1
mov eax, ebx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret