Function at 0x409f20
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, 0x10c
cmp dword [ecx + 0x20], 0
je 0x40a38f
mov esi, ecx
lea eax, [ecx + 0x10]
push eax
call fcn.00406580
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.00408680
add esp, 4
mov dword [esp + 0x70], 0x3f3b0e38
mov byte [esp + 0x74], 0x9c
mov dword [esp + 0x75], 0
mov word [esp + 0x79], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
add cl, 0x24
xor cl, byte [esp + edx + 0x70]
add cl, 0x4c
mov byte [esp + edx + 0x70], cl
inc edx
cmp edx, 0xb
jne 0x409fb0
lea ebx, [esp + 0x70]
mov ecx, esi
push 0x445bc8
push ebx
mov dword [esp + 0xc], eax
push eax
call fcn.00409790
mov dword [esp + 0x70], 0xe90e0414
mov dword [esp + 0x74], 0
xor eax, eax
nop
nop
movzx ebp, byte [esp + eax + 0x70]
mov edx, eax
and edx, 1
xor edx, 0x36c39559
mov ecx, eax
and ecx, 6
sub ecx, edx
mov edi, ecx
not edi
or edi, ebp
mov edx, ecx
or edx, ebp
xor ecx, ebp
add ecx, ebp
not ecx
add ecx, edx
mov edx, edi
not edx
or edx, ecx
add edx, edi
mov cl, 0xbb
sub cl, dl
mov byte [esp + eax + 0x70], cl
inc eax
cmp eax, 8
jne 0x409ff0
lea eax, [esp + 2]
mov ecx, esi
push eax
push ebx
push dword [esp + 0xc]
call fcn.00409790
mov eax, dword [str.tLYMe5__3]
mov dword [esp + 0x70], 0xb1eae4e0
xor ecx, ecx
nop
mov edi, ecx
xor edi, 0xffffe762
mov edx, ecx
or edx, 1
and edx, edi
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
xor edi, 2
mov ebp, ecx
and ebp, 1
neg ebp
and ebp, edi
add edx, ebp
mov edi, ecx
xor edi, 0x189d
mov ebp, edx
and ebp, edi
xor edi, edx
lea edx, [edi + ebp*2]
xor dl, byte [esp + ecx + 0x70]
add dl, 0xef
mov byte [esp + ecx + 0x70], dl
mov edx, ecx
not edx
or edx, 1
add edx, ecx
inc edx
mov edi, edx
and edi, 2
mov ebp, edx
or edx, 2
imul edx, edi
xor edi, 2
and ebp, 0xfffffffd
imul ebp, edi
xor ecx, 1
add ecx, edx
add ecx, ebp
cmp ecx, 4
jb 0x40a050
mov ecx, esi
push eax
push ebx
mov ebp, dword [esp + 0xc]
push ebp
call fcn.00409790
mov dword [esp + 0x70], 0xbbacbcaf
mov dword [esp + 0x74], 0xd4c7b0bf
mov dword [esp + 0x78], 0xc2cdc0d7
mov byte [esp + 0x7c], 0x64
mov word [esp + 0x7d], 0
mov byte [esp + 0x7f], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x70]
mov edx, 0x7bd28d45
sub edx, eax
or edx, ecx
mov edi, 0x45
sub edi, eax
not edx
or edx, edi
lea edx, [eax + edx*2]
add dl, cl
add dl, 0x1a
mov byte [esp + eax + 0x70], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x10
jb 0x40a100
mov dword [esp + 0x10], 0xb72ae6e9
lea eax, [esp + 0x10]
mov ecx, 0x61
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
lea edi, [edx + edx]
not edi
add edi, edx
and edi, ecx
not edx
or edx, ecx
xor edx, edi
add dl, 0xea
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x5d
jne 0x40a150
lea edi, [esp + 0x10]
mov ecx, esi
push ebx
push edi
push ebp
call fcn.00409790
mov dword [esp + 0x70], 0x92aeac96
mov byte [esp + 0x74], 0x38
mov dword [esp + 0x75], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xcb
xor cl, byte [esp + eax + 0x70]
add cl, 9
mov byte [esp + eax + 0x70], cl
inc eax
cmp eax, 9
jne 0x40a1a0
mov ecx, esi
push dword [esp + 0xc]
push dword [esp + 0xc]
push ebx
push ebp
call fcn.00409a60
mov dword [esp + 0x10], 0x36d0143
mov dword [esp + 0x14], 0x772056a
mov dword [esp + 0x18], 0xb64096d
mov dword [esp + 0x1c], 0xf230d78
mov dword [esp + 0x20], 0x136b1144
mov dword [esp + 0x24], 0x17731564
mov dword [esp + 0x28], 0x1b3a1922
mov dword [esp + 0x2c], 0x1f6b1d71
mov dword [esp + 0x30], 0x2356214c
mov dword [esp + 0x34], 0x2756254d
mov dword [esp + 0x38], 0x2b582949
mov dword [esp + 0x3c], 0x2f012d58
mov dword [esp + 0x40], 0x335d3156
mov dword [esp + 0x44], 0x375b3546
mov dword [esp + 0x48], 0x3b5e3915
mov dword [esp + 0x4c], 0x3f4a3d5d
mov dword [esp + 0x50], 0x43794121
mov dword [esp + 0x54], 0x47244564
mov dword [esp + 0x58], 0x4b3f4927
mov dword [esp + 0x5c], 0x4f2a4d22
mov dword [esp + 0x60], 0x53205131
mov dword [esp + 0x64], 0x576b552d
mov word [esp + 0x68], 0x5958
mov byte [esp + 0x6c], 0
mov word [esp + 0x6a], 0
xor eax, eax
nop
nop
nop
nop
xor byte [esp + eax + 0x10], al
inc eax
cmp eax, 0x5d
jne 0x40a290
movzx eax, word [esp + 0x10]
test ax, ax
je 0x40a2c1
lea ebx, [esp + 0x70]
lea ecx, [esp + 0x12]
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a2b0
mov word [ebx], 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 0x40a2e0
cmp eax, ecx
jae 0x40a2fc
movsx ecx, byte [esi + eax + 0x60]
mov word [ebx], cx
add ebx, 2
inc eax
jmp 0x40a2d0
mov dword [ebx], 0xa000d
mov word [ebx + 4], 0
mov eax, dword [esi + 0x80]
mov dword [esp + 0x10], 0x59bd5b75
mov dword [esp + 0x14], 0x5da15fa8
mov word [esp + 0x18], 0x535c
mov dword [esp + 0x1a], 0
mov word [esp + 0x1e], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xf
xor dl, byte [esp + ecx + 0x10]
add dl, 0xb5
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0x10
jne 0x40a340
lea ecx, [esp + 0x70]
push 0x493e0
push eax
push ebp
push 0
push 0
push ecx
push edi
call fcn.0040c750
add esp, 0x1c
mov ebx, eax
push ebp
call fcn.00408690
add esp, 4
mov eax, dword [esi + 0x80]
add dword [esi + 4], eax
mov dword [esi + 0x80], 0
jmp 0x40a391
mov bl, 1
mov eax, ebx
add esp, 0x10c
pop esi
pop edi
pop ebx
pop ebp
ret