Function at 0x4c8f30
Capabilities:
Check if file exists
Clear file content
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x558e51
mov eax, dword fs:[0]
push eax
mov eax, 0x8510
call fcn.00520bc0
mov eax, dword [0x5a9008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x8508], edi
cmp dword [ebp + 0xc], 0
mov eax, dword [edi + 8]
mov ebx, dword [ebp + 8]
movzx ecx, word [eax + 0x93d2]
mov dword [ebp - 0x84f8], ecx
jne 0x4c8fab
cmp byte [edi + 0x5f], 0
je 0x4ca39f
push ecx
push 0
lea edx, [edi + 0x10]
mov ecx, ebx
call fcn.004d2860
add esp, 8
test al, al
je 0x4c9049
mov ecx, dword [ebp - 0x84f8]
mov eax, dword [ebx + 0x21e4]
cmp eax, 2
je 0x4c9076
cmp dword [ebx + 0x7df8], 2
jne 0x4c8ff3
cmp eax, 0x77
jne 0x4c8ff3
cmp byte [edi + 0x10f5], 0
je 0x4c8fe5
mov ecx, dword [edi + 8]
lea eax, [edi + 0x10f6]
push eax
mov edx, ebx
call fcn.004d4e30
add esp, 4
mov ecx, ebx
call fcn.004cd340
mov al, 1
jmp 0x4ca3a1
cmp eax, 3
jne 0x4c9023
cmp byte [edi + 0x10f5], 0
je 0x4c8fe5
mov ecx, dword [edi + 8]
lea eax, [edi + 0x10f6]
push eax
mov edx, ebx
call fcn.004d4e80
add esp, 4
mov ecx, ebx
call fcn.004cd340
mov al, 1
jmp 0x4ca3a1
cmp eax, 5
jne 0x4c8fe5
cmp byte [ebx + 0x56f4], 0
je 0x4ca39f
push ecx
push 0
lea edx, [edi + 0x10]
mov ecx, ebx
call fcn.004d2860
add esp, 8
test al, al
jne 0x4c905a
push 1
mov ecx, 0x5aa7f8
call fcn.004d3050
jmp 0x4ca39f
mov eax, dword [ebx]
mov ecx, ebx
push 0
push dword [ebx + 0x7dec]
push dword [ebx + 0x7de8]
call dword [eax + 0x10]
mov al, 1
jmp 0x4ca3a1
mov byte [edi + 0x10f5], 0
cmp dword [ebx + 0x4424], 0
jg 0x4c90a5
jl 0x4c9091
cmp dword [ebx + 0x4420], 0
jae 0x4c90a5
mov dword [ebx + 0x4420], 0
mov dword [ebx + 0x4424], 0
cmp dword [ebx + 0x442c], 0
jg 0x4c90cd
jl 0x4c90b9
cmp dword [ebx + 0x4428], 0
jae 0x4c90cd
mov dword [ebx + 0x4428], 0
mov dword [ebx + 0x442c], 0
mov ecx, dword [edi + 8]
cmp dword [ecx + 0x6160], 0
jne 0x4c90f4
mov eax, dword [edi + 0xec]
cmp eax, dword [ecx + 0xb40c]
jb 0x4c90f4
cmp byte [edi + 0xf1], 0
jne 0x4ca39f
push ecx
lea edx, [ebp - 0x331c]
mov byte [ebp - 0x84f1], 0
push edx
push ecx
lea edx, [ebp - 0x84f1]
lea eax, [ebx + 0x33c8]
push edx
push eax
call fcn.004d3590
mov esi, dword [edi + 8]
test eax, eax
setne al
mov dword [ebp - 0x8504], eax
cmp dword [esi + 0x615c], 2
jne 0x4c9199
push 0x7ff
lea eax, [ebp - 0x331c]
add esi, 0x4028
push eax
push esi
call fcn.0053048c
xor eax, eax
add esp, 0xc
mov word [esi + 0xffe], ax
mov ecx, dword [edi + 8]
add ecx, 0x4028
call fcn.004cb610
xor ecx, ecx
mov word [eax], cx
mov eax, dword [edi + 8]
add eax, 0x4028
je 0x4c9183
push 0x57df40
push eax
call fcn.00508133
add esp, 8
neg eax
sbb eax, eax
neg eax
test al, al
je 0x4c9193
mov eax, dword [edi + 8]
xor ecx, ecx
mov word [eax + 0x4028], cx
mov eax, dword [ebp - 0x8504]
test al, al
je 0x4c91ad
cmp byte [ebp - 0x84f1], 0
jne 0x4c91ad
mov byte [edi + 0xf1], 0
cmp dword [ebx + 0x44c4], 0
je 0x4c91d0
cmp byte [ebx + 0x44b9], 0
mov eax, 0x20
mov ecx, 0x10
cmovne eax, ecx
mov dword [ebx + 0x33ec], eax
lea ecx, [ebx + 0x33f0]
lea edx, [ebp - 0x231c]
call fcn.004cb680
cmp byte [ebx + 0x44bb], 0
je 0x4c9277
mov eax, dword [edi + 8]
mov edx, dword [eax + 0x7394]
cmp edx, 1
je 0x4c929e
cmp byte [ebp - 0x84f1], 0
jne 0x4c929e
mov eax, dword [ebp - 0x8504]
xor ecx, ecx
movzx eax, al
test edx, edx
push 0x3b
cmovne ecx, eax
lea eax, [ebp - 0x231c]
push eax
mov byte [ebp - 0x8504], cl
xor esi, esi
call fcn.005303e8
add esp, 8
test eax, eax
je 0x4c9244
lea ecx, [eax + 2]
call fcn.004c8ca0
mov esi, eax
mov ecx, dword [edi + 8]
mov ecx, dword [ecx + 0x7394]
dec ecx
cmp ecx, esi
jne 0x4c926e
lea eax, [ebp - 0x231c]
push 0x3b
push eax
call fcn.005303e8
add esp, 8
test eax, eax
je 0x4c929e
xor ecx, ecx
mov word [eax], cx
jmp 0x4c929e
mov byte [ebp - 0x8504], 0
jmp 0x4c929e
cmp byte [ebx + 0x44b9], 0
jne 0x4c929e
mov eax, dword [edi + 8]
xor edx, edx
mov ecx, dword [ebp - 0x8504]
movzx ecx, cl
cmp dword [eax + 0x7394], 1
cmova ecx, edx
mov dword [ebp - 0x8504], ecx
mov al, byte [ebx + 0x4461]
mov byte [edi + 0x5f], al
mov byte [edi + 0x60], 0
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x7df0]
sub ecx, dword [ebx + 0x4420]
push 0
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x7df4]
sbb eax, dword [ebx + 0x4424]
push eax
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebp - 0x8504]
xor cl, cl
mov byte [ebp - 0x84ed], cl
cmp byte [edi + 0xf0], cl
je 0x4c932c
test al, al
jne 0x4c92f2
cmp byte [ebx + 0x7dfc], al
je 0x4c932c
cmp byte [ebx + 0x4460], 0
je 0x4c932c
test al, al
je 0x4c931c
mov eax, dword [edi + 8]
mov dword [eax + 0x93b4], 0xc
inc dword [0x5aa7fc]
mov dword [0x5aa7f8], 6
mov byte [ebp - 0x8504], 0
mov byte [edi + 0xf0], 0
jmp 0x4c9337
mov byte [edi + 0xf0], 0
test al, al
jne 0x4c934b
mov al, byte [ebx + 0x7dfc]
mov byte [ebp - 0x84ed], al
test al, al
je 0x4ca376
push ecx
lea esi, [edi + 0x10f6]
mov ecx, edi
push esi
lea eax, [ebp - 0x231c]
push eax
push ebx
call fcn.004ca510
cmp byte [ebp - 0x84ed], 0
jne 0x4c9381
cmp word [esi], 0
je 0x4c9381
cmp byte [ebx + 0x4460], 0
mov byte [ebp - 0x84fc], 1
je 0x4c9388
mov byte [ebp - 0x84fc], 0
mov eax, dword [edi + 8]
cmp byte [eax + 0x6157], 0
jne 0x4c93a1
cmp byte [eax + 0x6158], 0
je 0x4c944b
mov eax, dword [ebp - 0x84f8]
cmp ax, 0x45
je 0x4c93b7
cmp ax, 0x58
jne 0x4c944b
xorps xmm0, xmm0
lea edx, [ebp - 0x84ec]
push ecx
mov ecx, esi
movlpd qword [ebp - 0x74dc], xmm0
movlpd qword [ebp - 0x74d4], xmm0
movlpd qword [ebp - 0x74cc], xmm0
call fcn.004d5e20
add esp, 4
test al, al
je 0x4c942e
mov esi, dword [ebx + 0x440c]
mov ecx, dword [ebp - 0x74d8]
mov edx, dword [ebx + 0x4408]
mov eax, dword [ebp - 0x74dc]
cmp ecx, esi
ja 0x4c9411
jb 0x4c9409
cmp eax, edx
ja 0x4c9411
cmp eax, edx
jne 0x4c944b
cmp ecx, esi
jne 0x4c944b
cmp byte [ebp - 0x74e0], 0
je 0x4c9425
cmp ecx, dword [edi + 4]
ja 0x4c944b
jb 0x4c9425
cmp eax, dword [edi]
jae 0x4c944b
mov byte [ebp - 0x84fc], 0
jmp 0x4c944b
mov eax, dword [edi + 8]
xor edx, edx
mov ecx, dword [ebp - 0x84fc]
movzx ecx, cl
cmp byte [eax + 0x6157], dl
cmovne ecx, edx
mov dword [ebp - 0x84fc], ecx
cmp dword [ebx + 0x7df8], 3
mov eax, dword [ebx + 0x33e4]
jne 0x4c9462
cmp eax, 0x32
seta al
jmp 0x4c946c
add eax, 0xfffffff3
cmp eax, 0x10
jbe 0x4c94b4
mov al, 1
xor ecx, ecx
movzx eax, al
cmp byte [ebx + 0x33e8], cl
cmovne ecx, eax
test cl, cl
je 0x4c94b4
push 2
mov ecx, 0x5aa7f8
call fcn.004d3050
push 2
call fcn.004d3050
mov eax, dword [edi + 8]
mov ecx, ebx
mov dword [eax + 0x93b4], 0xe
call fcn.004cd340
cmp byte [ebx + 0x7dfc], 0
sete al
jmp 0x4ca3a1
cmp byte [ebx + 0x4463], 0
je 0x4c95f0
mov eax, dword [edi + 8]
cmp byte [eax + 0x5128], 0
jne 0x4c95f0
mov ecx, dword [eax + 0x93bc]
test ecx, ecx
je 0x4c95d8
xor edx, edx
mov word [ebp - 0x29c], dx
lea edx, [ebp - 0x29c]
push 0x80
push edx
push dword [eax + 0x93b8]
push 4
call ecx
cmp eax, 0xffffffff
jne 0x4c950e
xor eax, eax
mov word [ebp - 0x29c], ax
jmp 0x4c951c
cmp word [ebp - 0x29c], 0
jne 0x4c959c
mov eax, dword [edi + 8]
lea edx, [ebp - 0x9c]
push 0x80
push edx
mov byte [ebp - 0x9c], 0
push dword [eax + 0x93b8]
mov ecx, dword [eax + 0x93bc]
push 2
call ecx
movzx ecx, byte [ebp - 0x9c]
xor edx, edx
cmp eax, 0xffffffff
push 0x80
cmove ecx, edx
xor eax, eax
mov word [ebp - 0x29c], ax
lea eax, [ebp - 0x29c]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x9c]
mov byte [ebp - 0x9c], cl
push eax
push edx
push edx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor eax, eax
mov ecx, 0x80
mov word [ebp - 0x19e], ax
lea eax, [ebp - 0x9c]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x4c9591
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x29c]
add ecx, 0x5028
push eax
call fcn.004c8560
mov ecx, 0x100
lea eax, [ebp - 0x29c]
nop dword [eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x4c95c0
mov eax, dword [edi + 8]
mov byte [eax + 0x512b], 1
mov eax, dword [edi + 8]
cmp byte [eax + 0x5128], 0
jne 0x4c95f0
mov dword [eax + 0x93b4], 0x16
jmp 0x4ca39f
mov esi, dword [edi + 8]
mov ecx, 0x40
add esi, 0x5028
lea edi, [ebp - 0x5424]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dword [ebp - 4], 0
cmp dword [ebx + 0x7df8], 2
jne 0x4c9711
cmp byte [ebx + 0x33e0], 0
jne 0x4c9711
mov eax, dword [ebp - 0x8508]
mov eax, dword [eax + 8]
cmp byte [eax + 0x5128], 0
lea esi, [eax + 0x5028]
je 0x4c9676
mov ecx, 0x40
lea edi, [ebp - 0x19c]
rep movsd dword es:[edi], dword [esi]
movzx eax, byte [eax + 0x5129]
lea ecx, [ebp - 0x19c]
push eax
push 0
mov edx, 0x100
call fcn.004c8720
add esp, 8
xor eax, eax
mov word [ebp - 0x9e], ax
jmp 0x4c967f
xor eax, eax
mov word [ebp - 0x19c], ax
push 0x80
lea eax, [ebp - 0x31c]
push eax
lea eax, [ebp - 0x19c]
push eax
call dword [sym.imp.USER32.dll_CharToOemBuffW]
xor eax, eax
mov byte [ebp - 0x29d], 0
push 0x80
mov word [ebp - 0x19c], ax
lea eax, [ebp - 0x19c]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x31c]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor eax, eax
lea ecx, [ebp - 0x5424]
mov word [ebp - 0x9e], ax
lea eax, [ebp - 0x19c]
push eax
call fcn.004c8560
mov ecx, 0x100
lea eax, [ebp - 0x19c]
nop dword [eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x4c96f0
mov ecx, 0x80
lea eax, [ebp - 0x31c]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x4c9706
mov edi, dword [ebp - 0x8508]
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebx + 0x4493]
push eax
push dword [ebx + 0x44b4]
lea ecx, [ebx + 0x4479]
push ecx
xor ecx, ecx
lea eax, [ebx + 0x4469]
cmp byte [ebx + 0x4468], cl
cmove eax, ecx
push eax
lea eax, [ebp - 0x5424]
push eax
push dword [ebx + 0x4464]
push ecx
mov ecx, dword [edi + 0x54]
call fcn.004e4f50
mov byte [edi + 0xdd], al
cmp byte [ebx + 0x4463], 0
je 0x4c97e9
cmp byte [ebx + 0x4489], 0
je 0x4c97e9
mov eax, dword [ebx + 0x448a]
lea ecx, [ebp - 0x1c]
cmp eax, dword [ecx]
jne 0x4c978b
mov eax, dword [ebx + 0x448e]
cmp eax, dword [ecx + 4]
je 0x4c97e9
cmp byte [ebx + 0x7e0c], 0
jne 0x4c97e9
cmp byte [edi + 0x10f4], 0
jne 0x4c97bc
mov eax, dword [edi + 8]
mov ecx, 0x100
add eax, 0x5028
mov byte [eax + 0x100], 0
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x4c97b1
mov eax, dword [edi + 8]
cmp dword [eax + 0x93b4], 0xf
je 0x4c97d2
mov dword [eax + 0x93b4], 0x18
inc dword [0x5aa7fc]
mov dword [0x5aa7f8], 0xb
mov byte [ebp - 0x84fc], 0
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x100
mov byte [ebp - 0x5324], 0
lea eax, [ebp - 0x5424]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x4c9802
mov eax, dword [edi + 8]
lea edx, [edi + 0x10f6]
add eax, 0x83b0
cmp word [eax], cx
je 0x4c983e
push 0x7ff
push eax
push edx
call fcn.0053048c
add esp, 0xc
lea edx, [edi + 0x10f6]
xor eax, eax
mov word [edx + 0xffe], ax
lea ecx, [ebp - 0x6464]
call fcn.004d52d0
mov dword [ebp - 4], 1
mov eax, dword [ebx + 0x44c8]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x8508], eax
test eax, eax
je 0x4c9917
cmp eax, 5
je 0x4c9917
cmp byte [ebp - 0x84fc], 0
je 0x4c99df
cmp word [ebp - 0x84f8], 0x50
je 0x4c9a06
mov eax, dword [edi + 8]
cmp byte [eax + 0x62d1], 0
jne 0x4c9a06
push edx
mov byte [ebp - 0x84fd], 0
call esi
cmp eax, 0xffffffff
jne 0x4c98dc
push ecx
lea edx, [ebp - 0x431c]
lea ecx, [edi + 0x10f6]
call fcn.004cbc50
add esp, 4
test al, al
je 0x4c9a06
lea eax, [ebp - 0x431c]
push eax
call esi
cmp eax, 0xffffffff
je 0x4c9a06
push 0
sub esp, 0xc
lea eax, [ebp - 0x84fd]
xor edx, edx
push eax
push ecx
mov ecx, dword [edi + 8]
lea eax, [edi + 0x10f6]
push eax
call fcn.004e26f0
add esp, 0x1c
cmp byte [ebp - 0x84fd], 0
je 0x4c9a06
xor dl, dl
mov dword [ebp - 0x84fc], edx
jmp 0x4c99e5
cmp byte [ebx + 0x44b9], 0
je 0x4c99b8
cmp byte [ebp - 0x84fc], 0
je 0x4c9966
mov eax, dword [ebp - 0x84f8]
cmp ax, 0x50
je 0x4c9966
cmp ax, 0x49
je 0x4c9966
cmp ax, 0x45
je 0x4c9966
mov eax, dword [edi + 8]
cmp dword [eax + 0x615c], 1
je 0x4c9966
inc dword [edi + 0xe4]
lea eax, [ebp - 0x231c]
push eax
push ebx
mov ecx, edi
call fcn.004ca8c0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x645c], 0xffffffff
mov dword [ebp - 0x6464], 0x57e048
je 0x4c906f
cmp byte [ebp - 0x6450], 0
jne 0x4c906f
cmp byte [ebp - 0x644e], 0
lea ecx, [ebp - 0x6464]
je 0x4c99ac
call fcn.004d5700
mov al, 1
jmp 0x4ca3a1
call fcn.004d56a0
mov al, 1
jmp 0x4ca3a1
mov edx, dword [ebp - 0x84fc]
test dl, dl
je 0x4c99e5
lea eax, [ebp - 0x6464]
push eax
push ecx
mov ecx, edi
call fcn.004cab50
mov dl, al
mov dword [ebp - 0x84fc], edx
test al, al
jne 0x4c9a06
jmp 0x4c99e5
mov edx, dword [ebp - 0x84fc]
cmp byte [ebx + 0x7dfc], 0
je 0x4c99fe
mov dl, 1
mov byte [ebp - 0x84ed], dl
mov byte [ebp - 0x84fc], dl
jmp 0x4c9a0c
test dl, dl
je 0x4ca2d0
mov dl, byte [ebp - 0x84ed]
mov ecx, dword [edi + 8]
mov al, byte [ecx + 0x62d1]
test al, al
je 0x4c9a2a
mov byte [edi + 0x10f5], 1
mov al, byte [ecx + 0x62d1]
test al, al
jne 0x4c9a67
test dl, dl
jne 0x4c9a67
cmp word [ebp - 0x84f8], 0x50
mov byte [ebp - 0x84f0], dl
je 0x4c9a72
mov eax, dword [ebp - 0x645c]
cmp eax, 0xffffffff
je 0x4c9a72
push eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 2
je 0x4ca3bf
cmp eax, 3
je 0x4ca3bf
mov ecx, dword [edi + 8]
jmp 0x4c9a72
mov byte [ebp - 0x84f0], 1
test dl, dl
jne 0x4c9a78
inc dword [edi + 0xe4]
inc dword [edi + 0xe8]
mov edx, ecx
mov eax, dword [ebp - 0x84f8]
cmp ax, 0x49
je case.0x4c9ab0.70
cmp byte [ebp - 0x84ed], 0
jne case.0x4c9ab0.80
cmp byte [ecx + 0x62d1], 0
jne case.0x4c9ab0.80
movzx eax, ax
sub eax, 0x45
cmp eax, 0x13
ja case.0x4c9ab0.70
movzx eax, byte [eax + 0x4ca3d8]
jmp dword [eax*4 + 0x4ca3cc]
lea eax, [edi + 0x10f6]
push eax
push 0x574454
call fcn.0040f930
mov edx, dword [edi + 8]
jmp 0x4c9ae0
lea eax, [ebp - 0x231c]
push eax
push 0x574454
call fcn.0040f930
mov edx, ecx
add esp, 8
mov dword [edi + 0x80], 0
lea ecx, [edi + 0xc8]
mov dword [edi + 0x84], 0
mov dword [edi + 0x88], 0
mov dword [edi + 0x8c], 0
push dword [edx + 0x83ac]
push dword [ebx + 0x4438]
call fcn.004e22b0
mov eax, dword [edi + 8]
lea ecx, [edi + 0xa0]
push dword [eax + 0x83ac]
push dword [ebx + 0x4438]
call fcn.004e22b0
mov eax, dword [ebx + 0x4420]
mov ecx, dword [ebx + 0x4424]
mov dword [edi + 0x30], eax
lea eax, [ebp - 0x6464]
mov dword [edi + 0x34], ecx
mov cl, byte [ebp - 0x84f0]
mov dword [edi + 0x40], eax
mov al, byte [ebp - 0x84ed]
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x58], 0xffffffff
mov byte [edi + 0x39], cl
mov byte [edi + 0x3a], al
test cl, cl
jne 0x4c9bfd
cmp byte [ebx + 0x7e0c], cl
jne 0x4c9bfd
mov ecx, dword [ebx + 0x4420]
mov eax, dword [ebx + 0x4424]
mov esi, dword [ebx + 0x442c]
mov edx, dword [ebx + 0x4428]
shld eax, ecx, 0xb
shl ecx, 0xb
cmp eax, esi
jl 0x4c9bfd
jg 0x4c9bac
cmp ecx, edx
jbe 0x4c9bfd
test esi, esi
jl 0x4c9bd3
jg 0x4c9bba
cmp edx, 0x5f5e100
jb 0x4c9bd3
mov ecx, ebx
call fcn.004d5d80
cmp edx, dword [ebx + 0x4424]
jl 0x4c9bfd
jg 0x4c9bd3
cmp eax, dword [ebx + 0x4420]
jbe 0x4c9bfd
push dword [ebx + 0x442c]
lea ecx, [ebp - 0x6464]
push dword [ebx + 0x4428]
call fcn.004d5c20
mov eax, dword [edi + 8]
cmp byte [eax + 0x61a0], 0
sete byte [ebp - 0x644d]
jmp 0x4c9c18
mov eax, dword [edi + 8]
mov cl, byte [ebp - 0x84f0]
cmp byte [eax + 0x61a0], 0
sete byte [ebp - 0x644d]
test cl, cl
jne 0x4c9c2f
cmp byte [ebp - 0x84ed], 0
jne 0x4c9c2f
cmp word [ebp - 0x84f8], 0x50
je 0x4c9c2f
mov dl, 1
jmp 0x4c9c31
xor dl, dl
cmp dword [ebp - 0x8508], 0
mov cl, 1
mov byte [ebp - 0x84ef], dl
mov byte [ebp - 0x84fe], 1
mov byte [ebp - 0x84ee], cl
je 0x4c9fae
mov esi, dword [ebx + 0x44c8]
cmp esi, 4
je 0x4c9cb4
cmp esi, 5
je 0x4c9cb4
cmp esi, 1
je 0x4c9c7f
cmp esi, 2
je 0x4c9c7f
cmp esi, 3
je 0x4c9c7f
xor al, al
mov byte [ebp - 0x84ee], al
jmp 0x4c9f80
test dl, dl
je 0x4c9f6d
cmp dword [ebx + 0x7df8], 3
jne 0x4c9c72
lea ecx, [ebx + 0x33c8]
push ecx
lea edx, [edi + 0x10f6]
mov ecx, eax
call fcn.004d46f0
mov cl, al
add esp, 4
mov byte [ebp - 0x84ee], cl
jmp 0x4c9d91
push ecx
lea eax, [ebp - 0x131c]
mov ecx, edi
push eax
lea eax, [ebx + 0x44cc]
push eax
push ebx
call fcn.004ca510
mov dl, byte [ebp - 0x84ef]
test dl, dl
je 0x4c9f6d
cmp word [ebp - 0x131c], 0
je 0x4c9f6d
lea edx, [ebp - 0x131c]
push ecx
mov ecx, edx
call fcn.004cbb50
add esp, 4
cmp esi, 4
jne 0x4c9daa
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov eax, edx
push eax
call esi
cmp eax, 0xffffffff
jne 0x4c9d55
push ecx
lea edx, [ebp - 0x531c]
lea ecx, [ebp - 0x131c]
call fcn.004cbc50
add esp, 4
test al, al
je 0x4c9d38
lea eax, [ebp - 0x531c]
push eax
call esi
cmp eax, 0xffffffff
jne 0x4c9d55
inc dword [0x5aa7fc]
xor al, al
mov dword [0x5aa7f8], 9
mov byte [ebp - 0x84ee], al
jmp 0x4c9f80
lea esi, [edi + 0x10f6]
mov ecx, esi
call fcn.004d61c0
push 0
lea eax, [ebp - 0x131c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateHardLinkW]
test eax, eax
setne cl
mov byte [ebp - 0x84ee], cl
test eax, eax
jne 0x4c9d91
inc dword [0x5aa7fc]
mov dword [0x5aa7f8], 9
mov al, byte [ebp - 0x84ee]
test cl, cl
je 0x4c9f80
mov dl, byte [ebp - 0x84ef]
jmp 0x4c9f73
lea ecx, [ebp - 0x74a4]
call fcn.004d52d0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x131c]
mov eax, dword [ebp - 0x74a4]
push 0
push ecx
lea ecx, [ebp - 0x74a4]
mov eax, dword [eax + 4]
call eax
test al, al
jne 0x4c9e4f
inc dword [0x5aa7fc]
mov dword [0x5aa7f8], 6
mov eax, dword [edi + 8]
mov dword [eax + 0x93b4], 0x17
mov byte [ebp - 4], 1
cmp dword [ebp - 0x749c], 0xffffffff
mov dword [ebp - 0x74a4], 0x57e048
je 0x4c9c72
cmp byte [ebp - 0x7490], 0
jne 0x4c9c72
cmp byte [ebp - 0x748e], 0
lea ecx, [ebp - 0x74a4]
je 0x4c9e3d
call fcn.004d5700
xor al, al
mov byte [ebp - 0x84ee], al
jmp 0x4c9f80
call fcn.004d56a0
xor al, al
mov byte [ebp - 0x84ee], al
jmp 0x4c9f80
push 0x100000
lea ecx, [ebp - 0x851c]
mov dword [ebp - 0x851c], 0
mov dword [ebp - 0x8518], 0
mov dword [ebp - 0x8514], 0
mov dword [ebp - 0x8510], 0
mov byte [ebp - 0x850c], 0
call fcn.004c8480
mov byte [ebp - 4], 3
call fcn.004d37d0
push dword [ebp - 0x8518]
mov esi, dword [ebp - 0x851c]
lea ecx, [ebp - 0x74a4]
push esi
call fcn.004d5880
test eax, eax
je 0x4c9edb
push eax
push esi
lea ecx, [ebp - 0x6464]
call fcn.004d5790
call fcn.004d37d0
push dword [ebp - 0x8518]
lea ecx, [ebp - 0x74a4]
push esi
call fcn.004d5880
test eax, eax
jne 0x4c9eb3
mov byte [ebp - 4], 2
test esi, esi
je 0x4c9f14
cmp byte [ebp - 0x850c], 0
je 0x4c9f0b
mov ecx, dword [ebp - 0x8514]
test ecx, ecx
je 0x4c9f0b
mov eax, esi
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x4c9f00
push esi
call fcn.004f5d5f
add esp, 4
mov byte [ebp - 4], 1
cmp dword [ebp - 0x749c], 0xffffffff
mov dword [ebp - 0x74a4], 0x57e048
je 0x4c9f5d
cmp byte [ebp - 0x7490], 0
jne 0x4c9f5d
cmp byte [ebp - 0x748e], 0
lea ecx, [ebp - 0x74a4]
je 0x4c9f58
call fcn.004d5700
mov dl, byte [ebp - 0x84ef]
mov al, 1
mov byte [ebp - 0x84ee], al
jmp 0x4c9f73
call fcn.004d56a0
mov dl, byte [ebp - 0x84ef]
mov al, 1
mov byte [ebp - 0x84ee], al
jmp 0x4c9f73
mov al, byte [ebp - 0x84ee]
cmp dword [ebx + 0x7df8], 2
jne 0x4c9f87
test dl, dl
jne 0x4c9f90
mov byte [ebp - 0x84fe], 0
cmp byte [ebp - 0x84ef], 0
je 0x4c9fa1
test al, al
je 0x4c9fa1
mov al, 1
mov byte [edi + 0x10f5], al
jmp 0x4ca069
xor al, al
mov byte [edi + 0x10f5], al
jmp 0x4ca069
cmp byte [ebx + 0x4460], 0
jne 0x4ca069
cmp byte [ebx + 0x33e8], 0
jne 0x4c9fe0
push dword [ebx + 0x442c]
lea ecx, [edi + 0x10]
push dword [ebx + 0x4428]
call fcn.004ca3f0
add esp, 8
jmp 0x4ca069
movzx eax, byte [ebx + 0x44b8]
mov ecx, dword [edi + 0xe0]
push eax
push dword [ebx + 0x44bc]
call fcn.004e18a0
mov edx, dword [edi + 0xe0]
mov eax, dword [ebx + 0x4428]
mov ecx, dword [ebx + 0x442c]
mov dword [edx + 0x4c48], eax
mov dword [edx + 0x4c4c], ecx
mov byte [edx + 0x4c60], 0
cmp dword [ebx + 0x7df8], 3
je 0x4ca050
cmp dword [ebx + 0x33e4], 0xf
ja 0x4ca050
cmp dword [edi + 0xe8], 1
jbe 0x4ca049
cmp byte [ebx + 0x7dfc], 0
je 0x4ca049
mov al, 1
push eax
push 0xf
jmp 0x4ca05e
xor al, al
push eax
push 0xf
jmp 0x4ca05e
movzx eax, byte [ebx + 0x44b8]
push eax
push dword [ebx + 0x33e4]
mov ecx, dword [edi + 0xe0]
call fcn.004e1ad0
mov ecx, ebx
call fcn.004cd340
cmp byte [ebx + 0x4461], 0
lea esi, [ebx + 0x4438]
jne 0x4ca0a5
xor ecx, ecx
lea eax, [ebx + 0x4493]
cmp byte [ebx + 0x4492], cl
cmove eax, ecx
lea ecx, [edi + 0xc8]
push eax
push esi
call fcn.004e2630
test al, al
je 0x4ca0a5
mov al, 1
jmp 0x4ca0a7
xor al, al
cmp byte [ebx + 0x44b8], 0
jne 0x4ca0b9
mov byte [edi + 0xf3], 0
jmp 0x4ca0e1
cmp byte [ebx + 0x33e8], 0
je 0x4ca0e1
cmp dword [ebx + 0x442c], 0
jl 0x4ca0e1
jg 0x4ca0d6
cmp dword [ebx + 0x4428], 0
jbe 0x4ca0e1
test al, al
je 0x4ca0e1
mov byte [edi + 0xf3], 1
xor dl, dl
cmp byte [ebp - 0x84ed], dl
jne 0x4ca142
cmp byte [ebp - 0x84fe], dl
je 0x4ca142
test al, al
je 0x4ca309
mov eax, dword [ebp - 0x84f8]
cmp ax, 0x50
je 0x4ca148
cmp ax, 0x49
je 0x4ca148
cmp dword [esi], 0
mov ecx, 0x574454
mov eax, 0x57deec
mov esi, str._b_b_b_b_b
cmovne eax, ecx
mov ecx, 0x575f08
push eax
mov eax, dword [edi + 8]
cmp byte [eax + 0x6148], dl
cmove ecx, esi
push ecx
push str._s_s
call fcn.0040f930
add esp, 0xc
mov eax, dword [ebp - 0x84f8]
cmp byte [ebp - 0x84f0], 0
jne 0x4ca2d0
cmp ax, 0x58
je 0x4ca165
cmp ax, 0x45
jne 0x4ca2d0
cmp dword [ebp - 0x8508], 0
je 0x4ca188
cmp dword [ebx + 0x44c8], 5
jne 0x4ca2d0
cmp byte [ebp - 0x84ee], 0
je 0x4ca2d0
test dl, dl
je 0x4ca1a8
mov eax, dword [edi + 8]
cmp byte [eax + 0x61a0], 0
je 0x4ca2d0
push dword [ebp - 0x645c]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov edx, dword [edi + 8]
cmp byte [edx + 0x6154], 0
je 0x4ca1be
and dword [ebx + 0x33ec], 0xffffffdf
mov edx, dword [edi + 8]
xor ecx, ecx
lea eax, [ebx + 0x4418]
cmp dword [edx + 0x73a8], ecx
cmovne ecx, eax
lea eax, [ebx + 0x4410]
push ecx
xor ecx, ecx
cmp dword [edx + 0x73a4], ecx
cmovne ecx, eax
lea eax, [ebx + 0x4408]
push ecx
xor ecx, ecx
cmp dword [edx + 0x73a0], ecx
cmovne ecx, eax
push ecx
lea ecx, [ebp - 0x6464]
call fcn.004d5c90
mov eax, dword [ebp - 0x645c]
mov cl, 1
test eax, eax
je 0x4ca25b
cmp eax, 0xffffffff
je 0x4ca239
cmp byte [ebp - 0x6450], 0
jne 0x4ca22f
cmp dword [ebp - 0x6454], 0
jne 0x4ca22f
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, 1
sete cl
mov dword [ebp - 0x645c], 0xffffffff
mov dword [ebp - 0x6454], 0
test cl, cl
jne 0x4ca25b
cmp byte [ebp - 0x644c], cl
je 0x4ca25b
push 2
mov ecx, 0x5aa7f8
call fcn.004d3050
mov eax, dword [edi + 8]
cmp byte [eax + 0x62a9], 0
je 0x4ca281
test dword [ebx + 0x33ec], 0x800
je 0x4ca281
lea ecx, [ebp - 0x642c]
call fcn.004d6550
mov eax, dword [edi + 8]
cmp byte [eax + 0x62aa], 0
jne 0x4ca2c9
mov esi, dword [ebx + 0x33ec]
lea eax, [ebp - 0x642c]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x4ca2c9
push ecx
lea edx, [ebp - 0x84a4]
lea ecx, [ebp - 0x642c]
call fcn.004cbc50
add esp, 4
test al, al
je 0x4ca2c9
push esi
lea eax, [ebp - 0x84a4]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov byte [edi + 0x10f5], 1
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x645c], 0xffffffff
mov dword [ebp - 0x6464], 0x57e048
je 0x4ca35b
cmp byte [ebp - 0x6450], 0
jne 0x4ca35b
cmp byte [ebp - 0x644e], 0
lea ecx, [ebp - 0x6464]
je 0x4ca356
call fcn.004d5700
jmp 0x4ca35b
mov eax, dword [0x5aa7f8]
mov ecx, 3
cmp eax, 0xb
mov dl, 1
cmovne eax, ecx
inc dword [0x5aa7fc]
mov dword [0x5aa7f8], eax
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 0x93b4]
cmp eax, 0xf
je 0x4ca142
cmp eax, 0x18
mov eax, dword [ebp - 0x84f8]
je 0x4ca148
mov dword [ecx + 0x93b4], 0xc
jmp 0x4ca148
call fcn.004d56a0
cmp byte [ebp - 0x8504], 0
mov ecx, dword [ebp - 0x84fc]
mov al, byte [ebp - 0x84ed]
je 0x4ca376
inc dword [edi + 0xec]
cmp byte [edi + 0x60], 0
jne 0x4ca39f
test cl, cl
jne 0x4c906f
cmp byte [ebx + 0x7dfc], cl
jne 0x4ca397
mov ecx, ebx
call fcn.004cd340
mov al, 1
jmp 0x4ca3a1
test al, al
jne 0x4c906f
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004ef615
mov esp, ebp
pop ebp
ret 0xc
push ecx
call fcn.0040f930
push ecx
call fcn.004d2fe0
nop
mov bh, 0x9a
dec esp
add ch, cl
lcall 0x4c, 0x9ae3004c
add byte [edx], al
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [ecx]
add al, byte [edx]
add al, byte [ecx]
add al, byte [edx]
add al, byte [eax]
int3