Function at 0x40908b
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 0x409240
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 0x40911c
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 0x409240
sub esi, edi
mov eax, esi
sar eax, 1
add eax, 2
call fcn.004083e0
mov dword [ebp - 0x15c], eax
test eax, eax
je 0x409240
add edi, edi
lea eax, [ebx + edi]
xor edi, edi
mov dword [ebp - 0x160], eax
xor ebx, ebx
cmp esi, ebx
jle 0x40921f
mov eax, dword [ebp - 0x160]
movzx edx, word [eax + ebx*2]
lea eax, [edx - 9]
cmp ax, 0x17
movzx ecx, ax
jbe 0x409174
lea eax, [edx - 0x30]
cmp ax, 9
ja 0x409189
mov al, dl
sub al, 0x30
jmp 0x4091a7
mov eax, 0xff7fffec
sar eax, cl
test al, 1
jne 0x409198
inc ebx
cmp esi, ebx
jne 0x40914f
jmp 0x40921f
lea eax, [edx - 0x61]
cmp ax, 5
ja 0x409198
mov al, dl
sub al, 0x57
jmp 0x4091a7
lea ecx, [edx - 0x41]
mov al, 0xff
cmp cx, 5
ja 0x4091a7
mov al, dl
sub al, 0x37
mov ecx, dword [ebp - 0x160]
inc ebx
cmp esi, ebx
movzx edx, word [ecx + ebx*2]
jle 0x4091de
lea ecx, [edx - 9]
mov dword [ebp - 0x164], ecx
cmp word [ebp - 0x164], 0x17
movzx ecx, word [ebp - 0x164]
ja 0x4091de
mov edx, 0xff7fffec
sar edx, cl
test dl, 1
je 0x4091a7
jmp 0x409226
lea ecx, [edx - 0x30]
cmp cx, 9
ja 0x4091ec
sub dl, 0x30
jmp 0x409206
lea ecx, [edx - 0x61]
cmp cx, 5
ja 0x4091fa
sub dl, 0x57
jmp 0x409206
lea ecx, [edx - 0x41]
cmp cx, 5
ja 0x409226
sub dl, 0x37
cmp al, 0xff
je 0x409226
mov ecx, dword [ebp - 0x15c]
shl al, 4
inc ebx
or al, dl
mov byte [ecx + edi], al
inc edi
jmp 0x409147
mov esi, 1
jmp 0x409228
xor esi, esi
mov eax, dword [ebp - 0x15c]
test esi, esi
mov byte [eax + edi], 0
mov byte [eax + edi + 1], 0
jne 0x40924c
call fcn.0040840a
xor edx, edx
xor edi, edi
mov dword [ebp - 0x15c], edx
xor esi, esi
mov eax, 0x15
dec eax
je 0x40925e
mov byte [ebp + eax - 0x109], 0
jmp 0x409251
xor ebx, ebx
test esi, esi
je 0x4094a4
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 0x4092d9
cmp dword [ebp - 0x15c], 0
jne 0x4092e2
xor esi, esi
xor ebx, ebx
jmp 0x409475
mov edx, edi
and edx, 0xf
je 0x4092f0
mov eax, edi
sub eax, edx
lea edi, [eax + 0x10]
mov eax, edi
call fcn.004083e0
test eax, eax
mov ebx, eax
je 0x4092d9
mov dword [esp + 8], 0xc0
lea eax, [ebp - 0x120]
mov dword [esp + 4], eax
lea eax, [ebp - 0x108]
mov dword [esp], eax
call fcn.0040869c
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x15c]
cmp ebx, eax
je 0x409340
lea ecx, [ebp - 0x150]
xor eax, eax
mov dword [ebp - 0x160], eax
jmp 0x4093f1
mov eax, 0x11
dec eax
je 0x409358
mov dl, byte [ebp + eax - 0x151]
mov byte [ebp + eax - 0x141], dl
jmp 0x409345
mov esi, dword [ebp - 0x15c]
mov eax, 0x11
dec eax
je 0x409373
mov dl, byte [esi + eax - 1]
mov byte [ebp + eax - 0x131], dl
jmp 0x409363
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.00408ca7
xor eax, eax
mov dl, byte [ebp + eax - 0x140]
xor byte [esi + eax], dl
inc eax
cmp eax, 0x10
jne 0x409395
mov eax, 0x11
dec eax
je 0x4093bd
mov dl, byte [ebp + eax - 0x131]
mov byte [ebp + eax - 0x141], dl
jmp 0x4093aa
mov ecx, dword [ebp - 0x15c]
add esi, 0x10
mov eax, esi
sub eax, ecx
cmp eax, edi
jl 0x40935e
jmp 0x40943f
mov edx, dword [ebp - 0x168]
mov dl, byte [edx + eax]
xor byte [esi + eax], dl
inc eax
cmp eax, 0x10
jne 0x4093d0
add dword [ebp - 0x160], 0x10
cmp dword [ebp - 0x160], edi
jge 0x40943f
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.00408ca7
mov ecx, dword [ebp - 0x170]
xor eax, eax
jmp 0x4093d0
cmp edi, 0xf
jle 0x409465
movzx eax, byte [ebx + edi - 1]
mov dl, al
dec dl
cmp dl, 0xf
ja 0x409465
lea ecx, [ebx + edi]
mov dl, 1
cmp al, dl
je 0x409471
dec ecx
cmp al, byte [ecx - 1]
jne 0x409465
inc dl
jmp 0x409457
mov eax, ebx
call fcn.0040840a
jmp 0x4092d9
sub edi, eax
mov esi, edi
mov eax, 0x19
dec eax
je 0x409487
mov byte [ebp + eax - 0x121], 0
jmp 0x40947a
mov eax, 0x11
dec eax
je 0x409499
mov byte [ebp + eax - 0x151], 0
jmp 0x40948c
mov eax, dword [ebp - 0x15c]
call fcn.0040840a
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