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

Disassembly:
push ebp
mov ecx, 0x45
push edi
push esi
mov esi, 0x633a8240
push ebx
sub esp, 0x15c
mov eax, dword [0x6355fda0]
lea edi, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
mov dword [esp], eax
lea eax, [eax + eax*2]
mov ebx, dword [esp + eax*4 + 0x3c]
test ebx, ebx
je 0x631c39b0
cmp byte [0x646870], 0xe9
je 0x631c3a00
mov eax, dword [esp]
mov ecx, 0xffffffff
lea eax, [eax + eax*2]
shl eax, 2
mov esi, dword [esp + eax + 0x40]
mov edi, dword [esp + eax + 0x44]
cmp ebx, esi
je 0x631c360b
nop
lea esi, [esi]
mov edx, ecx
shl ecx, 8
add ebx, 1
shr dx, 8
xor dl, byte [ebx - 1]
mov eax, edx
shr al, 4
xor eax, edx
movzx eax, al
mov edx, eax
or ecx, eax
shl eax, 5
shl edx, 0xc
xor ecx, edx
xor ecx, eax
cmp ebx, esi
jne 0x631c35e0
cmp di, cx
je 0x631c3634
cmp word [0x9562a9], 0
jne 0x631c3634
call sub.msvcr100.dll_rand
and eax, 0x1f
xor ax, 0x6781
mov word [0x9562a9], ax
mov eax, dword [0x6355fda0]
mov dword [esp], eax
cmp dword [esp], 0xb
je 0x631c37f0
cmp dword [esp], 6
je 0x631c3660
mov eax, dword [esp]
add eax, 1
mov dword [0x6355fda0], eax
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx edx, byte [0x633cb347]
movzx ebx, byte [0x633cb335]
mov dword [esp + 0x28], 0x3938626e
movzx ecx, byte [0x633cb348]
movzx eax, byte [0x633cb336]
mov dword [esp + 0x2c], 0x64757368
xor edx, ebx
mov dword [esp + 0x30], 0x38376667
lea ebx, [esp + 0x18]
xor ecx, eax
xor edx, 0x6e
mov dword [esp + 0x34], 0x66646473
xor ecx, 0x62
movzx eax, dl
mov dword [esp + 0x38], 0x647373
xor edx, edx
shl ecx, 8
or eax, ecx
mov ecx, 2
mov word [esp + 0x14], ax
movzx eax, word [esp + 0x14]
test ax, ax
jne 0x631c37d3
mov eax, ebx
call fcn.631c3350
test eax, eax
je 0x631c36fb
cmp word [0x9562a9], 0
jne 0x631c36fb
call sub.msvcr100.dll_rand
and eax, 0x1f
xor ax, 0x6781
mov word [0x9562a9], ax
movzx edx, byte [0x633cb363]
movzx ecx, byte [0x633cb351]
mov dword [esp + 0x28], 0x3938626e
movzx eax, byte [0x633cb364]
movzx esi, byte [0x633cb352]
mov dword [esp + 0x2c], 0x64757368
xor edx, ecx
mov dword [esp + 0x30], 0x38376667
mov ecx, 2
xor eax, esi
xor edx, 0x6e
mov dword [esp + 0x34], 0x66646473
xor eax, 0x62
movzx edx, dl
mov dword [esp + 0x38], 0x647373
shl eax, 8
or eax, edx
xor edx, edx
mov word [esp + 0x16], ax
movzx eax, word [esp + 0x16]
test ax, ax
jne 0x631c397f
nop
lea esi, [esi]
mov eax, ebx
call fcn.631c3350
test eax, eax
je 0x631c3797
cmp word [0x9562a9], 0
jne 0x631c3797
call sub.msvcr100.dll_rand
and eax, 0x1f
xor ax, 0x6781
mov word [0x9562a9], ax
mov eax, dword [0x6355fda0]
mov dword [esp], eax
jmp 0x631c3644
lea eax, [ecx + 0x633cb335]
movzx edi, byte [esp + ecx + 0x28]
add ecx, 1
movzx esi, byte [eax]
movzx eax, byte [edx + 0x633cb349]
xor eax, edi
xor eax, esi
mov byte [ebx + edx], al
movzx eax, word [esp + 0x14]
add edx, 1
cmp edx, eax
jge 0x631c36d4
cmp ecx, 0x11
jne 0x631c37a4
mov ecx, 1
mov edi, 0x6e
mov eax, 0x633cb335
jmp 0x631c37b2
movzx ebx, byte [0x633cb32a]
movzx edx, byte [0x633cb318]
mov dword [esp + 0x28], 0x3938626e
movzx eax, byte [0x633cb32b]
movzx esi, byte [0x633cb319]
mov dword [esp + 0x2c], 0x64757368
xor edx, ebx
mov dword [esp + 0x30], 0x38376667
lea ebx, [esp + 0x18]
mov ecx, eax
xor edx, 0x6e
mov dword [esp + 0x34], 0x66646473
xor ecx, esi
movzx eax, dl
mov dword [esp + 0x38], 0x647373
xor edx, edx
xor ecx, 0x62
shl ecx, 8
or eax, ecx
mov ecx, 2
mov word [esp + 0x12], ax
movzx eax, word [esp + 0x12]
test ax, ax
jne 0x631c3931
lea esi, [esi]
lea edi, [edi]
mov ebp, dword [0x1410b3c]
movsx eax, byte [esp + 0x18]
mov byte [esp + 0xf], al
mov dword [esp + 8], eax
test ebp, ebp
je 0x631c3644
nop
lea esi, [esi]
mov edi, dword [ebp + 4]
test edi, edi
je 0x631c3999
movsx ecx, byte [edi]
mov edx, dword [esp + 8]
mov ebx, 1
mov dword [esp + 4], ebp
movsx eax, byte [esp + 0xf]
mov esi, ecx
jmp 0x631c38e5
sub edx, 0x20
cmp ebp, 0x19
jbe 0x631c38fd
cmp esi, edx
jne 0x631c3995
test edx, edx
je 0x631c3a43
movsx edx, byte [esp + ebx + 0x18]
movsx ecx, byte [edi + ebx]
add ebx, 1
mov eax, edx
mov esi, ecx
cmp ebx, 0x15
je 0x631c3a43
cmp ecx, edx
je 0x631c38c4
sub eax, 0x61
lea ebp, [ecx - 0x61]
cmp eax, 0x19
jbe 0x631c38b4
cmp ebp, 0x19
ja 0x631c3995
lea esi, [ecx - 0x20]
jmp 0x631c38bc
lea eax, [ecx + 0x633cb318]
movzx edi, byte [esp + ecx + 0x28]
add ecx, 1
movzx esi, byte [eax]
movzx eax, byte [edx + 0x633cb32c]
xor eax, edi
xor eax, esi
mov byte [ebx + edx], al
movzx eax, word [esp + 0x12]
add edx, 1
cmp edx, eax
jge 0x631c3870
cmp ecx, 0x11
jne 0x631c3902
mov ecx, 1
mov edi, 0x6e
mov eax, 0x633cb318
jmp 0x631c3910
lea eax, [ecx + 0x633cb351]
movzx edi, byte [esp + ecx + 0x28]
add ecx, 1
movzx esi, byte [eax]
movzx eax, byte [edx + 0x633cb365]
xor eax, edi
xor eax, esi
mov byte [ebx + edx], al
movzx eax, word [esp + 0x16]
add edx, 1
cmp edx, eax
jge 0x631c3770
cmp ecx, 0x11
jne 0x631c3950
mov ecx, 1
mov edi, 0x6e
mov eax, 0x633cb351
jmp 0x631c395e
mov ebp, dword [esp + 4]
mov ebp, dword [ebp]
test ebp, ebp
jne 0x631c3890
jmp 0x631c3644
cmp dword [0x457d2f], 0x62d6b1ad
je 0x631c3a34
cmp word [0x9562a9], 0
je 0x631c39e0
mov dword [0x6355fda0], 0
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret
call sub.msvcr100.dll_rand
and eax, 0x1f
xor ax, 0x6781
mov word [0x9562a9], ax
mov dword [0x6355fda0], 0
jmp 0x631c39d0
cmp word [0x9562a9], 0
jne 0x631c35be
call sub.msvcr100.dll_rand
and eax, 0x1f
xor ax, 0x6781
mov word [0x9562a9], ax
mov eax, dword [0x6355fda0]
mov dword [esp], eax
lea eax, [eax + eax*2]
mov ebx, dword [esp + eax*4 + 0x3c]
jmp 0x631c35be
cmp byte [0x457d2e], 0xe8
jne 0x631c39bc
jmp 0x631c39c6
cmp word [0x9562a9], 0
jne 0x631c3644
call sub.msvcr100.dll_rand
and eax, 0x1f
xor ax, 0x6781
mov word [0x9562a9], ax
mov eax, dword [0x6355fda0]
mov dword [esp], eax
jmp 0x631c363e