Function at 0x401000
Capabilities:
Accept command line arguments
Encode data using base64
Encode data using xor
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b4
mov eax, 0x410
mov word [ebp - 0x98], ax
mov byte [ebp - 0x111], 0x34
movsx ecx, word [ebp - 0x98]
cmp ecx, 0x1e
jl 0x402d81
movsx edx, word [ebp - 0x98]
sub edx, 0x76d
cmp edx, 0x51b
jge 0x402d50
movsx eax, word [ebp - 0x98]
mov dword [ebp - 0x188], eax
cmp dword [ebp - 0x188], 0x36a
je 0x4010db
cmp dword [ebp - 0x188], 0x410
je 0x40106f
jmp 0x401119
push 0
push 0x400
push 1
push 0
push 1
push 0xc0000000
push str.9UidMt2e35o3dGPJxW7mlIxWN
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x170], eax
mov cl, byte [ebp - 0x111]
mov byte [ebp - 0x31], cl
mov dword [ebp - 0x140], 0x77e6
mov dword [ebp - 0xb4], 0x7dc5
movzx edx, byte [section..data]
or edx, 0x59
mov byte [section..data], dl
mov ax, word [ebp - 0x98]
mov word [ebp - 0x104], ax
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0x16c], ecx
jmp 0x401119
movsx edx, byte [ebp - 0x111]
xor edx, 0x3a
mov byte [ebp - 0x31], dl
lea eax, [ebp - 0x16c]
push eax
push 0x3e
lea ecx, [ebp - 0xb0]
push ecx
call dword [sym.imp.ole32.dll_OleRegGetMiscStatus]
mov dword [ebp - 0x4c], eax
movzx edx, byte [ebp - 0x31]
push edx
movzx eax, word [ebp - 0x98]
push eax
mov dl, byte [ebp - 0x31]
mov cl, byte [ebp - 0x31]
call fcn.00402f00
cmp dword [ebp - 0x140], 0x4652
jb 0x401290
movsx ecx, byte [ebp - 0x111]
shl ecx, 4
mov byte [ebp - 0x31], cl
movzx edx, byte [section..data]
sar edx, 6
mov byte [section..data], dl
mov eax, dword [ebp - 0x16c]
add eax, 0xf2
mov dword [ebp - 0xb4], eax
movsx ecx, byte [ebp - 0x31]
sub ecx, 0x63
mov byte [ebp - 0x111], cl
movsx edx, byte [ebp - 0x111]
and edx, 0x3d
mov byte [ebp - 0x31], dl
movsx eax, byte [ebp - 0x31]
sub eax, 0x71
mov byte [ebp - 0x111], al
mov ecx, dword [ebp - 0xb4]
add ecx, 0x11b1
mov dword [ebp - 0x16c], ecx
movsx edx, byte [ebp - 0x31]
sub edx, 0x4e
mov byte [ebp - 0x111], dl
mov eax, dword [ebp - 0xb4]
add eax, 0x4c9e
mov dword [ebp - 0x16c], eax
movzx ecx, byte [section..data]
shl ecx, 3
mov byte [section..data], cl
movsx edx, byte [ebp - 0x111]
or edx, 0x7b
mov byte [ebp - 0x31], dl
movsx eax, word [ebp - 0x104]
xor eax, 0x430
mov word [ebp - 0x98], ax
movsx ecx, byte [ebp - 0x31]
sar ecx, 3
mov byte [ebp - 0x111], cl
movsx edx, word [ebp - 0x104]
and edx, 0x319
mov word [ebp - 0x98], dx
movsx eax, byte [ebp - 0x111]
add eax, 0x3f
mov byte [ebp - 0x31], al
movsx ecx, byte [ebp - 0x111]
sub ecx, 0x11
mov byte [ebp - 0x31], cl
mov edx, dword [ebp - 0x16c]
add edx, 0x2be8
mov dword [ebp - 0xb4], edx
movzx eax, byte [section..data]
sub eax, 0x65
mov byte [section..data], al
mov ecx, dword [ebp - 0x140]
sub ecx, 0xa7
mov dword [ebp - 0x140], ecx
movsx edx, word [ebp - 0x98]
and edx, 0xfc
mov word [ebp - 0x104], dx
mov eax, dword [ebp - 0xb4]
add eax, 0x1b90
mov dword [ebp - 0x16c], eax
movsx ecx, byte [ebp - 0x111]
sub ecx, 0x1d
mov byte [ebp - 0x31], cl
movsx edx, byte [ebp - 0x31]
add edx, 0x4b
mov byte [ebp - 0x111], dl
jmp 0x401119
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x2c], 0xabdf
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x94], ecx
lea edx, [ebp - 0xb4]
mov dword [ebp - 0xc8], edx
movsx eax, word [ebp - 0x98]
sub eax, 0x140
movsx ecx, word [ebp - 0x104]
cmp eax, ecx
jne 0x4012f2
movzx edx, byte [section..data]
shl edx, 4
mov byte [section..data], dl
mov eax, dword [ebp - 0x2c]
shr eax, 8
mov dword [ebp - 0x2c], eax
call fcn.00402da0
jmp 0x401336
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x180], ecx
mov dl, byte [ebp - 0x31]
mov byte [ebp - 0x171], dl
mov dword [ebp - 0xf0], 0x46f1
lea eax, [ebp - 0x2c]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
and edx, dword [ebp - 0x16c]
mov dword [ebp - 0xb4], edx
mov al, byte [section..data]
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx]
mov dword [ebp - 0x150], edx
mov al, byte [ebp - 0x31]
mov byte [ebp - 0x18c], al
cmp byte [ebp - 0x18c], 0xe2
je 0x40138e
cmp byte [ebp - 0x18c], 0x30
je 0x401364
jmp 0x402d26
mov ecx, dword [ebp - 0x94]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x16c]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0x150]
add eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], eax
jmp 0x402d26
mov edx, dword [ebp - 0x180]
movsx eax, word [edx]
mov dword [ebp - 0x190], eax
cmp dword [ebp - 0x190], 0x356
je 0x4013ab
jmp 0x4013cd
movzx ecx, byte [section..data]
add ecx, 0x20
mov byte [ebp - 0x11], cl
movzx edx, word [ebp - 0x104]
push edx
call fcn.00402e50
add esp, 4
jmp 0x402d17
lea eax, [ebp - 0xb4]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x94]
mov edx, dword [ecx]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x194], 0x5058
je 0x4013fb
jmp 0x401426
movzx ecx, byte [ebp - 0x11]
sub ecx, 0x7e
mov byte [section..data], cl
mov edx, dword [ebp - 0x180]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x104]
add eax, ecx
mov word [ebp - 0x98], ax
jmp 0x402cf3
lea edx, [ebp - 0x31]
mov dword [ebp - 0xcc], edx
lea eax, [ebp - 0x11]
mov dword [ebp - 0x184], eax
movzx eax, byte [ebp - 0x11]
movzx ecx, byte [section..data]
cdq
idiv ecx
mov edx, dword [ebp - 0x184]
movzx ecx, byte [edx]
cmp eax, ecx
jg 0x402c62
mov edx, 0x38e
mov word [ebp - 0x124], dx
mov al, byte [ebp - 0x11]
mov byte [ebp - 0x65], al
mov cl, byte [ebp - 0x11]
mov byte [0x40dc66], cl
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x94]
mov eax, dword [ecx]
and eax, dword [edx]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0xf8], edx
mov eax, dword [ebp - 0x84]
imul eax, dword [ebp - 0x2c]
mov dword [ebp - 0x150], eax
mov cx, word [ebp - 0x124]
mov word [ebp - 0x130], cx
mov edx, dword [ebp - 0x184]
mov al, byte [edx]
mov byte [ebp - 1], al
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0x94]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa0]
add eax, dword [ecx]
mov dword [ebp - 0xb4], eax
push 0
push 4
push 0
push 0
push 1
push 0x80000000
push str.eCvgin2Fw285Job_aTc86PhP05xlP
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xd8], eax
push str.oQHUxiT_zs_jjuDCq
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0xc], ax
lea edx, [ebp - 0x104]
mov dword [ebp - 0x3c], edx
push str.KVXT
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0x7c], ax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x171]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0xf0], 0x22c4
jbe 0x401933
movzx ecx, word [ebp - 0x130]
sub ecx, 0xb6e
mov word [ebp - 0x124], cx
movzx edx, byte [ebp - 0x11]
movzx eax, byte [ebp - 0x65]
sub edx, eax
mov ecx, dword [ebp - 0x184]
mov byte [ecx], dl
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x2c]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0xbc]
mov dword [edx], ecx
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xa0]
add ecx, dword [edx]
mov eax, dword [ebp - 0xc8]
mov dword [eax], ecx
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
and edx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0x94]
mov dword [eax], edx
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
movzx eax, byte [section..data]
add edx, eax
mov byte [0x40dc66], dl
movzx ecx, word [ebp - 0x130]
sar ecx, 2
mov word [ebp - 0x124], cx
movzx edx, byte [ebp - 0x11]
mov eax, dword [ebp - 0x184]
movzx ecx, byte [eax]
xor edx, ecx
mov byte [ebp - 1], dl
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x150]
shl eax, cl
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], eax
mov edx, dword [ebp - 0x20]
or edx, dword [ebp - 0x16c]
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xb4]
sub edx, dword [ecx]
mov dword [ebp - 0xf8], edx
mov eax, dword [ebp - 0x150]
and eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x184]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x11]
add eax, ecx
mov edx, dword [ebp - 0x184]
mov byte [edx], al
movzx eax, word [ebp - 0x130]
sub eax, 0x180
mov word [ebp - 0x124], ax
mov ecx, dword [ebp - 0xcc]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x171]
add edx, eax
mov ecx, dword [ebp - 0x10c]
mov byte [ecx], dl
movzx edx, byte [ebp - 0x65]
movzx eax, byte [ebp - 1]
sub edx, eax
mov byte [section..data], dl
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx]
add edx, dword [ebp - 0x2c]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x20]
mov dword [ebp - 0x16c], ecx
movzx edx, byte [ebp - 0x65]
movzx eax, byte [ebp - 1]
sub edx, eax
mov byte [ebp - 0x11], dl
movzx ecx, word [ebp - 0x130]
and ecx, 0x836
mov word [ebp - 0x124], cx
mov edx, dword [ebp - 0xa0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x20]
sar eax, cl
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx]
or edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0xbc]
mov dword [eax], edx
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x16c]
shl edx, cl
mov dword [ebp - 0xf8], edx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xb4]
xor ecx, dword [eax]
mov dword [ebp - 0xf8], ecx
mov edx, dword [ebp - 0x184]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x65]
add eax, ecx
mov byte [0x40dc66], al
mov edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xa0]
mov dword [eax], edx
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx]
and edx, dword [ebp - 0x84]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x20]
add ecx, dword [eax]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 8]
mov eax, dword [edx]
sub eax, dword [ebp - 0xb4]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ecx]
add edx, dword [ebp - 0xf8]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xa0]
add ecx, dword [edx]
mov eax, dword [ebp - 0xc8]
mov dword [eax], ecx
movsx ecx, word [ebp - 0x98]
mov edx, dword [ebp - 0x180]
movsx eax, word [edx]
sub ecx, eax
mov word [ebp - 0x104], cx
movsx ecx, byte [ebp - 0x31]
movsx edx, byte [ebp - 0x111]
sub ecx, edx
mov byte [ebp - 0x171], cl
movzx eax, byte [ebp - 0x65]
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
add eax, edx
mov byte [section..data], al
movzx eax, word [ebp - 0x130]
sub eax, 0xcf3
mov word [ebp - 0x124], ax
mov ecx, dword [ebp - 0xf0]
sub ecx, 0x93
mov dword [ebp - 0xf0], ecx
mov edx, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x2c]
shl edx, cl
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x84]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x184]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 1]
sar eax, cl
mov byte [ebp - 0x65], al
push 2
push 0
push 0x6f25
mov ecx, dword [ebp - 0x170]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx]
xor eax, dword [ebp - 0x150]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], eax
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 8]
mov ecx, dword [edx]
and ecx, dword [eax]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0xbc]
mov dword [eax], edx
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x20]
add edx, dword [ecx]
mov dword [ebp - 0xf8], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x16c]
mov edx, dword [ebp - 0xa0]
mov dword [edx], ecx
movzx eax, byte [ebp - 1]
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0x150]
add eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], eax
mov edx, dword [ebp - 0x150]
sub edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0xbc]
mov dword [eax], edx
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x94]
add edx, dword [eax]
mov dword [ebp - 0x20], edx
jmp 0x40154e
lea ecx, [ebp - 0x111]
mov dword [ebp - 0x8c], ecx
mov dx, word [ebp - 0x104]
mov word [ebp - 0xe0], dx
mov ax, word [ebp - 0x130]
mov word [ebp - 0x60], ax
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x65]
sub edx, eax
mov byte [ebp - 1], dl
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
mov ecx, dword [edx]
sar eax, cl
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xe4], ecx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xa0]
mov eax, dword [edx]
cdq
idiv dword [ecx]
mov edx, dword [ebp - 0xc8]
mov edx, dword [edx]
mov ecx, dword [ebp - 0xe4]
shl edx, cl
cmp eax, edx
jl 0x402c02
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xe4]
mov dword [ebp - 0x16c], ecx
lea edx, [ebp - 0x84]
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax]
mov dword [ebp - 0x198], ecx
cmp dword [ebp - 0x198], 0x1134
je 0x4019e8
jmp 0x401a18
movzx edx, word [ebp - 0x60]
movzx eax, word [ebp - 0x124]
add edx, eax
mov word [ebp - 0x130], dx
movzx ecx, byte [ebp - 0x11]
movzx edx, byte [ebp - 0x65]
sub ecx, edx
mov eax, dword [ebp - 0x184]
mov byte [eax], cl
call fcn.00402da0
jmp 0x402bc2
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0x8c]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x10c]
movsx edx, byte [ecx]
sub eax, edx
mov ecx, dword [ebp - 0xcc]
mov byte [ecx], al
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x84]
mov dword [0x40d004], ecx
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x20]
mov ecx, dword [edx]
shl eax, cl
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0xcc]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x8c]
movsx ecx, byte [eax]
or edx, ecx
mov eax, dword [ebp - 0x10c]
movsx eax, byte [eax]
movsx ecx, byte [ebp - 0x171]
sar eax, cl
cmp edx, eax
jne 0x401aae
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 1]
sub edx, eax
mov byte [ebp - 0x11], dl
jmp 0x401b6b
mov ecx, dword [ebp - 0x150]
xor ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0xbc]
mov edx, dword [edx]
and edx, dword [eax]
cmp ecx, edx
ja 0x401b6b
mov ax, word [ebp - 0x130]
mov word [ebp - 0x144], ax
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x78]
add edx, dword [eax]
mov dword [ebp - 0x84], edx
mov ecx, dword [ebp - 0xb8]
sub ecx, dword [ebp - 0xf8]
mov dword [ebp - 0x20], ecx
lea edx, [ebp - 0xf8]
mov dword [ebp - 0x50], edx
movsx eax, word [ebp - 0xe0]
mov dword [ebp - 0x19c], eax
cmp dword [ebp - 0x19c], 0
je 0x401b3b
cmp dword [ebp - 0x19c], 0x7b2
je 0x401b29
jmp 0x401b6b
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xbc]
add edx, dword [eax]
mov dword [ebp - 0x40], edx
jmp 0x401b6b
call dword [sym.imp.KERNEL32.dll_AreFileApisANSI]
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
movzx eax, byte [section..data]
add edx, eax
mov byte [ebp - 0x65], dl
mov ecx, dword [ebp - 0x150]
and ecx, dword [ebp - 0x2c]
mov dword [0x40d008], ecx
mov dx, word [ebp - 0x130]
mov word [ebp - 0xf4], dx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc8]
mov edx, dword [eax]
imul edx, dword [ecx]
mov eax, dword [ebp - 0x94]
mov dword [eax], edx
mov ecx, dword [ebp - 0x94]
mov edx, dword [ecx]
mov dword [ebp - 0x54], edx
lea eax, [ebp - 0x40]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0xe4]
sub ecx, dword [ebp - 0xf8]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x16c]
sub eax, dword [edx]
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0xcc]
mov dl, byte [ecx]
mov byte [ebp - 0xf9], dl
mov eax, dword [ebp - 0x3c]
movsx ecx, word [eax]
movsx edx, word [ebp - 0xe0]
add ecx, edx
mov word [ebp - 0x104], cx
mov eax, dword [ebp - 0x84]
or eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x168]
mov ecx, dword [ecx]
shr edx, cl
cmp eax, edx
jne 0x402b24
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x16c]
add edx, dword [ecx]
mov eax, dword [ebp - 0xc8]
mov dword [eax], edx
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x65]
add edx, eax
mov byte [ebp - 0x11], dl
mov cx, word [ebp - 0x60]
mov word [ebp - 0x160], cx
mov edx, dword [ebp - 0x78]
mov eax, dword [edx]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ecx]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x50]
mov dword [edx], ecx
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x40]
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0xa0]
mov eax, dword [edx]
and eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
sub edx, dword [ecx]
cmp eax, edx
jle 0x401cad
mov eax, dword [ebp - 0x184]
movzx edx, byte [eax]
movzx ecx, byte [section..data]
shl edx, cl
mov byte [ebp - 0x11], dl
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x2c]
or edx, dword [eax]
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x168]
shr eax, cl
cmp edx, eax
jne 0x401d74
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x168]
xor edx, dword [ecx]
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x78]
mov eax, dword [eax]
sub eax, dword [ecx]
cmp edx, eax
jbe 0x401d45
movzx ecx, word [ebp - 0x124]
movzx edx, word [ebp - 0x160]
and ecx, edx
mov word [ebp - 0x60], cx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x50]
mov dword [edx], ecx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x154]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0x3c]
movzx eax, word [edx]
push eax
movzx ecx, word [ebp - 0x160]
push ecx
mov edx, dword [ebp - 0x20]
push edx
mov edx, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x84]
call fcn.00402fa0
lea eax, [ebp - 0xe0]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x8c]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0xf9]
add edx, eax
mov byte [ebp - 0x31], dl
mov ecx, dword [ebp - 0x184]
mov dl, byte [ecx]
mov byte [ebp - 0x145], dl
mov eax, dword [ebp - 0x178]
movsx ecx, word [eax]
mov dword [ebp - 0x1a0], ecx
cmp dword [ebp - 0x1a0], 0
je 0x401d9d
cmp dword [ebp - 0x1a0], 0x39f
je 0x401e01
jmp 0x401e23
mov edx, dword [ebp - 0x10c]
mov al, byte [edx]
mov byte [ebp - 0x1a4], al
cmp byte [ebp - 0x1a4], 0xb5
je 0x401db6
jmp 0x401df4
mov cx, word [ebp - 0xf4]
mov word [0x40dc64], cx
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [ebp - 0x18], eax
movzx edx, word [ebp - 0x124]
movzx eax, word [0x40dc64]
sub edx, eax
mov word [ebp - 0x130], dx
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x40]
add edx, dword [ecx]
mov dword [ebp - 0x150], edx
jmp 0x401dff
mov eax, dword [ebp - 0x70]
sub eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x78]
mov dword [ecx], eax
jmp 0x401e23
movzx edx, word [ebp - 0x98]
push edx
call fcn.00402e50
add esp, 4
mov eax, dword [ebp - 0x16c]
sub eax, dword [ebp - 0xf8]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xc8]
mov ecx, dword [edx]
and ecx, dword [eax]
mov edx, dword [ebp - 0x94]
mov dword [edx], ecx
mov al, byte [ebp - 0x65]
mov byte [ebp - 0x119], al
lea ecx, [ebp - 0xf4]
mov dword [ebp - 0x30], ecx
movsx edx, word [ebp - 0x98]
mov eax, dword [ebp - 0x3c]
movsx ecx, word [eax]
xor edx, ecx
movsx eax, word [ebp - 0xe0]
mov ecx, dword [ebp - 0x178]
movsx ecx, word [ecx]
shl eax, cl
cmp edx, eax
jge 0x401ec0
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x168]
add eax, dword [edx]
mov dword [ebp - 0x70], eax
movzx ecx, byte [ebp - 1]
movzx edx, byte [0x40dc66]
sub ecx, edx
mov byte [section..data], cl
movzx eax, word [ebp - 0x160]
push eax
movzx ecx, word [ebp - 0xe0]
push ecx
mov edx, dword [ebp - 0x54]
push edx
call fcn.00402e60
add esp, 0xc
jmp 0x401f12
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
imul ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0xc8]
mov dword [edx], ecx
mov dword [ebp - 0x88], 0xdb18
lea eax, [ebp - 0x40]
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x145]
and edx, eax
mov byte [ebp - 0x65], dl
movzx ecx, word [0x40dc64]
mov edx, dword [ebp - 0x30]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0x60], cx
mov ecx, dword [ebp - 0x10c]
mov dl, byte [ecx]
mov byte [ebp - 0x179], dl
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x40]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0xbc]
mov edx, dword [edx]
sub edx, dword [eax]
cmp ecx, edx
jne 0x402af9
mov eax, dword [ebp - 0xb8]
add eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x94]
mov dword [ecx], eax
mov edx, dword [ebp - 0xb4]
sub edx, dword [ebp - 0xb8]
mov dword [0x40d00c], edx
lea eax, [ebp - 0x65]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x30]
mov dx, word [ecx]
mov word [ebp - 0xe8], dx
mov eax, dword [ebp - 0x10c]
movsx edx, byte [eax]
movsx eax, byte [ebp - 0x111]
sub edx, eax
mov ecx, dword [ebp - 0xcc]
movsx eax, byte [ecx]
mov ecx, dword [ebp - 0x8c]
movsx ecx, byte [ecx]
sar eax, cl
cmp edx, eax
jne 0x402045
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 8]
mov edx, dword [edx]
mov ecx, dword [eax]
shl edx, cl
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x84]
or ecx, dword [eax]
mov dword [ebp - 0x168], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 8]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x138]
push edx
push 0x83
push 0xfe
call dword [sym.imp.USER32.dll_MapVirtualKeyExW]
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x20]
and eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xa0]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x11]
movzx eax, byte [ebp - 0x145]
add edx, eax
mov ecx, dword [ebp - 0xc4]
mov byte [ecx], dl
mov edx, dword [ebp - 0x178]
movzx eax, word [edx]
push eax
mov ecx, dword [ebp - 0x30]
movzx edx, word [ecx]
push edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x150]
call fcn.00402fa0
lea edx, [ebp - 0x160]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0xc0]
movsx ecx, word [eax]
mov edx, dword [ebp - 0x3c]
movsx eax, word [edx]
sub ecx, eax
mov word [0x40d010], cx
mov ecx, dword [ebp - 0x58]
mov edx, dword [ecx]
and edx, dword [ebp - 0x70]
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
mov edx, dword [ebp - 8]
add ecx, dword [edx]
mov eax, dword [ebp - 0xc8]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x54]
mov dword [ebp - 0x20], ecx
lea edx, [ebp - 0x154]
mov dword [ebp - 0x120], edx
mov eax, dword [ebp - 0x178]
movsx ecx, word [eax]
mov edx, dword [ebp - 0xc0]
movsx eax, word [edx]
sub ecx, eax
mov edx, dword [ebp - 0x180]
mov word [edx], cx
movzx eax, word [ebp - 0xe8]
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1a8], 0x38e
je 0x4020e9
jmp 0x402169
movzx ecx, word [ebp - 0x160]
mov dword [ebp - 0x1ac], ecx
cmp dword [ebp - 0x1ac], 0x872
je 0x402104
jmp 0x402167
movsx edx, byte [ebp - 0x179]
movsx eax, byte [ebp - 0x31]
add edx, eax
mov byte [ebp - 0x111], dl
movzx ecx, byte [0x40dc66]
mov edx, dword [ebp - 0x184]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x65], cl
mov ecx, dword [ebp - 0x30]
movzx edx, word [ecx]
movzx ecx, word [ebp - 0x60]
shl edx, cl
mov word [0x40dc64], dx
mov eax, dword [ebp - 0x58]
mov edx, dword [0x40d004]
mov ecx, dword [eax]
shr edx, cl
mov eax, dword [ebp - 0xbc]
mov dword [eax], edx
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x78]
mov eax, dword [ecx]
xor eax, dword [edx]
mov dword [ebp - 0x168], eax
jmp 0x4021d7
movzx ecx, byte [ebp - 0x119]
mov edx, dword [ebp - 0x184]
movzx eax, byte [edx]
or ecx, eax
mov byte [ebp - 0x65], cl
mov ecx, dword [ebp - 0x24]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x130]
and edx, eax
mov ecx, dword [ebp - 0x30]
mov word [ecx], dx
mov edx, dword [ebp - 0xa0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xc8]
add eax, dword [ecx]
mov dword [ebp - 0x154], eax
mov edx, dword [ebp - 0x2c]
sub edx, dword [ebp - 0x40]
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x16c]
add eax, dword [ebp - 0xb8]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x134]
push ecx
call dword [sym.imp.USER32.dll_GetTopWindow]
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xb8]
add eax, dword [edx]
mov ecx, dword [ebp - 0x94]
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [ebp - 0x13c], eax
lea edx, [ebp - 0x60]
mov dword [0x40dc60], edx
lea eax, [ebp - 0x11]
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa0]
mov edx, dword [eax]
imul edx, dword [ecx]
mov dword [ebp - 0xe4], edx
mov ax, word [ebp - 0x104]
mov word [ebp - 0xec], ax
mov ecx, dword [ebp - 0x10c]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x111]
and edx, eax
mov ecx, dword [ebp - 0xcc]
mov byte [ecx], dl
mov dx, word [ebp - 0x60]
mov word [ebp - 0x12c], dx
movzx eax, byte [ebp - 0x11]
mov ecx, dword [ebp - 0x9c]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0x145], al
mov eax, dword [ebp - 0x9c]
mov cl, byte [eax]
mov byte [ebp - 0x1b0], cl
cmp byte [ebp - 0x1b0], 0
je 0x40229e
cmp byte [ebp - 0x1b0], 0x1d
je 0x402a5a
jmp 0x402ac0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x78]
add eax, dword [ecx]
mov dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x30]
movzx eax, word [edx]
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x1b4], 0x38e
je 0x4022d7
jmp 0x40235e
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov dword [ebp - 0x108], edx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
mov dword [0x40dc68], ecx
mov dword [ebp - 0x1c], 0xbc11
movzx edx, byte [ebp - 0x65]
movzx eax, byte [ebp - 0x119]
sub edx, eax
mov ecx, dword [ebp - 0xc4]
mov byte [ecx], dl
lea edx, [ebp - 0x12c]
mov dword [ebp - 0xdc], edx
mov eax, dword [ebp - 0x178]
mov cx, word [eax]
mov word [ebp - 0x10], cx
movsx edx, byte [ebp - 0x31]
mov eax, dword [ebp - 0x8c]
movsx ecx, byte [eax]
sub edx, ecx
mov eax, dword [ebp - 0xcc]
mov byte [eax], dl
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0xd0]
sub edx, dword [ecx]
mov dword [ebp - 0x150], edx
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x158], eax
jmp 0x4023bf
mov ecx, dword [ebp - 0x158]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x100]
push eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
push edx
call fcn.00402f70
movzx eax, word [ebp - 0x144]
movzx ecx, word [ebp - 0x130]
add eax, ecx
mov word [ebp - 0xf4], ax
mov edx, dword [ebp - 0x9c]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xc4]
movzx edx, byte [ecx]
and eax, edx
mov ecx, dword [ebp - 0x184]
mov byte [ecx], al
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
add eax, dword [ebp - 0x150]
mov dword [0x40d004], eax
mov ecx, dword [ebp - 0xcc]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x10c]
movsx ecx, byte [eax]
sub edx, ecx
mov eax, dword [ebp - 0x8c]
movsx ecx, byte [eax]
movsx eax, byte [ebp - 0x179]
add ecx, eax
cmp edx, ecx
jle 0x40241a
mov ecx, dword [ebp - 0xe4]
or ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xf8], ecx
lea edx, [ebp - 0x108]
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x58]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x168]
shl edx, cl
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x180]
movsx edx, word [eax]
movsx eax, word [ebp - 0x104]
xor edx, eax
mov ecx, dword [ebp - 0x3c]
movsx eax, word [ecx]
movsx ecx, word [ebp - 0x10]
sar eax, cl
cmp edx, eax
jne 0x4029e5
mov ecx, dword [ebp - 0x150]
sub ecx, dword [0x40d004]
mov edx, dword [ebp - 0x14c]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x20]
mov dword [0x40dc68], ecx
mov edx, dword [ebp - 8]
mov eax, dword [edx]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x15c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x3c]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x98]
and eax, ecx
mov edx, dword [ebp - 0xc0]
mov word [edx], ax
movsx eax, byte [ebp - 0x111]
movsx ecx, byte [ebp - 0x179]
sub eax, ecx
mov byte [ebp - 0x31], al
mov edx, dword [ebp - 0x184]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 1]
xor eax, ecx
mov edx, dword [ebp - 0xc4]
mov byte [edx], al
movzx eax, word [ebp - 0x144]
mov ecx, dword [ebp - 0x24]
movzx edx, word [ecx]
or eax, edx
mov word [ebp - 0xf4], ax
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x168]
mov ecx, dword [eax]
shr edx, cl
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x50]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xb4]
shl edx, cl
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0x184]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x119]
add ecx, edx
mov byte [ebp - 0x145], cl
mov eax, dword [ebp - 0x24]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x160]
and ecx, edx
mov eax, dword [0x40dc60]
mov word [eax], cx
mov ecx, dword [ebp - 0xd0]
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0xc8]
mov dword [eax], edx
mov ecx, dword [ebp - 0x158]
mov edx, dword [ecx]
add edx, dword [ebp - 0xb4]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], eax
mov edx, dword [ebp - 0xdc]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x30]
movzx edx, word [ecx]
sub eax, edx
mov word [ebp - 0xe8], ax
mov eax, dword [ebp - 0x184]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x9c]
movzx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x11], cl
mov ecx, dword [ebp - 8]
mov edx, dword [0x40dc68]
sub edx, dword [ecx]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa0]
mov edx, dword [eax]
and edx, dword [ecx]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0x178]
movsx edx, word [eax]
mov eax, dword [ebp - 0xc0]
movsx ecx, word [eax]
sar edx, cl
mov word [0x40d010], dx
movsx edx, byte [ebp - 0xf9]
mov eax, dword [ebp - 0xcc]
movsx ecx, byte [eax]
shl edx, cl
mov byte [ebp - 0x111], dl
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 1]
or edx, eax
mov byte [ebp - 0x119], dl
mov ecx, dword [ebp - 0xdc]
movzx edx, word [ecx]
mov eax, dword [ebp - 0x24]
movzx ecx, word [eax]
xor edx, ecx
mov eax, dword [ebp - 0x30]
mov word [eax], dx
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0xbc]
mov eax, dword [ecx]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x14c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
sub eax, dword [0x40d004]
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0x108]
and ecx, dword [ebp - 0x16c]
mov edx, dword [ebp - 0xc8]
mov dword [edx], ecx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x100]
add ecx, dword [eax]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x94]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x15c]
add eax, dword [ecx]
mov edx, dword [ebp - 0xa0]
mov dword [edx], eax
movzx eax, word [ebp - 0xf4]
movzx ecx, word [ebp - 0xe8]
sub eax, ecx
mov word [ebp - 0x12c], ax
mov edx, dword [0x40dc60]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xdc]
movzx edx, word [ecx]
add eax, edx
mov ecx, dword [0x40dc60]
mov word [ecx], ax
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x40]
sub eax, dword [edx]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x54]
add edx, dword [ecx]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0xb8]
add eax, dword [ebp - 0x118]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x14c]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0x88]
sub ecx, 0x79
mov dword [ebp - 0x88], ecx
mov edx, dword [ebp - 0xc4]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x9c]
movzx ecx, byte [ecx]
shl eax, cl
mov edx, dword [ebp - 0x184]
mov byte [edx], al
call dword [sym.imp.KERNEL32.dll_AreFileApisANSI]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x24]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x30]
movzx eax, word [edx]
or ecx, eax
mov word [ebp - 0x130], cx
mov ecx, dword [ebp - 0x8c]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x10c]
movsx ecx, byte [eax]
xor edx, ecx
mov eax, dword [ebp - 0xcc]
mov byte [eax], dl
mov ecx, dword [ebp - 0xc0]
movsx edx, word [ecx]
movsx ecx, word [ebp - 0x10]
sar edx, cl
mov eax, dword [ebp - 0x180]
mov word [eax], dx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
and edx, dword [0x40d008]
mov dword [0x40d004], edx
mov eax, dword [ebp - 0x15c]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x108]
mov dword [ebp - 0x16c], ecx
movzx edx, byte [ebp - 0x11]
mov eax, dword [ebp - 0xc4]
movzx ecx, byte [eax]
add edx, ecx
mov byte [ebp - 0x65], dl
mov edx, dword [0x40dc60]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x24]
movzx edx, word [ecx]
and eax, edx
mov word [ebp - 0x130], ax
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x108], ecx
mov edx, dword [ebp - 0xd0]
sub edx, dword [ebp - 0x168]
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x50]
add edx, dword [eax]
mov ecx, dword [ebp - 0x94]
mov dword [ecx], edx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x154]
sub eax, dword [edx]
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x30]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x160]
sub edx, eax
mov word [ebp - 0x144], dx
movzx ecx, byte [ebp - 0x119]
mov edx, dword [ebp - 0x184]
movzx eax, byte [edx]
or ecx, eax
mov byte [section..data], cl
cmp dword [ebp - 0x88], 0xcc71
jae 0x402454
cmp dword [ebp - 0x1c], 0x90cc
jb 0x4029e5
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x100]
xor edx, dword [ebp - 0xe4]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x1c]
sub eax, 0xd1
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x154]
sar edx, cl
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x15c]
mov edx, dword [eax]
mov ecx, dword [ecx]
shl edx, cl
mov eax, dword [ebp - 0xc8]
mov dword [eax], edx
mov ecx, dword [ebp - 0x108]
and ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x158]
mov dword [edx], ecx
mov eax, dword [ebp - 0xc0]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x98]
add ecx, edx
mov word [ebp - 0xec], cx
mov eax, dword [ebp - 0x10c]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0xcc]
movsx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0xf9], cl
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0xc4]
movzx ecx, byte [eax]
add edx, ecx
mov byte [ebp - 0x11], dl
movzx edx, word [ebp - 0xe8]
movzx eax, word [ebp - 0xf4]
sub edx, eax
mov ecx, dword [0x40dc60]
mov word [ecx], dx
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x14c]
mov ecx, dword [edx]
and ecx, dword [eax]
mov edx, dword [ebp - 0x78]
mov dword [edx], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x9c]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 1]
sub eax, ecx
mov edx, dword [ebp - 0x184]
mov byte [edx], al
movzx eax, word [ebp - 0x124]
mov ecx, dword [0x40dc60]
movzx edx, word [ecx]
sub eax, edx
mov ecx, dword [ebp - 0xdc]
mov word [ecx], ax
mov edx, dword [ebp - 0x108]
sub edx, dword [ebp - 0x154]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x150]
xor eax, dword [ebp - 0x168]
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x54]
sar edx, cl
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x15c]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x54]
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x24]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x12c]
shl eax, cl
mov word [0x40dc64], ax
jmp 0x402855
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0xc4]
movzx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 1], dl
mov edx, dword [ebp - 0x30]
movzx eax, word [edx]
movzx ecx, word [ebp - 0xe8]
add eax, ecx
mov word [ebp - 0x160], ax
mov edx, dword [ebp - 0x15c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa0]
add eax, dword [ecx]
mov dword [ebp - 0x20], eax
lea edx, [ebp - 0x2c]
push edx
push 8
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0x110]
push ecx
call dword [sym.imp.USER32.dll_GetMenuItemRect]
mov dword [ebp - 0x6c], eax
mov edx, dword [ebp - 0x15c]
mov eax, dword [edx]
add eax, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0xa0]
mov dword [ecx], eax
jmp 0x402ac0
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x58]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov edx, dword [ebp - 0x78]
mov dword [edx], ecx
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xe4]
shl eax, cl
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xc4]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x184]
movzx ecx, byte [eax]
or edx, ecx
mov eax, dword [ebp - 0x9c]
mov byte [eax], dl
movzx edx, word [ebp - 0x124]
mov eax, dword [0x40dc60]
movzx ecx, word [eax]
sar edx, cl
mov word [ebp - 0xe8], dx
mov ecx, dword [ebp - 0x54]
and ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x40]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x78]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov eax, dword [edx]
sub eax, dword [ebp - 0xe4]
mov dword [0x40d00c], eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [0x40d00c]
sub edx, dword [ecx]
mov dword [ebp - 0x16c], edx
call fcn.00402da0
mov eax, dword [ebp - 0xc0]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x98]
add ecx, edx
mov eax, dword [ebp - 0x180]
mov word [eax], cx
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
add edx, dword [0x40d004]
mov dword [ebp - 0x40], edx
jmp 0x402b87
movsx eax, word [ebp - 0xe0]
mov ecx, dword [ebp - 0x3c]
movsx ecx, word [ecx]
shl eax, cl
mov edx, dword [ebp - 0x180]
movsx ecx, word [edx]
mov edx, dword [ebp - 0xc0]
movsx edx, word [edx]
xor ecx, edx
cmp eax, ecx
jle 0x402b87
mov eax, dword [ebp - 0x184]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 1]
sub ecx, edx
mov eax, dword [ebp - 0x184]
mov byte [eax], cl
mov ecx, dword [ebp - 0x10c]
movzx edx, byte [ecx]
push edx
movzx eax, word [ebp - 0x98]
push eax
mov dl, byte [ebp - 0x171]
mov ecx, dword [ebp - 0x10c]
mov cl, byte [ecx]
call fcn.00402f00
mov edx, dword [ebp - 0xb8]
push edx
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
push edx
call fcn.00402f70
movzx eax, byte [ebp - 1]
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
and eax, edx
mov byte [section..data], al
lea eax, [ebp - 0x80]
push eax
mov ecx, dword [ebp - 0x74]
push ecx
call dword [sym.imp.ole32.dll_IIDFromString]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0xa0]
mov eax, dword [edx]
add eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 0xf8]
and edx, dword [ebp - 0xb4]
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x94]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0xe4]
push eax
call fcn.00402f70
jmp 0x402c27
movzx ecx, word [ebp - 0x124]
movzx edx, word [ebp - 0x60]
xor ecx, edx
movzx eax, word [ebp - 0x130]
cmp ecx, eax
jne 0x402c27
movzx ecx, byte [ebp - 0x65]
movzx edx, byte [ebp - 0x11]
add ecx, edx
mov byte [ebp - 1], cl
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0xbc]
mov dword [edx], ecx
mov eax, dword [ebp - 0xe4]
and eax, dword [ebp - 0xf8]
mov dword [ebp - 0xb8], eax
movzx ecx, word [ebp - 0x124]
movzx edx, word [ebp - 0x60]
sub ecx, edx
mov word [ebp - 0x130], cx
jmp 0x402c7e
mov eax, dword [ebp - 0xbc]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x2c]
shr edx, cl
cmp edx, dword [ebp - 0x150]
jbe 0x402c7e
push 0x69
call fcn.00402ea0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x94]
mov edx, dword [eax]
mov ecx, dword [ecx]
shl edx, cl
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x2c]
xor ecx, dword [eax]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x80]
push edx
lea eax, [ebp - 0x184]
push eax
call dword [sym.imp.ole32.dll_CoMarshalHresult]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x20]
or ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xc8]
mov dword [edx], ecx
push 0xa3
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
push ecx
movzx edx, byte [ebp - 0x171]
push edx
mov eax, dword [ebp - 0x180]
mov dx, word [eax]
mov cl, byte [ebp - 0x111]
call fcn.00402f30
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x2c]
and edx, dword [ecx]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 8]
mov dword [edx], ecx
movzx eax, byte [section..data]
sub eax, 0x8b
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0x94]
mov edx, dword [ecx]
add edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xc8]
mov dword [eax], edx
mov ecx, dword [ebp - 0x180]
movzx edx, word [ecx]
push edx
call fcn.00402e50
add esp, 4
jmp 0x402d60
movsx eax, byte [ebp - 0x111]
and eax, 0x60
mov byte [ebp - 0x111], al
movzx ecx, byte [ebp - 0x111]
push ecx
movzx edx, word [ebp - 0x98]
push edx
mov dl, byte [ebp - 0x111]
mov cl, byte [ebp - 0x111]
call fcn.00402f00
movsx eax, byte [ebp - 0x111]
add eax, 0x6b
mov byte [ebp - 0x111], al
mov eax, dword [ebp - 0x108]
mov esp, ebp
pop ebp
ret 0x10