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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10c
cmp dword [ecx + 0x20], 0
je 0x40a5c3
mov esi, ecx
lea eax, [ecx + 0x10]
push eax
call fcn.00406990
add esp, 4
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], eax
movzx eax, byte [esi]
imul ecx, eax, 0xcd
shr ecx, 0xa
and ecx, 0xfffffffe
lea ecx, [ecx + ecx*4]
sub al, cl
movzx eax, al
movzx eax, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esp + 2], al
mov byte [esp + 3], 0
mov dword [esp + 0xc], edx
lea eax, [edx + 0x400]
push eax
call fcn.00408a60
add esp, 4
mov edi, eax
mov dword [esp + 0x70], 0xbda5d2bc
mov byte [esp + 0x74], 0x58
mov dword [esp + 0x75], 0
mov word [esp + 0x79], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x8f
xor cl, byte [esp + eax + 0x70]
add cl, 0x35
mov byte [esp + eax + 0x70], cl
inc eax
cmp eax, 0xb
jne 0x40a150
lea ebx, [esp + 0x70]
mov ecx, esi
push 0x4482a4
push ebx
push edi
call fcn.004099d0
mov dword [esp + 0x70], 0x89363c3c
mov word [esp + 0x74], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xe3
xor cl, byte [esp + eax + 0x70]
add cl, 0x91
mov byte [esp + eax + 0x70], cl
mov ecx, 3
sub ecx, eax
add eax, 0x1c
and ecx, 0x1b
and eax, 0x24
sub eax, ecx
cmp eax, 6
jb 0x40a190
lea eax, [esp + 2]
mov ecx, esi
push eax
push ebx
mov dword [esp + 0xc], edi
push edi
call fcn.004099d0
mov ebp, dword [str.tLYMe5__1]
mov dword [esp + 0x70], 0x57baa0bc
mov word [esp + 0x74], 0
mov byte [esp + 0x76], 0
xor edx, edx
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x70]
lea edi, [edx + 0x7907c10e]
and edi, eax
add eax, edx
add eax, 0x7907c10e
add edi, edi
sub eax, edi
add al, 0xba
mov byte [esp + edx + 0x70], al
mov eax, edx
xor ecx, 1
add ecx, edx
and edx, 1
and eax, 6
sub ecx, eax
add ecx, edx
mov edx, ecx
cmp ecx, 7
jb 0x40a1f0
mov ecx, esi
push ebp
push ebx
mov edi, dword [esp + 0xc]
push edi
call fcn.004099d0
mov dword [esp + 0x70], 0x75787081
mov dword [esp + 0x74], 0x887d7469
mov dword [esp + 0x78], 0x7a7b7c89
mov dword [esp + 0x7c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x83
xor cl, byte [esp + eax + 0x70]
add cl, 0x71
mov byte [esp + eax + 0x70], cl
inc eax
cmp eax, 0x10
jne 0x40a260
mov dword [esp + 0x10], 0x910a3a3f
mov dword [esp + 0x14], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xe5
xor cl, byte [esp + eax + 0x10]
add cl, 0x87
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 8
jne 0x40a290
lea eax, [esp + 0x10]
mov ecx, esi
push ebx
push eax
push edi
call fcn.004099d0
mov dword [esp + 0x70], 0xb2aeacb6
mov byte [esp + 0x74], 0x18
mov dword [esp + 0x75], 0
mov word [esp + 0x79], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x70]
lea ebp, [eax + 0x3b]
mov ecx, 0xde96eac4
sub ecx, eax
or ecx, edx
mov edi, 0x44
sub edi, eax
mov ebx, 4
sub ebx, eax
and ebx, 0x21
and ebp, 0x5e
or ebp, ebx
xor ebp, 0xde
or ebp, edi
mov edi, edx
not edi
or edi, ebp
add edx, edi
inc edx
not ecx
or ecx, edx
mov edx, ecx
not edx
or edx, 0x58
add edx, ecx
xor ecx, 0xd8
lea ecx, [ecx + edx*2]
add cl, 3
mov byte [esp + eax + 0x70], cl
mov ecx, eax
not ecx
or ecx, 1
add ecx, eax
inc ecx
mov edx, ecx
and edx, 0xfffffffd
mov edi, ecx
and edi, 2
or ecx, 2
imul ecx, edi
xor edi, 2
imul edi, edx
xor eax, 1
add eax, ecx
add eax, edi
cmp eax, 0xb
jb 0x40a2e0
mov ecx, esi
push dword [esp + 0xc]
push dword [esp + 0xc]
lea eax, [esp + 0x78]
push eax
mov ebp, dword [esp + 0x10]
push ebp
call fcn.00409c70
mov dword [esp + 0x10], 0x79eb7b31
mov dword [esp + 0x14], 0x65fa67ea
mov dword [esp + 0x18], 0x61f0630f
mov dword [esp + 0x1c], 0x6d3d6ffc
mov dword [esp + 0x20], 0x69ed6b10
mov dword [esp + 0x24], 0x95fd97f8
mov dword [esp + 0x28], 0x91b293d2
mov dword [esp + 0x2c], 0x9d059f03
mov dword [esp + 0x30], 0x99069b08
mov dword [esp + 0x34], 0x8516870f
mov dword [esp + 0x38], 0x811c83eb
mov dword [esp + 0x3c], 0x8ddf8f1c
mov dword [esp + 0x40], 0x891b8be6
mov dword [esp + 0x44], 0xb525b716
mov dword [esp + 0x48], 0xb1deb3e7
mov dword [esp + 0x4c], 0xbd22bfdf
mov dword [esp + 0x50], 0xb9ffbbd3
mov dword [esp + 0x54], 0xa5c8a798
mov dword [esp + 0x58], 0xa139a335
mov dword [esp + 0x5c], 0xadc2af32
mov dword [esp + 0x60], 0xa934abc3
mov dword [esp + 0x64], 0xd595d72f
mov word [esp + 0x68], 0xd3d4
mov byte [esp + 0x6e], 0
mov dword [esp + 0x6a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x10]
mov edi, 0x14
sub edi, eax
or edi, edx
lea ebx, [eax + 0xeb]
lea ecx, [edx + edx]
not ecx
add ecx, edx
or ecx, ebx
and ecx, edi
mov dl, 0x68
sub dl, cl
mov byte [esp + eax + 0x10], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x5f
jb 0x40a450
movzx eax, word [esp + 0x10]
test ax, ax
lea edx, [esp + 0x70]
je 0x40a4b1
lea ecx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a4a0
mov word [edx], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + ecx + 0x61], 0
lea ecx, [ecx + 1]
jne 0x40a4d0
cmp eax, ecx
jae 0x40a4f6
movsx ecx, byte [esi + eax + 0x60]
mov word [edx], cx
add edx, 2
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
jmp 0x40a4c0
mov dword [edx], 0xa000d
mov word [edx + 4], 0
mov eax, dword [esi + 0x80]
mov dword [esp + 0x10], 0x13731147
mov dword [esp + 0x14], 0x1f771d8c
mov word [esp + 0x18], 0x1918
mov dword [esp + 0x1a], 0
mov word [esp + 0x1e], 0
mov ecx, 0xea664a84
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x1599b58c]
mov edi, ecx
or edi, edx
mov ebx, edx
not ebx
or ebx, ecx
add edx, ebx
inc edx
mov ebx, edi
not ebx
and ebx, edx
not edx
and edx, edi
sub edx, ebx
add edx, 0x38437f02
mov edi, edx
xor edi, 0x96
and edx, 0x69
add edx, edx
sub edx, edi
mov byte [esp + ecx + 0x1599b58c], dl
inc ecx
cmp ecx, 0xea664a94
jne 0x40a540
lea ecx, [esp + 0x70]
push 0x493e0
push eax
push ebp
push 0
push 0
push ecx
lea eax, [esp + 0x28]
push eax
call fcn.0040cb00
add esp, 0x1c
mov ebx, eax
push ebp
call fcn.00408a70
add esp, 4
mov eax, dword [esi + 0x80]
add dword [esi + 4], eax
mov dword [esi + 0x80], 0
jmp 0x40a5c5
mov bl, 1
mov eax, ebx
add esp, 0x10c
pop esi
pop edi
pop ebx
pop ebp
ret