Function at 0x402f20
Capabilities:
Encode data using xor
Get file size
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24c
push 0
push 0
push 0
lea ecx, [ebp - 0x1b8]
call fcn.00405420
mov eax, 0x234
mov word [ebp - 0x144], ax
lea ecx, [ebp - 0x1a4]
push ecx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
movsx edx, word [ebp - 0x144]
mov dword [ebp - 0x218], edx
cmp dword [ebp - 0x218], 0x303
je 0x402f93
cmp dword [ebp - 0x218], 0x7b4
je 0x402f84
jmp 0x402fcf
movzx eax, word [ebp - 0x144]
push eax
call fcn.00402070
jmp 0x402fcf
movsx ecx, word [ebp - 0x144]
sub ecx, 0x696
mov word [ebp - 0x144], cx
movsx edx, word [ebp - 0x144]
add edx, 0x35a
mov word [ebp - 0x144], dx
push 0xaf
push 0x9f
push 0xe1
call fcn.00401e10
movsx eax, word [ebp - 0x144]
mov dword [ebp - 0x21c], eax
cmp dword [ebp - 0x21c], 0x234
je 0x402fea
jmp 0x40305a
mov byte [ebp - 0xf1], 0x16
mov dword [ebp - 0x1ec], 0x4b7e
mov cx, word [ebp - 0x144]
mov word [ebp - 0x150], cx
mov dl, byte [ebp - 0xf1]
mov byte [ebp - 0x220], dl
cmp byte [ebp - 0x220], 0x2b
je 0x403020
jmp 0x403058
movsx eax, byte [ebp - 0xf1]
and eax, 0x57
mov byte [ebp - 0xf1], al
push 0
mov ecx, dword [ebp - 0xf8]
push ecx
mov edx, dword [ebp - 0xfc]
push edx
mov eax, dword [ebp - 0x1f8]
push eax
call dword [sym.imp.COMCTL32.dll_LBItemFromPt]
mov dword [ebp - 0x1a8], eax
call fcn.00401c50
jmp 0x40306a
movsx ecx, byte [ebp - 0xf1]
xor ecx, 0x78
mov byte [ebp - 0xf1], cl
mov edx, dword [ebp - 0x1a8]
mov dword [ebp - 0x14c], edx
cmp dword [ebp - 0x1ec], 0x5952
je 0x40317f
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1a8], eax
movsx ecx, byte [ebp - 0xf1]
or ecx, 0x16
mov byte [ebp - 0xf1], cl
mov edx, dword [ebp - 0x14c]
shl edx, 0x1a
mov dword [ebp - 0x1a8], edx
movsx eax, byte [ebp - 0xf1]
sar eax, 5
mov byte [ebp - 0xf1], al
mov ecx, dword [ebp - 0x14c]
add ecx, 0x76cc
mov dword [ebp - 0x1a8], ecx
movsx edx, word [ebp - 0x144]
sub edx, 6
mov word [ebp - 0x150], dx
movsx eax, byte [ebp - 0xf1]
and eax, 0x6d
mov byte [ebp - 0xf1], al
movsx ecx, byte [ebp - 0xf1]
sub ecx, 0x18
mov byte [ebp - 0xf1], cl
mov edx, dword [ebp - 0x14c]
add edx, 0x6b50
mov dword [ebp - 0x1a8], edx
movsx eax, word [ebp - 0x144]
sub eax, 0xb7
mov word [ebp - 0x150], ax
movsx ecx, byte [ebp - 0xf1]
add ecx, 0x5d
mov byte [ebp - 0xf1], cl
movsx edx, byte [ebp - 0xf1]
or edx, 0xa
mov byte [ebp - 0xf1], dl
mov eax, dword [ebp - 0x1ec]
add eax, 0x3b
mov dword [ebp - 0x1ec], eax
movsx ecx, byte [ebp - 0xf1]
shl ecx, 3
mov byte [ebp - 0xf1], cl
mov edx, dword [ebp - 0x1a8]
xor edx, 0x2d54
mov dword [ebp - 0x14c], edx
jmp 0x403076
lea eax, [ebp - 0xf1]
mov dword [ebp - 0x140], eax
mov byte [ebp - 0xe1], 0x4f
mov ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x178], 0xe1af
mov eax, dword [ebp - 0x130]
cdq
idiv dword [ebp - 0x14c]
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x180], 0x8d72
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x15c], edx
mov al, byte [ebp - 0xe1]
mov byte [ebp - 0x224], al
cmp byte [ebp - 0x224], 0x4f
je 0x4031eb
jmp 0x4053ab
mov ecx, dword [ebp - 0x130]
add ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x1a8]
and edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x15c]
imul eax, dword [ebp - 0x130]
cmp edx, eax
jge 0x40328d
mov ecx, dword [ebp - 0x15c]
sub ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x130], ecx
movzx edx, byte [ebp - 0xe1]
add edx, 0xf4
mov byte [ebp - 0xe1], dl
movsx eax, byte [ebp - 0xf1]
add eax, 0x13
mov ecx, dword [ebp - 0x140]
mov byte [ecx], al
movsx edx, word [ebp - 0x150]
sub edx, 0xaf
mov word [ebp - 0x144], dx
mov eax, dword [ebp - 0x140]
movsx ecx, byte [eax]
xor ecx, 3
mov byte [ebp - 0xf1], cl
mov edx, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x144]
call fcn.00401ae0
jmp 0x40332f
mov edx, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x1a8]
sar edx, cl
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x1a8]
shl eax, cl
mov ecx, dword [ebp - 0x15c]
or ecx, dword [ebp - 0x130]
cmp eax, ecx
je 0x403301
mov edx, 0x95e
mov word [ebp - 0x20c], dx
mov al, byte [ebp - 0xe1]
mov byte [ebp - 0x212], al
mov ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], ecx
mov edx, dword [section..data]
imul edx, edx, 0x7e9e
mov dword [section..data], edx
mov dword [ebp - 0xa8], 0x94
jmp 0x40332f
movsx eax, byte [ebp - 0xf1]
cdq
mov ecx, 0x26
idiv ecx
mov edx, dword [ebp - 0x140]
movsx ecx, byte [edx]
cmp eax, ecx
jne 0x40332f
mov edx, dword [ebp - 0x14c]
and edx, dword [ebp - 0x15c]
mov dword [ebp - 0x130], edx
mov ax, word [ebp - 0x20c]
mov word [ebp - 0x1dc], ax
movzx ecx, word [ebp - 0x1dc]
sub ecx, 0x8d1
movzx edx, word [ebp - 0x20c]
cmp ecx, edx
jne 0x4033cb
mov eax, dword [ebp - 0x154]
sub eax, dword [ebp - 0x1a8]
mov dword [ebp - 0x15c], eax
mov ecx, dword [section..data]
xor ecx, 0x699e
mov dword [section..data], ecx
mov edx, dword [ebp - 0x140]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0xf1]
shl eax, cl
mov ecx, dword [ebp - 0x140]
mov byte [ecx], al
mov edx, dword [ebp - 0x140]
movsx eax, byte [edx]
sar eax, 1
mov byte [ebp - 0xf1], al
movzx ecx, byte [ebp - 0x212]
or ecx, 0x51
mov byte [ebp - 0xe1], cl
movsx edx, byte [ebp - 0xf1]
and edx, 0x67
mov eax, dword [ebp - 0x140]
mov byte [eax], dl
jmp 0x4052fe
mov ecx, dword [section..data]
mov dword [ebp - 0x164], ecx
movzx edx, byte [ebp - 0x212]
add edx, 0x23
movzx eax, byte [ebp - 0xe1]
cmp edx, eax
je 0x405265
movzx ecx, byte [ebp - 0x212]
add ecx, 0xe3
movzx edx, byte [ebp - 0xe1]
cmp ecx, edx
jle 0x403448
mov eax, dword [ebp - 0x130]
xor eax, dword [ebp - 0x154]
mov dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x14c]
shl edx, cl
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x210], 0x411000
mov ax, word [ebp - 0x1dc]
mov word [ebp - 0xe0], ax
jmp 0x403469
movzx ecx, byte [ebp - 0xe1]
sar ecx, 1
mov byte [ebp - 0x212], cl
mov edx, dword [ebp - 0x130]
sub edx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1c4], eax
mov cx, word [ebp - 0x150]
mov word [ebp - 0x10c], cx
mov dword [ebp - 0x13c], 0xf909
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
and eax, dword [section..data]
cmp eax, dword [ebp - 0x164]
je 0x40356c
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
imul edx, dword [ebp - 0x164]
cmp edx, dword [section..data]
jbe 0x40356c
movsx eax, byte [ebp - 0xf1]
add eax, 0x7e
mov ecx, dword [ebp - 0x140]
mov byte [ecx], al
mov dl, byte [ebp - 0xf1]
mov byte [ebp - 0x228], dl
cmp byte [ebp - 0x228], 8
je 0x40355a
cmp byte [ebp - 0x228], 0x72
je 0x403506
jmp 0x40356c
movzx eax, byte [ebp - 0xe1]
sub eax, 0x4c
mov byte [ebp - 0x212], al
mov ecx, dword [ebp - 0x140]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0xf1]
sub edx, eax
mov ecx, dword [ebp - 0x140]
mov byte [ecx], dl
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
add eax, dword [section..data]
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [section..data]
sub edx, dword [ecx]
mov dword [ebp - 0x164], edx
jmp 0x40356c
mov eax, dword [ebp - 0x14c]
add eax, dword [ebp - 0x15c]
mov dword [ebp - 0x1a8], eax
mov ecx, dword [ebp - 0x15c]
sub ecx, dword [ebp - 0x130]
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x14c]
and edx, dword [ebp - 0x154]
mov dword [ebp - 0x1c4], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x210]
mov dword [edx], ecx
mov eax, dword [ebp - 0x164]
mov ecx, dword [section..data]
shl eax, cl
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
mov edx, dword [ebp - 0x164]
mov ecx, dword [section..data]
shr edx, cl
mov eax, dword [ebp - 0x210]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1a8]
xor ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x1c4], ecx
mov edx, dword [ebp - 0x164]
add edx, dword [section..data]
mov eax, dword [ebp - 0x210]
mov dword [eax], edx
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
add edx, dword [section..data]
mov dword [ebp - 0x164], edx
movzx eax, byte [ebp - 0x212]
and eax, 0xf0
mov byte [ebp - 0xe1], al
movzx ecx, word [ebp - 0x1dc]
movzx edx, word [ebp - 0x20c]
sub ecx, edx
mov word [ebp - 0xe0], cx
movsx eax, byte [ebp - 0xf1]
add eax, 0x75
mov ecx, dword [ebp - 0x140]
mov byte [ecx], al
movsx edx, word [ebp - 0x150]
movsx eax, word [ebp - 0x10c]
sub edx, eax
mov word [ebp - 0x144], dx
push 0
call dword [sym.imp.KERNEL32.dll_GlobalDeleteAtom]
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
add edx, dword [ebp - 0x164]
mov eax, dword [ebp - 0x210]
mov dword [eax], edx
mov ecx, dword [ebp - 0x178]
add ecx, 0x6d
mov dword [ebp - 0x178], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
sub eax, dword [ebp - 0x164]
mov dword [section..data], eax
lea ecx, [ebp - 0x1a4]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebp - 0x164]
add edx, dword [section..data]
mov eax, dword [ebp - 0x210]
mov dword [eax], edx
movzx ecx, byte [ebp - 0xe1]
sub ecx, 0x58
mov byte [ebp - 0x212], cl
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
sub eax, dword [section..data]
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
xor eax, dword [section..data]
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x1c4]
or ecx, dword [ebp - 0x15c]
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x164]
shl eax, cl
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x212]
sar edx, 4
mov byte [ebp - 0xe1], dl
movzx eax, word [ebp - 0x20c]
movzx ecx, word [ebp - 0x1dc]
and eax, ecx
mov word [ebp - 0xe0], ax
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x164]
add eax, dword [edx]
mov dword [section..data], eax
mov ecx, dword [ebp - 0x130]
add ecx, dword [ebp - 0x1a8]
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
and eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1c4]
sub edx, dword [ebp - 0x154]
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x154]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x164]
mov eax, dword [ebp - 0x210]
mov dword [eax], edx
mov ecx, dword [ebp - 0x140]
movsx edx, byte [ecx]
sub edx, 3
mov byte [ebp - 0xf1], dl
movzx eax, byte [ebp - 0xe1]
add eax, 0xc1
mov byte [ebp - 0x212], al
mov ecx, dword [ebp - 0x140]
movsx edx, byte [ecx]
movsx ecx, byte [ebp - 0xf1]
sar edx, cl
mov eax, dword [ebp - 0x140]
mov byte [eax], dl
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
or edx, dword [ebp - 0x164]
mov dword [section..data], edx
mov eax, dword [ebp - 0x210]
mov edx, dword [eax]
mov ecx, dword [section..data]
shl edx, cl
mov dword [ebp - 0x164], edx
movzx eax, word [ebp - 0x20c]
movzx ecx, word [ebp - 0x1dc]
xor eax, ecx
mov word [ebp - 0xe0], ax
movzx edx, byte [ebp - 0x212]
and edx, 0xba
mov byte [ebp - 0xe1], dl
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x210]
mov dword [edx], ecx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
add ecx, dword [section..data]
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x130]
add edx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x210]
mov dword [edx], ecx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x210]
mov dword [edx], ecx
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x164]
add ecx, dword [eax]
mov dword [section..data], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
sub eax, dword [section..data]
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x154]
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x140]
movsx eax, byte [edx]
add eax, 7
mov byte [ebp - 0xf1], al
movsx edx, word [ebp - 0x150]
movsx ecx, word [ebp - 0x10c]
sar edx, cl
mov word [ebp - 0x144], dx
cmp dword [ebp - 0x178], 0x10057
jne 0x403590
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x154]
shl eax, cl
mov ecx, dword [ebp - 0x1c4]
xor ecx, dword [ebp - 0x15c]
cmp eax, ecx
jle 0x4051b9
lea edx, [ebp - 0x154]
mov dword [ebp - 0x1cc], edx
mov ax, word [ebp - 0x20c]
mov word [ebp - 4], ax
mov cl, byte [ebp - 0x212]
mov byte [ebp - 0x145], cl
mov dword [ebp - 0x1e4], 0xc68b
push str.EgL3cB
call dword [sym.imp.KERNEL32.dll_AddAtomA]
mov word [ebp - 0x174], ax
mov edx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x1c4]
imul eax, dword [edx]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
mov dword [ebp - 8], edx
mov dword [ebp - 0xac], 0x36df
mov eax, dword [ebp - 0x1c4]
and eax, dword [ebp - 0x14c]
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x100], ecx
movzx edx, word [ebp - 0xe0]
movzx eax, word [ebp - 4]
sub edx, eax
mov word [ebp - 0x20c], dx
movsx ecx, word [ebp - 0x144]
mov dword [ebp - 0x22c], ecx
cmp dword [ebp - 0x22c], 0x3a1
je 0x403a17
cmp dword [ebp - 0x22c], 0x705
je 0x403a10
jmp 0x403a1c
call fcn.00402980
jmp 0x403a1c
call fcn.00401c50
lea edx, [ebp - 0x145]
mov dword [ebp - 0x124], edx
push 0
push 0x400
push 5
push 0
push 8
push 0x40000000
push str.C:_burgeonedSearchesThunderouslypuritanical
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xf0], eax
movsx eax, word [ebp - 0x144]
movsx ecx, word [ebp - 0x150]
sub eax, ecx
movsx edx, word [ebp - 0x10c]
cmp eax, edx
jle 0x403b05
mov eax, dword [ebp - 0x210]
mov edx, dword [eax]
mov ecx, dword [ebp - 8]
shr edx, cl
mov dword [ebp - 0x164], edx
movsx eax, byte [ebp - 0xf1]
imul eax, eax, 0x2d
mov ecx, dword [ebp - 0x140]
movsx edx, byte [ecx]
cmp eax, edx
jle 0x403afb
mov eax, dword [ebp - 0x154]
and eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x14c], eax
movzx ecx, byte [ebp - 0x212]
movzx edx, byte [ebp - 0x145]
sub ecx, edx
mov eax, dword [ebp - 0x124]
mov byte [eax], cl
movzx ecx, byte [ebp - 0x145]
mov edx, dword [ebp - 0x124]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0xe1], cl
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 0x164]
mov dword [section..data], ecx
mov edx, dword [ebp - 0x1cc]
mov eax, dword [edx]
sub eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x1cc]
mov dword [ecx], eax
call fcn.00401c50
jmp 0x405193
mov edx, dword [ebp - 0x140]
mov al, byte [edx]
mov byte [ebp - 0x230], al
cmp byte [ebp - 0x230], 7
je 0x403b21
jmp 0x40514b
cmp dword [ebp - 0x13c], 0xf822
jb 0x403e10
mov ecx, dword [ebp - 0x124]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x145]
and edx, eax
mov ecx, dword [ebp - 0x124]
mov byte [ecx], dl
movzx edx, word [ebp - 0x20c]
movzx eax, word [ebp - 0x1dc]
add edx, eax
mov word [ebp - 4], dx
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x100]
mov dword [ebp - 0x130], edx
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x154]
sar eax, cl
mov ecx, dword [ebp - 0x1cc]
mov dword [ecx], eax
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
or eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
mov ecx, dword [ebp - 8]
shl eax, cl
mov dword [section..data], eax
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x1cc]
mov dword [eax], edx
mov ecx, dword [ebp - 0x140]
movsx edx, byte [ecx]
and edx, 8
mov byte [ebp - 0xf1], dl
movsx eax, word [ebp - 0x150]
movsx ecx, word [ebp - 0x10c]
add eax, ecx
mov word [ebp - 0x144], ax
movzx edx, byte [ebp - 0x212]
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0xe1], dl
mov edx, dword [ebp - 0x1cc]
mov eax, dword [edx]
sub eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x1cc]
mov dword [ecx], eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateMemoryResourceNotification]
mov edx, dword [ebp - 8]
sub edx, dword [ebp - 0x164]
mov eax, dword [ebp - 0x210]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ecx]
add edx, dword [ebp - 0x100]
mov dword [ebp - 0x15c], edx
movzx eax, byte [ebp - 0x145]
movzx ecx, byte [ebp - 0xe1]
add eax, ecx
mov byte [ebp - 0x212], al
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 8]
add eax, dword [edx]
mov dword [section..data], eax
mov ecx, dword [ebp - 8]
and ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x210]
mov dword [edx], ecx
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateFiberEx]
movzx eax, word [ebp - 0x174]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov word [ebp - 0x16c], ax
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x15c]
or edx, dword [ecx]
mov dword [ebp - 0x1c4], edx
mov eax, dword [ebp - 0x100]
xor eax, dword [ebp - 0x1a8]
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
mov ecx, dword [ebp - 8]
shr edx, cl
mov dword [ebp - 0x164], edx
movzx eax, word [ebp - 4]
movzx ecx, word [ebp - 0x1dc]
shl eax, cl
mov word [ebp - 0x20c], ax
movzx ecx, byte [ebp - 0xe1]
mov edx, dword [ebp - 0x124]
movzx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x212], cl
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ecx]
add edx, dword [ebp - 0x100]
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x14c]
and ecx, dword [eax]
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x13c]
sub edx, 7
mov dword [ebp - 0x13c], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x164]
mov dword [section..data], ecx
mov edx, dword [ebp - 0x140]
movsx eax, byte [edx]
add eax, 0x33
mov byte [ebp - 0xf1], al
movzx ecx, word [ebp - 0x20c]
movzx edx, word [ebp - 0xe0]
add ecx, edx
mov word [ebp - 0x1dc], cx
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x145]
sub ecx, edx
mov eax, dword [ebp - 0x124]
mov byte [eax], cl
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
add edx, dword [ebp - 8]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 8]
sub eax, dword [section..data]
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1cc]
mov eax, dword [edx]
sub eax, dword [ebp - 0x130]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ecx]
add edx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x1cc]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x130]
or edx, dword [ecx]
mov dword [ebp - 0x1c4], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x164]
mov dword [section..data], ecx
jmp 0x403b21
movzx edx, byte [ebp - 0x145]
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax]
sar edx, cl
mov byte [ebp - 0x212], dl
movsx eax, byte [ebp - 0xf1]
cdq
mov ecx, 0x76
idiv ecx
mov edx, dword [ebp - 0x140]
movsx ecx, byte [edx]
cmp eax, ecx
jg 0x40502b
mov edx, dword [ebp - 0x124]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x212]
shl eax, cl
mov byte [ebp - 0xe1], al
mov ecx, dword [ebp - 0x154]
or ecx, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1cc]
mov eax, dword [edx]
and eax, dword [ebp - 0x100]
cmp ecx, eax
jne 0x403e83
call fcn.00401c50
movzx ecx, word [ebp - 4]
movzx edx, word [ebp - 0x20c]
sub ecx, edx
movzx eax, word [ebp - 0x1dc]
movzx edx, word [ebp - 0xe0]
add eax, edx
cmp ecx, eax
je 0x403f64
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0xe1]
and ecx, edx
mov eax, dword [ebp - 0x124]
mov byte [eax], cl
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x154]
sub edx, dword [ecx]
mov dword [ebp - 0x1a8], edx
movzx eax, byte [ebp - 0x212]
movzx ecx, byte [ebp - 0x145]
sub eax, ecx
mov edx, dword [ebp - 0x124]
movzx ecx, byte [edx]
movzx edx, byte [ebp - 0xe1]
add ecx, edx
cmp eax, ecx
jle 0x403f4a
mov eax, dword [ebp - 0x164]
mov ecx, dword [section..data]
shl eax, cl
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ecx]
or edx, dword [ebp - 0x14c]
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x154]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x1c0]
push edx
call dword [sym.imp.COMCTL32.dll_MakeDragList]
mov dword [ebp - 0x114], eax
jmp 0x403f62
movzx eax, byte [ebp - 0xe1]
movzx ecx, byte [ebp - 0x145]
and eax, ecx
mov edx, dword [ebp - 0x124]
mov byte [edx], al
jmp 0x403faa
mov eax, dword [ebp - 0x140]
mov cl, byte [eax]
mov byte [0x411c64], cl
mov dx, word [ebp - 0x20c]
mov word [ebp - 0x138], dx
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0x14c]
add ecx, dword [ebp - 0x15c]
mov dword [ebp - 0x130], ecx
lea edx, [ebp - 0x130]
mov dword [ebp - 0x108], edx
lea eax, [ebp - 0x1c4]
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0x154]
add ecx, dword [ebp - 0x1a8]
mov dword [ebp - 0x15c], ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0x184], eax
mov dx, word [ebp - 0x10c]
mov word [ebp - 0x118], dx
mov al, byte [ebp - 0xf1]
mov byte [ebp - 0x155], al
movsx ecx, word [ebp - 0x10c]
movsx edx, word [ebp - 0x118]
sub ecx, edx
mov word [0x411004], cx
movzx eax, byte [ebp - 0x212]
movzx ecx, byte [ebp - 0xe1]
sub eax, ecx
mov byte [ebp - 0x145], al
push str.tz.pFc_WpUH7Li9ro7m
call dword [sym.imp.KERNEL32.dll_AddAtomA]
mov word [ebp - 0x1fc], ax
lea edx, [ebp - 0x138]
mov dword [ebp - 0x1d8], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [section..data]
sub ecx, dword [eax]
mov dword [ebp - 0x168], ecx
mov edx, dword [ebp - 0xe8]
mov eax, dword [edx]
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0x14f6
je 0x40406f
jmp 0x404084
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
and edx, dword [ebp - 8]
mov eax, dword [ebp - 0x210]
mov dword [eax], edx
jmp 0x4040e7
lea ecx, [ebp - 0x138]
mov dword [ebp - 0xec], ecx
mov dl, byte [ebp - 0x145]
mov byte [ebp - 0x129], dl
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x100]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x108]
mov dword [edx], ecx
movsx eax, word [0x411004]
movsx ecx, word [ebp - 0x118]
add eax, ecx
movsx edx, word [ebp - 0x10c]
movsx ecx, word [ebp - 0x150]
add edx, ecx
cmp eax, edx
jle 0x4040db
call fcn.004028a0
lea edx, [ebp - 0x168]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax]
mov dword [ebp - 0x238], ecx
cmp dword [ebp - 0x238], 0
je 0x404104
jmp 0x404f9b
mov edx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x1a8]
add eax, dword [edx]
mov dword [ebp - 0x14c], eax
mov cx, word [ebp - 0x150]
mov word [ebp - 0x104], cx
mov dl, byte [ebp - 0xf1]
mov byte [ebp - 0x10d], dl
movzx eax, word [ebp - 0x20c]
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
add eax, edx
mov ecx, dword [ebp - 0x1d8]
movzx edx, word [ecx]
movzx ecx, word [ebp - 0xe0]
sub edx, ecx
cmp eax, edx
jne 0x404f0b
mov dl, byte [0x411c64]
mov byte [ebp - 0x23c], dl
cmp byte [ebp - 0x23c], 0x33
je 0x404259
cmp byte [ebp - 0x23c], 0x56
je 0x404185
jmp 0x404315
mov eax, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x15c]
mov ecx, dword [eax]
sar edx, cl
mov eax, dword [ebp - 0xe8]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x1a8]
cmp edx, ecx
je 0x404209
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x1cc]
mov edx, dword [edx]
mov ecx, dword [eax]
shl edx, cl
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x1c4]
mov dword [ebp - 0x15c], ecx
lea edx, [ebp - 0x120]
push edx
lea eax, [ebp - 0x1b8]
push eax
lea ecx, [ebp - 0x212]
push ecx
call sub.gdiplus.dll_GdiplusStartup
mov dword [ebp - 0x168], eax
mov edx, dword [ebp - 0x17c]
mov eax, dword [edx]
add eax, dword [section..data]
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1a8]
and edx, dword [ebp - 0x15c]
mov dword [ebp - 0x100], edx
movzx eax, word [ebp - 4]
movzx ecx, word [ebp - 0x138]
sub eax, ecx
mov word [ebp - 0x20c], ax
movzx edx, byte [ebp - 0x145]
movzx eax, byte [ebp - 0xe1]
add edx, eax
mov ecx, dword [ebp - 0x124]
mov byte [ecx], dl
movzx edx, word [ebp - 0x150]
push edx
call fcn.00402070
jmp 0x404315
mov eax, dword [ebp - 0x130]
sub eax, dword [ebp - 0x154]
mov dword [ebp - 0x100], eax
movsx ecx, byte [ebp - 0xf1]
mov edx, dword [ebp - 0x140]
movsx eax, byte [edx]
add ecx, eax
movsx edx, byte [ebp - 0x155]
movsx eax, byte [ebp - 0x10d]
sub edx, eax
cmp ecx, edx
jne 0x4042e6
mov ecx, dword [ebp - 0x164]
and ecx, dword [ebp - 8]
mov dword [section..data], ecx
mov edx, dword [ebp - 0xe8]
mov eax, dword [edx]
or eax, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x108]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1cc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x100]
shl eax, cl
mov dword [ebp - 0x1c4], eax
mov ecx, dword [ebp - 0x124]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x212]
xor edx, eax
mov byte [ebp - 0x145], dl
jmp 0x404315
movzx edx, word [ebp - 0xe0]
movzx ecx, word [ebp - 0x138]
sar edx, cl
mov word [ebp - 0x20c], dx
lea eax, [ebp - 0xf1]
mov dword [ebp - 0x128], eax
lea ecx, [ebp - 0x10c]
mov dword [ebp - 0x1f4], ecx
mov dword [ebp - 0x1e8], section..data
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0x168]
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x164]
add ecx, dword [eax]
cmp edx, ecx
jne 0x4043c5
mov edx, dword [ebp - 0x1f4]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x144]
sub eax, ecx
movsx edx, word [ebp - 0x10c]
movsx ecx, word [ebp - 0x150]
sub edx, ecx
cmp eax, edx
jle 0x40437e
mov edx, dword [ebp - 0x1f4]
movzx eax, word [edx]
push eax
movzx ecx, word [ebp - 0x138]
push ecx
call fcn.004011e0
add esp, 8
mov edx, dword [ebp - 0x1a8]
add edx, dword [ebp - 0x100]
mov dword [ebp - 0x1c4], edx
lea eax, [ebp - 0x164]
mov dword [0x411c60], eax
mov cl, byte [ebp - 0x129]
mov byte [ebp - 0x211], cl
movzx edx, word [ebp - 0x20c]
mov eax, dword [ebp - 0x1d8]
movzx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0xe0], dx
jmp 0x404449
movsx edx, word [0x411004]
movsx eax, word [ebp - 0x144]
and edx, eax
mov ecx, dword [ebp - 0x1f4]
movsx eax, word [ecx]
movsx ecx, word [ebp - 0x104]
sub eax, ecx
cmp edx, eax
jle 0x404449
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1e8]
add eax, dword [ecx]
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x108]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0xe8]
mov dword [edx], ecx
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x1a8], edx
movzx eax, word [ebp - 4]
push eax
mov ecx, dword [ebp - 0x168]
push ecx
mov edx, dword [ebp - 0x17c]
mov eax, dword [edx]
push eax
call fcn.00401e10
mov ecx, dword [ebp - 0x164]
or ecx, dword [ebp - 8]
mov dword [ebp - 0x168], ecx
cmp dword [ebp - 0xac], 0x8dd
jb 0x40483e
movzx edx, byte [ebp - 0x211]
movzx ecx, byte [ebp - 0x129]
shl edx, cl
mov eax, dword [ebp - 0x124]
mov byte [eax], dl
movzx ecx, word [ebp - 0x20c]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
xor ecx, eax
mov word [ebp - 0x1dc], cx
movsx edx, byte [ebp - 0x155]
mov eax, dword [ebp - 0x140]
movsx ecx, byte [eax]
sar edx, cl
mov byte [0x411c64], dl
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x108]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ebp - 0x164]
add edx, dword [ecx]
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x130]
sub eax, dword [ebp - 0x154]
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x14c]
and edx, dword [ecx]
mov eax, dword [ebp - 0x108]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1f4]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x144]
sub edx, eax
mov word [ebp - 0x104], dx
mov ecx, dword [ebp - 0x140]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0xf1]
add edx, eax
mov ecx, dword [ebp - 0x128]
mov byte [ecx], dl
mov edx, dword [ebp - 0x1d8]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
add eax, edx
mov word [ebp - 0x1dc], ax
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x129]
add ecx, edx
mov eax, dword [ebp - 0x124]
mov byte [eax], cl
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0x168]
mov dword [section..data], ecx
mov edx, dword [ebp - 0xe8]
mov eax, dword [edx]
xor eax, dword [ebp - 0x14c]
mov dword [ebp - 0x100], eax
movzx edx, byte [ebp - 0xe1]
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax]
shl edx, cl
mov byte [ebp - 0x129], dl
movzx ecx, word [ebp - 0x138]
movzx edx, word [ebp - 0xe0]
or ecx, edx
mov word [ebp - 0x1dc], cx
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [0x411c60]
mov edx, dword [eax]
mov ecx, dword [ecx]
shr edx, cl
mov eax, dword [ebp - 0x17c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0xe8]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x108]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xe8]
add edx, dword [eax]
mov dword [ebp - 0x154], edx
mov ecx, dword [ebp - 0xac]
sub ecx, 0x97
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
sub eax, dword [ebp - 0x168]
mov dword [ebp - 8], eax
movzx ecx, byte [ebp - 0x129]
movzx edx, byte [ebp - 0x211]
add ecx, edx
mov byte [ebp - 0x145], cl
mov eax, dword [0x411c60]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x164]
mov edx, dword [0x411c60]
mov dword [edx], ecx
mov eax, dword [ebp - 0x108]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0x1cc]
mov dword [edx], ecx
mov eax, dword [ebp - 0x1c4]
sub eax, dword [ebp - 0x15c]
mov dword [ebp - 0x154], eax
movsx ecx, word [ebp - 0x150]
mov edx, dword [ebp - 0x1f4]
movsx eax, word [edx]
sub ecx, eax
mov word [ebp - 0x144], cx
mov ecx, dword [ebp - 0x140]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x128]
movsx ecx, byte [eax]
add edx, ecx
mov byte [ebp - 0x155], dl
mov edx, dword [ebp - 0x124]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x129]
add eax, ecx
mov edx, dword [ebp - 0x124]
mov byte [edx], al
mov eax, dword [ebp - 0x1d8]
movzx edx, word [eax]
movzx ecx, word [ebp - 0x138]
sar edx, cl
mov eax, dword [ebp - 0x1d8]
mov word [eax], dx
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x164]
mov ecx, dword [ecx]
shl edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [ebp - 0x17c]
mov edx, dword [eax]
or edx, dword [ecx]
mov eax, dword [ebp - 0x210]
mov dword [eax], edx
mov ecx, dword [ebp - 0x168]
xor ecx, dword [ebp - 0x164]
mov dword [section..data], ecx
mov edx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x108]
mov ecx, dword [edx]
and ecx, dword [eax]
mov edx, dword [ebp - 0x1cc]
mov dword [edx], ecx
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xe8]
add ecx, dword [edx]
mov eax, dword [ebp - 0x108]
mov dword [eax], ecx
movzx ecx, byte [ebp - 0x129]
movzx edx, byte [ebp - 0x145]
sub ecx, edx
mov eax, dword [ebp - 0x124]
mov byte [eax], cl
movzx ecx, word [ebp - 0x20c]
movzx edx, word [ebp - 0x1dc]
add ecx, edx
mov word [ebp - 0xe0], cx
lea eax, [ebp - 0x1a4]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 0x1e8]
mov dword [edx], ecx
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x154]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x108]
mov dword [edx], ecx
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [eax]
and edx, dword [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x17c]
add ecx, dword [edx]
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x212]
sub ecx, edx
mov byte [ebp - 0x211], cl
mov eax, dword [ebp - 0x17c]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x168]
mov edx, dword [0x411c60]
mov dword [edx], ecx
mov eax, dword [ebp - 0x128]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x140]
movsx eax, byte [edx]
xor ecx, eax
mov byte [ebp - 0x10d], cl
movsx edx, word [ebp - 0x10c]
movsx ecx, word [ebp - 0x150]
sar edx, cl
mov word [ebp - 0x104], dx
jmp 0x404458
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x100]
shl edx, cl
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x211]
or ecx, edx
mov byte [ebp - 0x129], cl
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x164]
and ecx, dword [eax]
mov edx, dword [ebp - 0x168]
add edx, dword [ebp - 0xb0]
cmp ecx, edx
jae 0x404903
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x130], edx
mov eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0xb0]
sub ecx, dword [eax]
mov dword [ebp - 8], ecx
lea edx, [ebp - 0x108]
push edx
push fcn.00401c50
mov eax, dword [ebp - 0x1f8]
push eax
call sub.COMCTL32.dll_RemoveWindowSubclass
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ecx]
and eax, dword [edx]
mov ecx, dword [0x411c60]
mov dword [ecx], eax
movzx edx, word [ebp - 0x118]
push edx
call fcn.00402070
jmp 0x404ef2
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x154]
mov edx, dword [ebp - 0xe8]
mov dword [edx], ecx
movzx eax, byte [ebp - 0x129]
movzx ecx, byte [ebp - 0xe1]
sar eax, cl
mov byte [ebp - 0x211], al
lea ecx, [ebp - 0xd4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1dc]
shl eax, cl
mov word [ebp - 0xe0], ax
mov ecx, dword [ebp - 0x164]
xor ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x1e8]
mov dword [edx], ecx
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x108]
mov edx, dword [eax]
or edx, dword [ecx]
mov dword [ebp - 0x130], edx
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x1c4]
add ecx, dword [eax]
mov dword [ebp - 0x130], ecx
lea edx, [ebp - 0x208]
push edx
mov eax, dword [ebp - 0xf0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x1e0], eax
mov ecx, dword [ebp - 0x154]
and ecx, dword [ebp - 0x1c4]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x108]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [0x411c60]
mov dword [edx], ecx
mov eax, dword [ebp - 0x1f4]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x118]
sub ecx, edx
mov word [ebp - 0x104], cx
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x129]
add ecx, edx
mov byte [ebp - 0x211], cl
movzx eax, word [ebp - 0xe0]
mov ecx, dword [ebp - 0x1d8]
movzx edx, word [ecx]
add eax, edx
mov word [ebp - 0x20c], ax
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
mov edx, dword [0x411c60]
mov eax, dword [edx]
sub eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x1e8]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1e4]
sub edx, 0x71
mov dword [ebp - 0x1e4], edx
movzx eax, word [ebp - 4]
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
and eax, edx
mov word [ebp - 0x138], ax
movzx eax, byte [ebp - 0x211]
movzx ecx, byte [ebp - 0x129]
shl eax, cl
mov byte [ebp - 0x212], al
mov ecx, dword [ebp - 0x1c4]
xor ecx, dword [ebp - 0x1a8]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x164]
or edx, dword [ebp - 0xb0]
mov dword [section..data], edx
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x1a8]
sar eax, cl
mov ecx, dword [ebp - 0xe8]
mov dword [ecx], eax
cmp dword [ebp - 0x1e4], 0x9bba
ja 0x404903
lea edx, [ebp - 0x100]
mov dword [ebp - 0x160], edx
lea eax, [ebp - 0x211]
mov dword [ebp - 0x18c], eax
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x200], ecx
mov edx, dword [0x411c60]
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x1cc]
mov eax, dword [edx]
sub eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x108]
mov edx, dword [ecx]
and edx, dword [ebp - 0x1c4]
cmp eax, edx
jg 0x404e88
mov eax, dword [ebp - 0x1d8]
movzx ecx, word [eax]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0x138], cx
mov ecx, dword [ebp - 0x124]
mov dl, byte [ecx]
mov byte [ebp - 0x1c5], dl
mov eax, dword [ebp - 0x17c]
mov ecx, dword [eax]
mov dword [ebp - 0x240], ecx
cmp dword [ebp - 0x240], 0
je 0x404bae
cmp dword [ebp - 0x240], 0xd504
je 0x404b92
jmp 0x404e25
movzx edx, word [ebp - 0x20c]
movzx ecx, word [ebp - 0x138]
sar edx, cl
mov word [ebp - 0xe0], dx
jmp 0x404e25
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x108]
mov edx, dword [eax]
and edx, dword [ecx]
mov dword [0x411008], edx
mov eax, dword [ebp - 0x18c]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x124]
movzx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x145], cl
mov ecx, dword [ebp - 0x108]
mov edx, dword [ecx]
add edx, dword [ebp - 0x15c]
mov dword [ebp - 0x14c], edx
mov eax, dword [0x411c60]
mov ecx, dword [eax]
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x160]
mov ecx, dword [edx]
and ecx, dword [eax]
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x160]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1cc]
add eax, dword [ecx]
mov dword [ebp - 0x130], eax
movzx edx, word [ebp - 0x138]
mov eax, dword [ebp - 0x1d8]
movzx ecx, word [eax]
add edx, ecx
mov word [ebp - 4], dx
cmp dword [ebp - 0x180], 0x5f20
jbe 0x404d29
movzx edx, byte [ebp - 0x212]
movzx eax, byte [ebp - 0x1c5]
sub edx, eax
mov byte [ebp - 0x211], dl
mov ecx, dword [ebp - 0x180]
sub ecx, 0x79
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 0x1f4]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x118]
sub eax, ecx
mov word [ebp - 0x144], ax
mov edx, dword [ebp - 8]
sub edx, dword [ebp - 0x164]
mov eax, dword [0x411c60]
mov dword [eax], edx
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ecx]
mov ecx, dword [edx]
shr eax, cl
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x108]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx]
movzx eax, word [ebp - 0xe0]
xor edx, eax
mov word [ebp - 0x138], dx
movzx edx, byte [ebp - 0x129]
movzx ecx, byte [ebp - 0x1c5]
shl edx, cl
mov eax, dword [ebp - 0x124]
mov byte [eax], dl
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ecx]
and edx, dword [ebp - 0x164]
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x14c]
sub eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x100], eax
jmp 0x404c41
mov dword [ebp - 0x170], 0x411c68
push 0
push 0
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x1d0], ecx
mov edx, dword [0x411c60]
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x168], ecx
mov edx, dword [ebp - 0x1d0]
mov eax, dword [edx]
mov dword [0x416c68], eax
movzx ecx, byte [ebp - 0x211]
mov edx, dword [ebp - 0x18c]
movzx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0xe1], cl
mov dword [ebp - 0x1f0], 0x40c178
mov ecx, dword [section..data]
mov dword [ebp - 0x244], ecx
cmp dword [ebp - 0x244], 0xeb6f
je 0x404da8
jmp 0x404db9
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 8], eax
movzx ecx, word [ebp - 0xe0]
movzx edx, word [ebp - 0x20c]
add ecx, edx
mov eax, dword [ebp - 0x200]
movzx edx, word [eax]
mov eax, dword [ebp - 0xec]
movzx eax, word [eax]
and edx, eax
cmp ecx, edx
jg 0x404e01
movzx ecx, word [ebp - 0xe0]
mov edx, dword [ebp - 0x200]
movzx eax, word [edx]
add ecx, eax
mov edx, dword [ebp - 0x1d8]
mov word [edx], cx
call fcn.00401650
mov eax, dword [ebp - 0x14c]
sub eax, dword [ebp - 0x154]
mov dword [ebp - 0x1c4], eax
mov ecx, dword [ebp - 0x154]
add ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x130], ecx
mov edx, dword [ebp - 0x164]
sub edx, dword [ebp - 0x168]
mov dword [ebp - 0xb0], edx
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x1c4]
add ecx, dword [eax]
mov edx, dword [ebp - 0x160]
mov dword [edx], ecx
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x154]
shl eax, cl
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 8]
or ecx, dword [ebp - 0x168]
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
xor eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x1cc]
mov dword [ecx], eax
jmp 0x404ead
mov edx, dword [ebp - 0x15c]
add edx, dword [ebp - 0x154]
mov eax, dword [ebp - 0xe8]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x108]
add ecx, dword [eax]
cmp edx, ecx
jne 0x404ead
call fcn.004028a0
mov ecx, dword [ebp - 0x160]
mov edx, dword [ecx]
add edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0xe8]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1f4]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x104]
sub edx, eax
mov word [ebp - 0x118], dx
movsx ecx, byte [ebp - 0x10d]
movsx edx, byte [ebp - 0x155]
add ecx, edx
mov byte [ebp - 0xf1], cl
movzx eax, word [ebp - 0x1dc]
movzx ecx, word [ebp - 0x138]
sub eax, ecx
mov word [ebp - 0xe0], ax
jmp 0x404f4e
mov edx, dword [ebp - 0x17c]
mov eax, dword [edx]
add eax, dword [ebp - 0x164]
mov ecx, dword [section..data]
sub ecx, dword [ebp - 0x168]
cmp eax, ecx
jbe 0x404f4e
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x17c]
add eax, dword [ecx]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x140]
movzx eax, byte [edx]
push eax
call fcn.00402cb0
add esp, 4
movzx ecx, word [ebp - 0x138]
movzx edx, word [ebp - 0xe0]
sub ecx, edx
mov word [ebp - 0x20c], cx
movzx eax, byte [ebp - 0xe1]
movzx ecx, byte [ebp - 0x212]
and eax, ecx
mov edx, dword [ebp - 0x124]
mov byte [edx], al
movzx eax, word [ebp - 4]
push eax
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
push ecx
call fcn.00401e10
jmp 0x404fc7
movzx edx, word [ebp - 0xe0]
mov eax, dword [ebp - 0x1d8]
movzx ecx, word [eax]
xor edx, ecx
mov eax, dword [ebp - 0xec]
mov word [eax], dx
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
and edx, dword [ebp - 8]
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x164]
or ecx, dword [eax]
mov dword [section..data], ecx
mov edx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x15c]
mov ecx, dword [edx]
sar eax, cl
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x124]
movzx edx, byte [ecx]
movzx ecx, byte [ebp - 0x129]
shl edx, cl
mov byte [ebp - 0x145], dl
mov eax, dword [ebp - 0x1d8]
movzx ecx, word [eax]
push ecx
mov edx, dword [ebp - 0x164]
push edx
mov eax, dword [ebp - 0x164]
push eax
call fcn.00401e10
jmp 0x4050cc
mov ecx, dword [ebp - 0x124]
movzx edx, byte [ecx]
movzx ecx, byte [ebp - 0x212]
shl edx, cl
movzx eax, byte [ebp - 0xe1]
movzx ecx, byte [ebp - 0x145]
and eax, ecx
cmp edx, eax
jge 0x4050cc
mov edx, dword [ebp - 0x124]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x145]
sub eax, ecx
mov byte [ebp - 0xe1], al
movzx edx, word [ebp - 4]
mov dword [ebp - 0x248], edx
cmp dword [ebp - 0x248], 0xbcc
je 0x405081
jmp 0x405097
mov eax, dword [ebp - 0x1cc]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x15c]
sar edx, cl
mov dword [ebp - 0x130], edx
mov eax, dword [ebp - 0x164]
sub eax, dword [section..data]
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
mov edx, dword [ebp - 0x140]
movsx eax, byte [edx]
sub eax, 0x17
mov byte [ebp - 0xf1], al
mov ecx, dword [ebp - 8]
xor ecx, dword [ebp - 0x164]
mov dword [section..data], ecx
mov edx, dword [ebp - 0x164]
sub edx, dword [section..data]
mov dword [ebp - 8], edx
push 7
mov eax, dword [ebp - 0x1c0]
push eax
mov ecx, dword [ebp - 0x1c0]
push ecx
call dword [sym.imp.COMCTL32.dll_DrawInsert]
mov edx, dword [ebp - 0x1cc]
mov eax, dword [edx]
add eax, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x1cc]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1cc]
mov eax, dword [edx]
and eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [section..data]
add edx, dword [ecx]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0xe1]
add ecx, edx
mov eax, dword [ebp - 0x124]
mov byte [eax], cl
jmp 0x405172
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x210]
mov edx, dword [edx]
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [eax]
call fcn.00402210
mov ecx, dword [ebp - 0x154]
sub ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 8]
add edx, dword [section..data]
mov dword [ebp - 0x164], edx
movsx eax, byte [ebp - 0xf1]
or eax, 0x61
mov ecx, dword [ebp - 0x140]
mov byte [ecx], al
mov edx, dword [ebp - 0x140]
movsx eax, byte [edx]
shl eax, 2
mov byte [ebp - 0xf1], al
jmp 0x40522c
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
sub edx, dword [section..data]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x1a8]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x164]
add edx, dword [ecx]
mov dword [section..data], edx
push 0xa4
lea eax, [ebp - 0x188]
push eax
push fcn.00402070
mov ecx, dword [ebp - 0x1f8]
push ecx
call sub.COMCTL32.dll_SetWindowSubclass
mov dword [ebp - 0x188], eax
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
add eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
and eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
movzx edx, byte [ebp - 0xe1]
add edx, 0xe1
mov byte [ebp - 0x212], dl
mov cl, byte [ebp - 0xf1]
call section..text
jmp 0x4052f3
movzx eax, word [ebp - 0x20c]
sub eax, 0x7e3
movzx ecx, word [ebp - 0x1dc]
cmp eax, ecx
jle 0x4052f3
mov edx, dword [ebp - 0x14c]
add edx, dword [ebp - 0x15c]
mov dword [ebp - 0x1a8], edx
movzx eax, byte [ebp - 0xe1]
sub eax, 0xbb
movzx ecx, byte [ebp - 0x212]
cmp eax, ecx
jg 0x4052f3
movzx edx, byte [ebp - 0x212]
sub edx, 0x45
mov byte [ebp - 0xe1], dl
movzx eax, word [ebp - 0x20c]
add eax, 0xe03
mov word [ebp - 0x1dc], ax
push 0x86
mov ecx, dword [ebp - 0xdc]
push ecx
mov edx, dword [ebp - 0x1f8]
push edx
call dword [sym.imp.COMCTL32.dll_DrawInsert]
movsx eax, byte [ebp - 0xf1]
and eax, 0x31
mov ecx, dword [ebp - 0x140]
mov byte [ecx], al
mov cl, byte [ebp - 0xf1]
call section..text
movzx edx, byte [ebp - 0x212]
add edx, 0x1a
mov byte [ebp - 0xe1], dl
push 0xe1
mov eax, dword [ebp - 0xdc]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.COMCTL32.dll_DrawInsert]
mov edx, dword [section..data]
mov dword [ebp - 0x24c], edx
cmp dword [ebp - 0x24c], 0xaf0b
je 0x405340
jmp 0x405353
movsx eax, word [ebp - 0x144]
add eax, 0x93
mov word [ebp - 0x150], ax
movsx ecx, byte [ebp - 0xf1]
add ecx, 0xc
mov edx, dword [ebp - 0x140]
mov byte [edx], cl
mov eax, dword [ebp - 0x130]
and eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x14c]
imul ecx, dword [ebp - 0x154]
cmp eax, ecx
jle 0x4053a9
mov edx, dword [ebp - 0x140]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0xf1]
sub eax, ecx
mov edx, dword [ebp - 0x140]
mov byte [edx], al
movzx eax, word [ebp - 0x150]
push eax
call fcn.00402070
jmp 0x4053d7
mov ecx, dword [ebp - 0x140]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0xf1]
sub edx, eax
mov ecx, dword [ebp - 0x140]
mov byte [ecx], dl
mov edx, dword [ebp - 0x15c]
sub edx, dword [ebp - 0x130]
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x140]
movsx ecx, byte [eax]
sar ecx, 3
mov byte [ebp - 0xf1], cl
movsx edx, byte [ebp - 0xf1]
and edx, 0x25
mov eax, dword [ebp - 0x140]
mov byte [eax], dl
movzx ecx, byte [ebp - 0xe1]
add ecx, 0xf9
mov byte [ebp - 0xe1], cl
mov eax, dword [ebp - 0x130]
mov esp, ebp
pop ebp
ret 0x10