Function at 0x409fe0
Capabilities:
Contain obfuscated stackstrings
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 0x40a520
mov esi, ecx
lea eax, [ecx + 0x10]
push eax
call fcn.00406760
add esp, 4
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x10], 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 + 4], edx
lea eax, [edx + 0x400]
push eax
call fcn.00408770
add esp, 4
mov ebx, eax
mov dword [esp + 0x74], 0xabd7c2d0
mov byte [esp + 0x78], 0x4c
mov dword [esp + 0x79], 0
mov word [esp + 0x7d], 0
mov eax, 0x12
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x62]
lea edx, [eax - 0x4132ef00]
mov edi, eax
and edi, ecx
or edx, ecx
xor edx, edi
mov ecx, edx
and ecx, 0x25
xor edx, 0xa5
lea ecx, [edx + ecx*2]
inc cl
mov byte [esp + eax + 0x62], cl
inc eax
cmp eax, 0x1d
jne 0x40a070
lea edi, [esp + 0x74]
mov ecx, esi
push 0x44720c
push edi
push ebx
call fcn.00409860
mov dword [esp + 0x74], 0x219a9c94
mov byte [esp + 0x78], 0
xor eax, eax
nop
nop
lea ecx, [eax + eax]
and ecx, 2
mov edx, eax
xor edx, 0x49
add edx, ecx
xor dl, byte [esp + eax + 0x74]
add dl, 0x93
mov byte [esp + eax + 0x74], dl
xor eax, 1
add eax, ecx
cmp eax, 5
jb 0x40a0c0
lea eax, [esp + 2]
mov ecx, esi
push eax
push edi
push ebx
call fcn.00409860
mov eax, dword [str.yau6Na__5190944341]
mov dword [esp + 0x74], 0x63c6f8fc
mov byte [esp + 0x78], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
or dl, 0x98
xor dl, byte [esp + ecx + 0x74]
add dl, 8
mov byte [esp + ecx + 0x74], dl
mov edx, ecx
xor edx, 0xfffffffe
or ecx, 1
and edx, ecx
add ecx, edx
cmp ecx, 5
jb 0x40a110
mov dword [esp + 0xc], esi
mov ecx, esi
push eax
push edi
push ebx
call fcn.00409860
mov dword [esp + 0x74], 0x7f847c83
mov dword [esp + 0x78], 0x8c73887b
mov dword [esp + 0x7c], 0x7675788b
mov byte [esp + 0x80], 4
mov dword [esp + 0x81], 0
mov word [esp + 0x85], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x84
xor cl, byte [esp + eax + 0x74]
add cl, 0x6c
mov byte [esp + eax + 0x74], cl
inc eax
cmp eax, 0x13
jne 0x40a180
mov dword [esp + 8], ebx
mov dword [esp + 0x14], 0xf19aaaaf
mov byte [esp + 0x18], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x14]
mov edi, eax
xor edi, 0x9b6dfe83
lea ebp, [eax + eax]
mov ecx, ebp
and ecx, 8
sub ecx, edi
mov edi, ecx
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
lea edx, [ecx + 0x645fe080]
mov esi, 0x9fffffff
sub esi, ecx
mov edi, esi
not edi
and esi, 2
mov ebx, edi
and ebx, 0x8c
imul esi, ebx
and edi, 2
or ebx, 2
imul ebx, edi
mov edi, 0x9ba01fff
sub edi, ecx
and edi, 0xaf
and edx, 0x50
or edx, edi
xor edx, 0x21
add edx, esi
add edx, ebx
inc dl
mov byte [esp + eax + 0x14], dl
and ebp, 2
xor eax, 1
add eax, ebp
cmp eax, 5
jb 0x40a1b0
lea edx, [esp + 0x14]
mov ebp, dword [esp + 0xc]
mov ecx, ebp
lea eax, [esp + 0x74]
push eax
push edx
push dword [esp + 0x10]
call fcn.00409860
mov dword [esp + 0x74], 0xbaa2a0a2
mov byte [esp + 0x78], 0xd4
mov word [esp + 0x79], 0
mov byte [esp + 0x7b], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x74]
mov edx, edi
not edx
mov esi, eax
and esi, 0xc
mov ebx, ecx
xor ebx, 0xce
add ebx, esi
mov esi, edi
xor esi, 2
or edi, 0xfd
and edi, esi
and edx, 2
or edx, edi
xor edx, ebx
xor dl, 2
add dl, 0xfa
mov byte [esp + ecx + 0x74], dl
inc ecx
add eax, 2
cmp ecx, 8
jne 0x40a260
mov ecx, ebp
push dword [esp + 4]
push dword [esp + 0x14]
lea eax, [esp + 0x7c]
push eax
push dword [esp + 0x14]
call fcn.00409b30
mov dword [esp + 0x14], 0x13851153
mov dword [esp + 0x18], 0x1f821d8a
mov dword [esp + 0x1c], 0x1b8c1975
mov dword [esp + 0x20], 0x7530598
mov dword [esp + 0x24], 0x39b017c
mov dword [esp + 0x28], 0xf630d9c
mov dword [esp + 0x2c], 0xb2a0952
mov dword [esp + 0x30], 0x37ab35a1
mov dword [esp + 0x34], 0x33ae31a4
mov dword [esp + 0x38], 0x3fae3d55
mov dword [esp + 0x3c], 0x3ba83959
mov dword [esp + 0x40], 0x277125b8
mov dword [esp + 0x44], 0x23b5214e
mov dword [esp + 0x48], 0x2fbb2dbe
mov dword [esp + 0x4c], 0x2b46297d
mov dword [esp + 0x50], 0x57ca5535
mov dword [esp + 0x54], 0x53095131
mov dword [esp + 0x58], 0x5f3c5d7c
mov dword [esp + 0x5c], 0x5bc759cf
mov dword [esp + 0x60], 0x472a45d2
mov dword [esp + 0x64], 0x43d04121
mov dword [esp + 0x68], 0x4f0b4dd5
mov word [esp + 0x6c], 0x4948
mov dword [esp + 0x6e], 0
mov eax, 0xe280b104
mov ecx, 0xfb
movzx esi, byte [esp + eax + 0x1d7f4f10]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov ebx, edx
and ebx, 0x820080e9
mov esi, edx
and esi, 2
mov edi, esi
xor edi, 2
imul edi, ebx
or ebx, 2
imul ebx, esi
xor edx, 0x937c8aeb
add edi, edx
add edi, ebx
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
mov byte [esp + eax + 0x1d7f4f10], dl
inc eax
dec ecx
cmp eax, 0xe280b162
jne 0x40a380
movzx eax, word [esp + 0x14]
test ax, ax
lea edx, [esp + 0x74]
je 0x40a3f1
lea ecx, [esp + 0x16]
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a3e0
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 [ebp + ecx + 0x61], 0
lea ecx, [ecx + 1]
jne 0x40a410
cmp eax, ecx
jae 0x40a42c
movsx ecx, byte [ebp + eax + 0x60]
mov word [edx], cx
add edx, 2
inc eax
jmp 0x40a400
mov dword [edx], 0xa000d
mov word [edx + 4], 0
mov eax, dword [ebp + 0x80]
mov dword [esp + 4], eax
mov dword [esp + 0x14], 0x21452775
mov dword [esp + 0x18], 0x5db923b0
mov word [esp + 0x1c], 0x5f5c
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
mov ebx, 0xb2baa0b8
mov ecx, 0x4d455f46
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + ebx + 0x4d455f5c]
lea eax, [ebx + 1]
mov esi, eax
or esi, 0x3ab02368
mov edx, ebx
sub edx, esi
mov edi, eax
and edi, 0x17
xor edi, 0x77f57c7f
or edi, ecx
and edi, edx
xor edi, ebp
mov edx, edi
not edx
and edx, 1
xor edi, 0x96
lea edx, [edi + edx*2]
add dl, 0x62
mov byte [esp + ebx + 0x4d455f5c], dl
dec ecx
mov ebx, eax
cmp eax, 0xb2baa0c8
jne 0x40a480
lea eax, [esp + 0x74]
push 0x493e0
push dword [esp + 8]
mov esi, dword [esp + 0x10]
push esi
push 0
push 0
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.0040cbb0
add esp, 0x1c
mov ebx, eax
push esi
call fcn.00408780
add esp, 4
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x80]
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [eax + edx*2]
mov dword [esi + 4], eax
mov dword [esi + 0x80], 0
jmp 0x40a522
mov bl, 1
mov eax, ebx
add esp, 0x110
pop esi
pop edi
pop ebx
pop ebp
ret