Function at 0x4c699e
Capabilities:
Contain obfuscated stackstrings

Disassembly:
call 0x5058af19
mov ecx, dword [ebp + 8]
push ecx
call dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
jo 0x4c69ac
jno 0x4c69ac
call 0xde68a733
dec ebx
add byte [ecx], al
cmp dword [0x4bde1c], 1
jne 0x4c6ab6
push 0xc
push 0
lea eax, [ebp - 0x10]
push eax
call fcn.004d9ce8
add esp, 0xc
mov byte [ebp - 0x10], 0x44
mov byte [ebp - 0xb], 0x66
mov byte [ebp - 6], 0x42
mov byte [ebp - 0xf], 0x73
mov byte [ebp - 0xa], 0x47
mov byte [ebp - 5], 0
mov byte [ebp - 0xe], 0x66
mov byte [ebp - 9], 0x6a
mov byte [ebp - 0xd], 0x62
mov byte [ebp - 8], 0x6d
mov byte [ebp - 0xc], 0x75
mov byte [ebp - 7], 0x66
jb 0x4c69fe
imul dword [edx - 0x3a]
inc ebp
invalid
jae 0x4c69fe
jmp 0x4c6989
mov cl, byte [ebp - 0x10]
sub cl, 1
mov byte [ebp - 0x10], cl
mov dl, byte [ebp - 0xb]
sub dl, 1
mov byte [ebp - 0xb], dl
mov al, byte [ebp - 6]
sub al, 1
mov byte [ebp - 6], al
mov cl, byte [ebp - 0xf]
sub cl, 1
mov byte [ebp - 0xf], cl
mov dl, byte [ebp - 0xa]
sub dl, 1
mov byte [ebp - 0xa], dl
mov al, byte [ebp - 0xe]
sub al, 1
mov byte [ebp - 0xe], al
mov cl, byte [ebp - 9]
sub cl, 1
mov byte [ebp - 9], cl
mov dl, byte [ebp - 0xd]
sub dl, 1
mov byte [ebp - 0xd], dl
mov al, byte [ebp - 8]
sub al, 1
mov byte [ebp - 8], al
mov cl, byte [ebp - 0xc]
sub cl, 1
mov byte [ebp - 0xc], cl
mov dl, byte [ebp - 7]
sub dl, 1
mov byte [ebp - 7], dl
jb 0x4c6a63
jae 0x4c6a63
jmp 0x4c69e7
cmp dword [0x4bd4e0], 0
jne 0x4c6a74
or eax, 0xffffffff
jmp 0x4c6bf5
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [0x4bd4e0]
push ecx
call fcn.004d66a8
mov dword [ebp - 4], eax
jne 0x4c6a8c
je 0x4c6a8c
jbe 0x4c6af7
push 0xc
push 0
lea edx, [ebp - 0x10]
push edx
call fcn.004d9ce8
add esp, 0xc
cmp dword [ebp - 4], 0
je 0x4c6aac
or al, 0x6a
add byte [ebp - 0x17ad0fab], cl
dec edi
xor al, byte [ecx]
add byte [ebx + 0x7d830cc4], al
cld
add byte [edx + ecx - 0x75], dh
inc ebp
cld
mov eax, dword [ebp - 4]
mov dword [0x4bde1c], eax
jmp 0x4c6ab4
sbb al, 0xde
dec ebx
add bl, ch
or byte [ebx + 0x41e9ffc8], al
add dword [eax], eax
add bl, ch
or dword [ebx + 0x4bde1c0d], ecx
add byte [ecx + 0x558bfc4d], cl
cld
or eax, 0xffffffff
jmp 0x4c6bf5
jmp 0x4c6abf
mov ecx, dword [0x4bde1c]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x14], edx
jb 0x4c6aca
jae 0x4c6aca
and byte [ebx - 0x17af13bb], cl
add al, 0xa1
add byte [eax], al
mov eax, dword [ebp - 0x14]
push eax
call fcn.004d0bd7
add esp, 4
push 0xc
push 0
lea ecx, [ebp - 0x10]
push ecx
call fcn.004d9ce8
add esp, 0xc
mov byte [ebp - 0x10], 0x44
mov byte [ebp - 0xb], 0x66
mov byte [ebp - 6], 0x58
mov byte [ebp - 0xf], 0x73
mov byte [ebp - 0xa], 0x47
mov byte [ebp - 5], 0
mov byte [ebp - 0xe], 0x66
mov byte [ebp - 9], 0x6a
inc ebp
test byte [edi - 0x3a], 0x45
sti
add dh, al
inc ebp
mov byte [ebp - 9], 0x6a
inc ebp
imul dword [edx - 0x3a]
inc ebp
invalid
mov byte [ebp - 0xd], 0x62
mov byte [ebp - 8], 0x6d
mov byte [ebp - 0xc], 0x75
mov byte [ebp - 7], 0x66
jb 0x4c6b1b
jae 0x4c6b1b
jmp 0x4c6aa6
mov dl, byte [ebp - 0x10]
sub dl, 1
mov byte [ebp - 0x10], dl
mov al, byte [ebp - 0xb]
sub al, 1
mov byte [ebp - 0xb], al
mov cl, byte [ebp - 6]
sub cl, 1
mov byte [ebp - 6], cl
mov dl, byte [ebp - 0xf]
sub dl, 1
mov byte [ebp - 0xf], dl
mov al, byte [ebp - 0xa]
sub al, 1
mov byte [ebp - 0xa], al
mov cl, byte [ebp - 0xe]
sub cl, 1
mov byte [ebp - 0xe], cl
mov dl, byte [ebp - 9]
sub dl, 1
mov byte [ebp - 9], dl
mov al, byte [ebp - 0xd]
sub al, 1
mov byte [ebp - 0xd], al
mov cl, byte [ebp - 8]
sub cl, 1
mov byte [ebp - 8], cl
mov dl, byte [ebp - 0xc]
sub dl, 1
mov byte [ebp - 0xc], dl
mov al, byte [ebp - 7]
sub al, 1
mov byte [ebp - 7], al
jb 0x4c6b7f
jae 0x4c6b7f
jmp 0x4c6b03
cmp dword [0x4bd4e0], 0
je 0x4c6ba0
jb 0x4c6b8d
jae 0x4c6b8d
add eax, 0x51f04d8d
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [0x4bd4e0]
push edx
call fcn.004d66a8
mov dword [ebp - 4], eax
jne 0x4c6ba5
je 0x4c6ba5
jg 0x4c6c10
push 0xc
push 0
lea eax, [ebp - 0x10]
push eax
call fcn.004d9ce8
add esp, 0xc
jb 0x4c6bba
or al, 0x6a
add byte [ebp - 0x17af0fbb], cl
xor dword ss:[ecx], eax
add byte [ebx + 0x3720cc4], al
jae 0x4c6bba
or al, 0x83
jge 0x4c6bb9
cmp dword [ebp - 4], 0
je 0x4c6bd1
add byte [ecx + edx + 0x72], dh
add esi, dword [ebx + 1]
jb 0x4c6bc5
jae 0x4c6bc5
adc byte [ebx - 0x17ae03b3], cl
or dword [eax - 0x3b7d0000], esp
add al, 0x72
add esi, dword [ebx + 1]
mov ecx, dword [ebp - 4]
push ecx
call fcn.004d0bd7
add esp, 4
jb 0x4c6bd6
jae 0x4c6bd6
call 0x526cc165
mov edx, dword [ebp + 0x20]
push edx
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [ebp - 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cld
add byte [eax], al
add byte [eax], al
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x14], 0
jmp 0x4c6c35
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x4c6cda
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 3
ja case.default.0x4c6c4e
mov edx, dword [ebp - 0x20]
jmp dword [edx*4 + 0x4c6eae]
jb 0x4c6c5a
jae 0x4c6c5a
push esi
mov eax, dword [ebp + 8]
add eax, 0x400
mov dword [ebp - 0xc], eax
jmp case.default.0x4c6c4e
jne 0x4c6c6c
je 0x4c6c6c
pop esi
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
jmp case.default.0x4c6c4e
jle 0x4c6c79
jg 0x4c6c79
call 0x8154c208
ret 0xc48
mov edx, dword [ebp + 8]
add edx, 0xc48
mov dword [ebp - 0xc], edx
jmp case.default.0x4c6c4e
jb 0x4c6c8c
jae 0x4c6c8c
push esi
mov eax, dword [ebp + 8]
add eax, 0x800
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], 0
jmp 0x4c6ca9
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x100
jge 0x4c6cd5
cmp dword [esp + 4], 0x1730372
mov edx, dword [ebp - 0x14]
shl edx, 0xa
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
mov edx, dword [edx + esi*4 + 0x4bc3bc]
mov dword [ecx + eax*4], edx
jmp 0x4c6ca0
jmp 0x4c6c2c
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
jmp 0x4c6cf3
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x4c6d67
mov dword [ebp - 0x18], 0
jmp 0x4c6d0b
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 4
jge 0x4c6d46
mov edx, dword [ebp - 8]
shl edx, 8
mov dword [ebp - 8], edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 8]
or edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp + 0x10]
jl 0x4c6d44
mov dword [ebp - 0x1c], 0
add byte [eax], al
add byte [eax], al
jmp 0x4c6d02
jne 0x4c6d4b
je 0x4c6d4b
pop esi
mov edx, dword [ebp - 0x14]
mov eax, dword [edx*4 + 0x4bc374]
xor eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0xc00], eax
jmp 0x4c6cea
jl 0x4c6d6c
jge 0x4c6d6c
rol bh, 1
inc ebp
cld
add byte [eax], al
add byte [eax], al
mov dword [ebp - 4], 0
jne 0x4c6d78
je 0x4c6d78
jb 0x4c6d40
mov dword [ebp - 0x10], 0
inc ebp
lock add byte [eax], al
add byte [eax], al
mov dword [ebp - 0x14], 0
jmp 0x4c6d91
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x4c6dd2
jbe 0x4c6d9c
ja 0x4c6d9c
call 0x523cbb2d
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004d4fee
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov dword [edx + ecx*4 + 0xc00], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov dword [edx + ecx*4 + 0xc04], eax
jmp 0x4c6d88
mov dword [ebp - 0x14], 0
jmp 0x4c6de4
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 4
jge 0x4c6ea3
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 3
ja case.default.0x4c6dfd
mov eax, dword [ebp - 0x24]
jmp dword [eax*4 + 0x4c6ebe]
jp 0x4c6e09
jnp 0x4c6e09
call 0x8154bb98
rol dword [eax], 4
add byte [eax], al
mov ecx, dword [ebp + 8]
add ecx, 0x400
mov dword [ebp - 0xc], ecx
jmp case.default.0x4c6dfd
jbe 0x4c6e1c
ja 0x4c6e1c
call 0x8954c3ab
push ebp
hlt
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc], edx
jmp case.default.0x4c6dfd
jle 0x4c6e29
jg 0x4c6e29
jmp 0x554b3b8
mov eax, dword [ebp + 8]
add eax, 0xc48
mov dword [ebp - 0xc], eax
jmp case.default.0x4c6dfd
jbe 0x4c6e3b
ja 0x4c6e3b
call 0x8154bbca
rol dword [eax], 8
add byte [eax], al
mov ecx, dword [ebp + 8]
add ecx, 0x800
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x18], 0
jmp 0x4c6e59
mov edx, dword [ebp - 0x18]
add edx, 2
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x100
jge 0x4c6e9e
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004d4fee
add esp, 0xc
cmp dword [esp + 4], 0x1730372
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov dword [ecx + eax*4], edx
jle 0x4c6e8f
jg 0x4c6e8f
jecxz 0x4c6e1b
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax*4 + 4], edx
jmp 0x4c6e50
inc ebp
call 0x8c40bc21
push ebp
invalid
jmp 0x4c6ddb
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc