Function at 0x4c68a0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push 0xffffffffffffffff
push 0x6c1797
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x11c
push ebx
push ebp
push esi
xor ebp, ebp
push edi
mov edi, ecx
mov dword [esp + 0x54], ebp
mov al, byte [esp + 0x53]
mov dword [esp + 0x134], 1
mov byte [esp + 0x1c], al
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov cl, 0x28
mov bl, 0x25
mov byte [esp + 0x39], cl
mov byte [esp + 0x43], cl
mov cl, 0x2a
mov dl, 0x16
mov al, 0x29
mov byte [esp + 0x45], cl
mov byte [esp + 0x4b], cl
push 6
push 0x7147a4
lea ecx, [esp + 0x18]
mov byte [esp + 0x13c], 2
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], 0x14
mov byte [esp + 0x36], 0x15
mov byte [esp + 0x37], dl
mov byte [esp + 0x38], 0x26
mov byte [esp + 0x39], 0x27
mov byte [esp + 0x3a], 0x10
mov byte [esp + 0x3b], 0x10
mov byte [esp + 0x3c], 0xf
mov byte [esp + 0x3d], 0xf
mov byte [esp + 0x3e], 0x2b
mov byte [esp + 0x3f], 0x13
mov byte [esp + 0x40], 0x24
mov byte [esp + 0x42], 0x2e
mov byte [esp + 0x43], al
mov byte [esp + 0x44], dl
mov byte [esp + 0x45], 0x11
mov byte [esp + 0x46], 0x31
mov byte [esp + 0x47], 0x1b
mov byte [esp + 0x48], 0x1d
mov byte [esp + 0x49], 0x1e
mov byte [esp + 0x4a], 0x23
mov byte [esp + 0x4c], 0x21
mov byte [esp + 0x4e], 0x22
mov byte [esp + 0x4f], 0xe
mov byte [esp + 0x50], 0x30
mov byte [esp + 0x51], 0x30
mov byte [esp + 0x52], al
mov byte [esp + 0x54], al
mov byte [esp + 0x55], 0x2f
mov byte [esp + 0x56], 0x31
mov byte [esp + 0x57], 0x31
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], al
call fcn.0061d820
push 5
lea ecx, [esp + 0x144]
mov byte [esp + 0x138], 3
call fcn.0061daa0
mov byte [esp + 0x14], al
add edi, 8
mov esi, dword [esp + 0x14]
and esi, 0xff
movzx cx, byte [esp + esi + 0x2c]
push ecx
mov ecx, edi
call fcn.0061daa0
mov bl, al
mov ecx, edi
mov byte [esp + 0x14], bl
call fcn.0061dc40
cmp ax, 0x31
jge 0x4c6af1
push 0x71386c
lea edx, [esp + 0x5c]
push 0x713868
push edx
call fcn.006a6fa5
lea edi, [esp + 0x64]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x20]
push ebx
call fcn.00414230
test al, al
je 0x4c6a61
mov edi, dword [esp + 0x20]
mov ecx, ebx
mov eax, ecx
lea esi, [esp + 0x58]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
mov byte [ecx + ebx], 0
mov esi, dword [esp + 0x13c]
mov dl, byte [esp + 0x1c]
xor edi, edi
lea ecx, [esp + 0x1c]
mov byte [esi], dl
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov eax, dword [0x6dd1fc]
push eax
push edi
push ecx
mov ecx, esi
call fcn.004136c0
mov dword [esp + 0x54], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0x134], 2
call fcn.0061d8c0
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x4c6aca
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c6ac1
cmp al, 0xff
je 0x4c6ac1
dec al
mov byte [ecx], al
jmp 0x4c6aca
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x140]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov byte [esp + 0x134], 0
call fcn.0061d8c0
mov eax, esi
jmp 0x4c772c
dec esi
cmp esi, 0x24
ja case.default.0x4c6afb
jmp dword [esi*4 + 0x4c7748]
mov ebp, dword [esp + 0x14]
and ebp, 0xff
lea ebp, [ebp + ebp*4]
shl ebp, 3
jmp case.default.0x4c6afb
mov ebp, dword [esp + 0x14]
and ebp, 0xff
lea ebp, [ebp + ebp*4]
shl ebp, 1
jmp case.default.0x4c6afb
mov edx, dword [esp + 0x14]
and edx, 0xff
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul qword [0x6de028]
fadd qword [0x6dd4d8]
fsub qword [0x6de020]
call fcn.006a7274
mov ebp, eax
jmp case.default.0x4c6afb
cmp bl, 0x10
ja 0x4c6bf3
mov ecx, dword [esp + 0x14]
mov ebp, 0xd6
and ecx, 0xff
lea eax, [ecx + ecx*8]
shl eax, 3
sub eax, ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
sub ebp, eax
push ebp
lea edx, [esp + 0x5c]
push 0x71350c
push edx
call fcn.006a6fa5
add esp, 0xc
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4c75b5
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x4c6bb8
call fcn.006a64db
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4c755e
mov al, byte [edi - 1]
test al, al
je 0x4c755e
cmp al, 0xff
je 0x4c755e
test ebx, ebx
jne 0x4c7587
dec al
push ebx
lea ecx, [esp + 0x20]
mov byte [edi - 1], al
call fcn.004138c0
jmp 0x4c75b5
cmp bl, 0x20
ja 0x4c6c0d
mov eax, dword [esp + 0x14]
mov ebp, 0xaf
and eax, 0xff
shl eax, 1
jmp 0x4c6b7d
cmp bl, 0x21
jne 0x4c6c1c
mov ebp, 0x6c
jmp case.default.0x4c6afb
cmp bl, 0x30
ja 0x4c6c52
mov ecx, dword [esp + 0x14]
mov eax, 0x20
and ecx, 0xff
sub eax, ecx
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ebp, [edx + eax + 0x6c]
jmp case.default.0x4c6afb
cmp bl, 0x50
ja 0x4c6c83
mov edx, dword [esp + 0x14]
mov ecx, 0x30
and edx, 0xff
sub ecx, edx
lea eax, [ecx + ecx*2]
shl eax, 3
sub eax, ecx
cdq
and edx, 0x1f
add eax, edx
mov ebp, eax
sar ebp, 5
add ebp, 0x5c
jmp case.default.0x4c6afb
cmp bl, 0xd0
ja 0x4c6cb2
mov eax, dword [esp + 0x14]
mov ecx, 0x50
and eax, 0xff
sub ecx, eax
mov eax, ecx
shl eax, 6
sub eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov ebp, eax
sar ebp, 7
add ebp, 0x45
jmp case.default.0x4c6afb
cmp bl, 0xe0
ja 0x4c6ce1
mov ecx, dword [esp + 0x14]
mov eax, 0xd0
and ecx, 0xff
sub eax, ecx
lea eax, [eax + eax*2]
shl eax, 2
cdq
and edx, 0xf
add eax, edx
mov ebp, eax
sar ebp, 4
add ebp, 6
jmp case.default.0x4c6afb
mov edx, dword [esp + 0x14]
mov eax, pe_nt_image_headers32
and edx, 0xff
sub eax, edx
mov ecx, eax
shl ecx, 5
add ecx, eax
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
lea ebp, [edx + eax - 6]
jmp case.default.0x4c6afb
mov ecx, dword [esp + 0x14]
and ecx, 0xff
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul qword [0x6de018]
fstp qword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
lea ecx, [esp + 0x60]
push str._.2f
push ecx
call fcn.006a6fa5
add esp, 0x10
jmp 0x4c6b92
mov edx, dword [esp + 0x14]
and edx, 0xff
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul qword [0x6de010]
jmp 0x4c6d2b
mov ecx, dword [esp + 0x14]
and ecx, 0xff
mov eax, ecx
shl eax, 5
add eax, ecx
lea ecx, [eax + eax*2]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
lea ebp, [edx + eax + 9]
jmp case.default.0x4c6afb
mov eax, dword [esp + 0x14]
and eax, 0xff
lea ecx, [eax + eax*8]
lea eax, [eax + ecx*4]
lea ecx, [eax + eax*2]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebp, edx
jmp case.default.0x4c6afb
mov ecx, dword [esp + 0x14]
and ecx, 0xff
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul qword [0x6de008]
jmp 0x4c6d2b
mov eax, dword [esp + 0x14]
and eax, 0xff
mov ecx, eax
shl ecx, 5
sub ecx, eax
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*2]
shl ecx, 2
jmp 0x4c6daa
mov ecx, dword [esp + 0x14]
and ecx, 0xff
mov eax, ecx
shl eax, 5
add eax, ecx
lea ecx, [eax + eax*2]
jmp 0x4c6e53
mov eax, dword [esp + 0x14]
mov ebp, 0x6c
and eax, 0xff
lea ecx, [eax + eax*2]
shl ecx, 6
sub ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
sub ebp, edx
jmp case.default.0x4c6afb
mov eax, dword [esp + 0x14]
and eax, 0xff
lea ecx, [eax + eax*2]
shl ecx, 6
sub ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ebp, edx
jmp case.default.0x4c6afb
mov edx, dword [esp + 0x14]
and edx, 0xff
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul qword [0x6de000]
jmp 0x4c6d2b
mov eax, dword [esp + 0x14]
and eax, 0xff
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
shl ecx, 2
sub ecx, eax
mov eax, 0x80808081
lea ecx, [ecx + ecx*8]
shl ecx, 1
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
lea ebp, [edx + eax - 0x67]
jmp case.default.0x4c6afb
mov ebp, dword [esp + 0x14]
and ebp, 0xff
jmp case.default.0x4c6afb
test bl, 2
je 0x4c6ed5
push 1
jmp 0x4c6ed7
push 2
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x110]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0x134], 4
push ecx
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.004136c0
mov eax, dword [esp + 0x110]
mov byte [esp + 0x134], 3
test eax, eax
je case.default.0x4c6afb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c7550
cmp al, 0xff
je 0x4c7550
dec al
mov byte [ecx], al
jmp case.default.0x4c6afb
test bl, 0x20
je 0x4c6f5d
push 1
jmp 0x4c6f5f
push 2
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x100]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0x134], 5
push ecx
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.004136c0
mov eax, dword [esp + 0x100]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
test bl, 0x10
je 0x4c6fc3
push 1
jmp 0x4c6fc5
push 2
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x120]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0x134], 6
push ecx
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.004136c0
mov eax, dword [esp + 0x120]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
test bl, 1
je 0x4c7029
push 4
jmp 0x4c702b
push 0x67
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x90]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0x134], 7
push ecx
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.004136c0
mov eax, dword [esp + 0x90]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
test bl, 8
je 0x4c708f
push 5
jmp 0x4c7091
push 6
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x70]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0x134], 8
push ecx
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.004136c0
mov eax, dword [esp + 0x70]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
test bl, 1
je 0x4c70ef
push 7
jmp 0x4c70f1
push 8
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0xb0]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0x134], 9
push ecx
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.004136c0
mov eax, dword [esp + 0xb0]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
test bl, 1
je 0x4c7155
push 3
jmp 0x4c7157
push 4
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0xf0]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0x134], 0xa
push ecx
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.004136c0
mov eax, dword [esp + 0xf0]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
test bl, 0x80
je 0x4c71bb
push 3
jmp 0x4c71bd
push 4
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0xd0]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0x134], 0xb
push ecx
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.004136c0
mov eax, dword [esp + 0xd0]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
test bl, 8
je 0x4c7221
push 3
jmp 0x4c7223
push 4
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x80]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0x134], 0xc
push ecx
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.004136c0
mov eax, dword [esp + 0x80]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
test bl, 0x20
je 0x4c7287
push 3
jmp 0x4c7289
push 4
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0xa0]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0x134], 0xd
push ecx
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.004136c0
mov eax, dword [esp + 0xa0]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
test bl, 0x40
je 0x4c72ed
push 3
jmp 0x4c72ef
push 4
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0xc0]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6dd1fc]
mov ebx, ecx
mov byte [esp + 0x134], 0xe
cmp eax, ebx
jae 0x4c7335
mov ebx, eax
lea edx, [esp + 0x1c]
cmp edx, esi
jne 0x4c7369
push eax
push ebx
lea ecx, [esp + 0x24]
call fcn.004140f0
push 0
push 0
lea ecx, [esp + 0x24]
call fcn.004140f0
mov eax, dword [esp + 0xc0]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
test ebx, ebx
jbe 0x4c73c8
cmp ebx, ecx
jne 0x4c73c8
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c737d
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4c73c8
push 1
lea ecx, [esp + 0x20]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c739a
mov eax, 0x6dd1f8
mov dword [esp + 0x20], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x24], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x28], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0x134], 3
mov byte [eax - 1], cl
mov eax, dword [esp + 0xc0]
jmp 0x4c6f2d
push 1
push ebx
lea ecx, [esp + 0x24]
call fcn.00414230
test al, al
je 0x4c7402
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c73e4
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x20]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x20]
call fcn.00414210
mov eax, dword [esp + 0xc0]
mov byte [esp + 0x134], 3
jmp 0x4c6f2d
push 1
push 4
lea ecx, [esp + 0x18]
call fcn.0061dbc0
test bl, 0x40
je 0x4c742c
push 0
jmp 0x4c742e
push 1
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0061d790
lea eax, [esp + 0xe0]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6dd1fc]
mov ebx, ecx
mov byte [esp + 0x134], 0xf
cmp eax, ebx
jae 0x4c7474
mov ebx, eax
lea edx, [esp + 0x1c]
cmp edx, esi
jne 0x4c7499
push eax
push ebx
lea ecx, [esp + 0x24]
call fcn.004140f0
push 0
push 0
lea ecx, [esp + 0x24]
call fcn.004140f0
jmp 0x4c7522
test ebx, ebx
jbe 0x4c74e6
cmp ebx, ecx
jne 0x4c74e6
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c74ad
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4c74e6
push 1
lea ecx, [esp + 0x20]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c74ca
mov eax, 0x6dd1f8
mov dword [esp + 0x20], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x24], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x28], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4c7522
push 1
push ebx
lea ecx, [esp + 0x24]
call fcn.00414230
test al, al
je 0x4c7522
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c7502
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x20]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0xe0]
mov byte [esp + 0x134], 3
test eax, eax
je case.default.0x4c6afb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c7550
cmp al, 0xff
je 0x4c7550
dec al
mov byte [ecx], al
jmp case.default.0x4c6afb
push ecx
call fcn.006a64d0
add esp, 4
jmp case.default.0x4c6afb
test ebx, ebx
jne 0x4c756f
push 1
lea ecx, [esp + 0x20]
call fcn.004138c0
jmp 0x4c75b5
mov eax, dword [esp + 0x28]
cmp eax, 0x1f
ja 0x4c757c
cmp eax, ebx
jae 0x4c7595
push 1
lea ecx, [esp + 0x20]
call fcn.004138c0
push ebx
lea ecx, [esp + 0x20]
call fcn.00414a60
mov edi, dword [esp + 0x20]
mov ecx, ebx
lea esi, [esp + 0x58]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
mov byte [ecx + ebx], 0
mov ebp, dword [esp + 0x13c]
mov dl, byte [esp + 0x1c]
mov eax, dword [esp + 0x24]
xor edi, edi
mov byte [ebp], dl
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov esi, dword [0x6dd1fc]
mov ebx, eax
cmp esi, ebx
jae 0x4c75e0
mov ebx, esi
lea ecx, [esp + 0x1c]
cmp ebp, ecx
jne 0x4c7648
cmp ebx, edi
jbe 0x4c75f1
call fcn.006a6707
mov ecx, ebp
call fcn.00414b70
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x4c7603
mov esi, eax
cmp esi, edi
jbe 0x4c763a
mov edx, dword [ebp + 4]
sub eax, esi
push eax
lea ecx, [ebx + edx]
lea edx, [esi + ecx]
push edx
push ecx
call fcn.006a6c70
mov edi, dword [ebp + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebp
push 0
push edi
call fcn.00414230
test al, al
je 0x4c7638
push edi
mov ecx, ebp
call fcn.00414210
xor edi, edi
push edi
push edi
mov ecx, ebp
call fcn.004140f0
jmp 0x4c76cc
cmp ebx, edi
jbe 0x4c7694
cmp ebx, eax
jne 0x4c7694
mov eax, dword [esp + 0x20]
cmp eax, edi
jne 0x4c765d
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4c7694
push 1
mov ecx, ebp
call fcn.004138c0
mov eax, dword [esp + 0x20]
cmp eax, edi
jne 0x4c7679
mov eax, 0x6dd1f8
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4c76cc
push 1
push ebx
mov ecx, ebp
call fcn.00414230
test al, al
je 0x4c76cc
mov esi, dword [esp + 0x20]
cmp esi, edi
jne 0x4c76af
mov esi, 0x6dd1f8
mov edi, dword [ebp + 4]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.00414210
xor edi, edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x54], 1
mov byte [esp + 0x134], 2
call fcn.0061d8c0
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x4c770a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c7701
cmp al, 0xff
je 0x4c7701
dec al
mov byte [ecx], al
jmp 0x4c770a
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x140]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov byte [esp + 0x134], 0
call fcn.0061d8c0
mov eax, ebp
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x128
ret 8