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

Disassembly:
sub esp, 0x2dc
push ebx
push ebp
push esi
push edi
xor eax, eax
mov dword [esp + 0x14], 0xccd3ccbb
mov dword [esp + 0x18], 0xd4c8d9ce
xorps xmm0, xmm0
movq xmm1, qword [esp + 0x14]
mov esi, ecx
push 0x2a
punpcklbw xmm1, xmm0
mov edi, 0xff
psubw xmm1, xmmword [0x428f70]
pand xmm1, xmmword [0x428f80]
mov word [esp + 0x7c], ax
pop eax
mov word [esp + 0x38], ax
xor eax, eax
push 0x6f
mov dword [esp + 0x44], esi
xor ecx, ecx
movups xmmword [esp + 0x6c], xmm1
mov word [esp + 0x3e], ax
mov dword [esp + 0x20], 0xed04fdb6
mov byte [esp + 0x24], 0xbb
pop edx
movzx eax, byte [esp + ecx + 0x1c]
add ax, dx
and ax, di
mov word [esp + ecx*2 + 0x4c], ax
inc ecx
cmp ecx, 5
jl 0x41795e
xor eax, eax
lea edx, [esp + 0x68]
mov word [esp + 0x56], ax
mov ecx, esi
mov eax, dword [0x42b9c0]
or eax, 0x74016c7
add eax, 0xe61ce9d
mov dword [0x42b9c0], eax
lea eax, [esp + 0x38]
push 1
push eax
call fcn.0041dc3a
movzx eax, byte [0x42b9c0]
imul eax, eax, 0x58
push esi
mov byte [0x42b9cd], al
lea eax, [esp + 0x58]
push eax
call fcn.00422d73
mov cl, byte [0x42b9c0]
mov ebx, eax
add cl, 0x31
mov dword [esp + 0x2c], ebx
add esp, 0x10
mov byte [0x42b9be], cl
test ebx, ebx
je 0x417d2b
movzx ecx, cl
mov edx, 0x54e1cc7b
add ecx, 0x6e0d7911
mov al, cl
mov dword [0x42b9c0], ecx
xor al, 0xef
and al, 0xb1
sub al, 0x5e
mov byte [0x42b9cd], al
movzx eax, cl
xor ecx, ecx
imul eax, eax, 0x9a
inc ecx
or al, 0x14
mov byte [0x42b9be], al
lea eax, [esp + 0x98]
push eax
push ebx
call fcn.004155a6
call eax
mov cl, byte [0x42b9c0]
mov edx, 0x17299c7b
mov byte [0x42b9cd], cl
mov ebp, eax
xor ecx, ecx
inc ecx
call fcn.004155a6
cmp ebp, 0xffffffff
je 0x417d18
movzx ecx, byte [0x42b9be]
mov ebx, eax
xor ecx, 0x9f387039
mov word [esp + 0x24], 0xc4c4
mov dword [0x42b9c0], ecx
push 0x2e
pop eax
mov word [esp + 0x3c], ax
xor eax, eax
mov word [esp + 0x3e], ax
xor edx, edx
mov al, byte [esp + edx + 0x24]
xor al, 0xea
movzx eax, al
mov word [esp + edx*2 + 0x44], ax
inc edx
cmp edx, 2
jl 0x417a70
xor eax, eax
mov word [esp + 0x48], ax
mov al, cl
xor al, 0xe
or cl, 0xed
sub al, 0x5b
mov byte [0x42b9be], cl
mov byte [0x42b9cd], al
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x417cd6
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x417cd6
mov al, byte [0x42b9cd]
movzx edx, al
or al, 0x8d
mov ecx, edx
mov byte [0x42b9be], al
xor ecx, 0x4a
or ecx, 0x4821cab1
test byte [esp + 0x98], 0x10
mov dword [0x42b9c0], ecx
je 0x417cbc
lea eax, [edx - 0x212abfca]
add cl, 0xd
mov dword [0x42b9c0], eax
lea eax, [esp + 0xc4]
push eax
mov byte [0x42b9be], cl
call fcn.0040581e
pop ecx
cmp eax, 0x10
jne 0x417cbc
mov dword [esp + 0x14], 0x758c853e
xor ecx, ecx
mov word [esp + 0x18], 0x853e
mov byte [esp + 0x1a], 0x8c
movzx eax, byte [esp + ecx + 0x14]
sub ax, 0x19
and ax, di
mov word [esp + ecx*2 + 0x58], ax
inc ecx
cmp ecx, 7
jl 0x417b46
mov cl, byte [0x42b9be]
xor eax, eax
mov word [esp + 0x66], ax
lea eax, [ecx + 0x54]
mov byte [0x42b9cd], al
movzx eax, cl
and eax, 0x35c7996c
sub eax, 0x23f3557a
mov dword [0x42b9c0], eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x5c]
push esi
push eax
call fcn.00422d73
mov dl, byte [0x42b9be]
mov edi, eax
movzx ecx, byte [0x42b9cd]
and dl, 0x75
add ecx, 0x24a0ed12
mov byte [0x42b9be], dl
add esp, 0xc
mov dword [0x42b9c0], ecx
test edi, edi
je 0x417cb7
mov dword [esp + 0x2c], 0x6b626b5a
xor ecx, ecx
mov dword [esp + 0x30], 0x636f7c69
mov dword [esp + 0x34], 0x7d622b21
mov al, byte [esp + ecx + 0x2c]
xor al, 0xe
movzx eax, al
mov word [esp + ecx*2 + 0x7c], ax
inc ecx
cmp ecx, 0xc
jl 0x417be0
xor eax, eax
mov word [esp + 0x94], ax
movzx eax, dl
imul eax, eax, 0x15
and al, 0x32
mov byte [0x42b9cd], al
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x80]
push eax
call fcn.00422d73
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x417c89
movzx ecx, byte [0x42b9cd]
mov edx, esi
push 0x2a
pop eax
mov word [esp + 0x28], ax
and ecx, 0xa559af8d
xor eax, eax
mov dword [0x42b9c0], ecx
mov word [esp + 0x2a], ax
movzx eax, cl
sub cl, 0x48
imul eax, eax, 0xad
mov byte [0x42b9be], cl
mov ecx, edi
push 1
mov byte [0x42b9cd], al
lea eax, [esp + 0x2c]
push eax
call fcn.0041dc3a
movzx eax, byte [0x42b9cd]
imul eax, eax, 0x67
push esi
mov byte [0x42b9be], al
call fcn.004056f0
add esp, 0xc
movzx eax, byte [0x42b9cd]
add eax, 0x39725ba0
mov dword [0x42b9c0], eax
movzx eax, byte [0x42b9be]
imul eax, eax, 0x8e
push edi
mov byte [0x42b9be], al
call fcn.004056f0
mov esi, dword [esp + 0x44]
pop ecx
mov edi, 0xff
lea eax, [esp + 0x98]
push eax
push ebp
call ebx
test eax, eax
je 0x417ce9
mov ecx, dword [0x42b9c0]
jmp 0x417a5f
movzx eax, byte [0x42b9cd]
sub eax, 0x43abca65
mov dword [0x42b9c0], eax
jmp 0x417cbc
mov edx, dword [0x42b9c0]
xor ecx, ecx
mov al, dl
inc ecx
add edx, 0x5e9f2318
not al
mov dword [0x42b9c0], edx
mov edx, 0x83fbc401
push ebp
mov byte [0x42b9be], al
call fcn.004155a6
call eax
mov ebx, dword [esp + 0x1c]
mov al, byte [0x42b9c0]
or al, 4
push ebx
mov byte [0x42b9cd], al
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2dc
ret