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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x18c
test eax, eax
mov dword [ebp - 0x16c], ecx
mov dword [ebp - 0x108], 0x720063
mov dword [ebp - 0x104], 0x700079
mov dword [ebp - 0x100], 0x300074
mov dword [ebp - 0xfc], 0x31
je 0x409218
mov esi, edx
mov ebx, eax
lea edx, [ebp - 0x108]
mov dword [esp], edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [ebp - 0x108]
push edi
test eax, eax
mov edi, eax
je 0x4090f4
mov dword [esp + 0x14], eax
xor ecx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
mov dword [esp], ecx
call dword [sym.imp.KERNEL32.dll_CompareStringW]
sub esp, 0x18
cmp eax, 2
jne 0x409218
sub esi, edi
mov eax, esi
sar eax, 1
add eax, 2
call fcn.004083b8
mov dword [ebp - 0x15c], eax
test eax, eax
je 0x409218
add edi, edi
lea eax, [ebx + edi]
xor edi, edi
mov dword [ebp - 0x160], eax
xor ebx, ebx
cmp esi, ebx
jle 0x4091f7
mov eax, dword [ebp - 0x160]
movzx edx, word [eax + ebx*2]
lea eax, [edx - 9]
cmp ax, 0x17
movzx ecx, ax
jbe 0x40914c
lea eax, [edx - 0x30]
cmp ax, 9
ja 0x409161
mov al, dl
sub al, 0x30
jmp 0x40917f
mov eax, 0xff7fffec
sar eax, cl
test al, 1
jne 0x409170
inc ebx
cmp esi, ebx
jne 0x409127
jmp 0x4091f7
lea eax, [edx - 0x61]
cmp ax, 5
ja 0x409170
mov al, dl
sub al, 0x57
jmp 0x40917f
lea ecx, [edx - 0x41]
mov al, 0xff
cmp cx, 5
ja 0x40917f
mov al, dl
sub al, 0x37
mov ecx, dword [ebp - 0x160]
inc ebx
cmp esi, ebx
movzx edx, word [ecx + ebx*2]
jle 0x4091b6
lea ecx, [edx - 9]
mov dword [ebp - 0x164], ecx
cmp word [ebp - 0x164], 0x17
movzx ecx, word [ebp - 0x164]
ja 0x4091b6
mov edx, 0xff7fffec
sar edx, cl
test dl, 1
je 0x40917f
jmp 0x4091fe
lea ecx, [edx - 0x30]
cmp cx, 9
ja 0x4091c4
sub dl, 0x30
jmp 0x4091de
lea ecx, [edx - 0x61]
cmp cx, 5
ja 0x4091d2
sub dl, 0x57
jmp 0x4091de
lea ecx, [edx - 0x41]
cmp cx, 5
ja 0x4091fe
sub dl, 0x37
cmp al, 0xff
je 0x4091fe
mov ecx, dword [ebp - 0x15c]
shl al, 4
inc ebx
or al, dl
mov byte [ecx + edi], al
inc edi
jmp 0x40911f
mov esi, 1
jmp 0x409200
xor esi, esi
mov eax, dword [ebp - 0x15c]
test esi, esi
mov byte [eax + edi], 0
mov byte [eax + edi + 1], 0
jne 0x409224
call fcn.004083e2
xor edx, edx
xor edi, edi
mov dword [ebp - 0x15c], edx
xor esi, esi
mov eax, 0x15
dec eax
je 0x409236
mov byte [ebp + eax - 0x109], 0
jmp 0x409229
xor ebx, ebx
test esi, esi
je 0x40947c
mov dword [ebp - 0x120], 0x4a188649
test edi, edi
mov dword [ebp - 0x11c], 0x4e2e4cf5
mov dword [ebp - 0x118], 0x25453e58
mov dword [ebp - 0x114], 0x1e4135c7
mov dword [ebp - 0x110], 0xe153bb78
mov dword [ebp - 0x10c], 0xd76fda1b
mov dword [ebp - 0x150], 0x53514063
mov dword [ebp - 0x14c], 0x2627203f
mov dword [ebp - 0x148], 0x123f28a7
mov dword [ebp - 0x144], 0x629181bb
je 0x4092b1
cmp dword [ebp - 0x15c], 0
jne 0x4092ba
xor esi, esi
xor ebx, ebx
jmp 0x40944d
mov edx, edi
and edx, 0xf
je 0x4092c8
mov eax, edi
sub eax, edx
lea edi, [eax + 0x10]
mov eax, edi
call fcn.004083b8
test eax, eax
mov ebx, eax
je 0x4092b1
mov dword [esp + 8], 0xc0
lea eax, [ebp - 0x120]
mov dword [esp + 4], eax
lea eax, [ebp - 0x108]
mov dword [esp], eax
call fcn.00408674
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x15c]
cmp ebx, eax
je 0x409318
lea ecx, [ebp - 0x150]
xor eax, eax
mov dword [ebp - 0x160], eax
jmp 0x4093c9
mov eax, 0x11
dec eax
je 0x409330
mov dl, byte [ebp + eax - 0x151]
mov byte [ebp + eax - 0x141], dl
jmp 0x40931d
mov esi, dword [ebp - 0x15c]
mov eax, 0x11
dec eax
je 0x40934b
mov dl, byte [esi + eax - 1]
mov byte [ebp + eax - 0x131], dl
jmp 0x40933b
mov dword [esp + 0xc], esi
mov dword [esp + 8], esi
mov eax, dword [ebp - 0x164]
mov dword [esp + 4], eax
lea eax, [ebp - 0x108]
mov dword [esp], eax
call fcn.00408c7f
xor eax, eax
mov dl, byte [ebp + eax - 0x140]
xor byte [esi + eax], dl
inc eax
cmp eax, 0x10
jne 0x40936d
mov eax, 0x11
dec eax
je 0x409395
mov dl, byte [ebp + eax - 0x131]
mov byte [ebp + eax - 0x141], dl
jmp 0x409382
mov ecx, dword [ebp - 0x15c]
add esi, 0x10
mov eax, esi
sub eax, ecx
cmp eax, edi
jl 0x409336
jmp 0x409417
mov edx, dword [ebp - 0x168]
mov dl, byte [edx + eax]
xor byte [esi + eax], dl
inc eax
cmp eax, 0x10
jne 0x4093a8
add dword [ebp - 0x160], 0x10
cmp dword [ebp - 0x160], edi
jge 0x409417
mov dword [ebp - 0x168], ecx
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x160]
add eax, ebx
mov esi, eax
mov eax, dword [ebp - 0x15c]
mov dword [esp + 0xc], esi
add ecx, eax
mov dword [esp + 8], ecx
mov dword [ebp - 0x170], ecx
mov eax, dword [ebp - 0x164]
mov dword [esp + 4], eax
lea eax, [ebp - 0x108]
mov dword [esp], eax
call fcn.00408c7f
mov ecx, dword [ebp - 0x170]
xor eax, eax
jmp 0x4093a8
cmp edi, 0xf
jle 0x40943d
movzx eax, byte [ebx + edi - 1]
mov dl, al
dec dl
cmp dl, 0xf
ja 0x40943d
lea ecx, [ebx + edi]
mov dl, 1
cmp al, dl
je 0x409449
dec ecx
cmp al, byte [ecx - 1]
jne 0x40943d
inc dl
jmp 0x40942f
mov eax, ebx
call fcn.004083e2
jmp 0x4092b1
sub edi, eax
mov esi, edi
mov eax, 0x19
dec eax
je 0x40945f
mov byte [ebp + eax - 0x121], 0
jmp 0x409452
mov eax, 0x11
dec eax
je 0x409471
mov byte [ebp + eax - 0x151], 0
jmp 0x409464
mov eax, dword [ebp - 0x15c]
call fcn.004083e2
mov eax, dword [ebp - 0x16c]
mov dword [eax], esi
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret