Function at 0x402040
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x218
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x74], 0x6edd
mov eax, 0x697
mov word [ebp - 0x1c], ax
cmp dword [ebp - 0x74], 0x32eb
jge 0x4020a9
mov ecx, dword [ebp - 0x74]
sub ecx, 0x2aa7
mov dword [ebp - 0x74], ecx
movsx edx, word [ebp - 0x1c]
add edx, 0x301
mov word [ebp - 0x1c], dx
movsx eax, word [ebp - 0x1c]
and eax, 0x7d1
mov word [ebp - 0x1c], ax
movzx ecx, word [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x74]
push edx
call fcn.00401fd0
add esp, 8
mov ax, word [ebp - 0x1c]
mov word [ebp - 0x30], ax
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x24], ecx
mov byte [ebp - 2], 0xcb
mov byte [ebp - 7], 0x6b
movzx edx, byte [ebp - 2]
imul eax, edx, 0x53
mov byte [str._aK_e], al
mov dword [ebp - 0x98], 0x4e0d
mov ecx, 0x55
mov word [ebp - 0x20], cx
mov dx, word [ebp - 0x20]
mov word [ebp - 0x28], dx
mov al, byte [ebp - 2]
mov byte [ebp - 1], al
mov cl, byte [ebp - 7]
mov byte [ebp - 5], cl
lea edx, [ebp - 0x98]
mov dword [ebp - 0x88], edx
mov al, byte [ebp - 7]
mov byte [ebp - 6], al
mov cx, word [ebp - 0x1c]
mov word [ebp - 0x44], cx
mov dx, word [ebp - 0x20]
mov word [0x40701c], dx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
mov dword [ebp - 0x94], ecx
lea edx, [ebp - 2]
mov dword [ebp - 0x40], edx
lea eax, [ebp - 0x20]
mov dword [ebp - 0x38], eax
movzx ecx, word [ebp - 0x20]
movzx edx, word [ebp - 0x28]
xor ecx, edx
movzx eax, word [0x40701c]
mov edx, dword [ebp - 0x38]
movzx edx, word [edx]
or eax, edx
cmp ecx, eax
jge 0x40218c
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x50], ecx
lea edx, [ebp - 0x4c]
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4c]
cdq
idiv dword [ecx]
mov dword [ebp - 0x74], eax
mov dx, word [ebp - 0x20]
mov word [ebp - 0xc], dx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
mov edx, dword [eax]
mov ecx, dword [ecx]
shl edx, cl
mov dword [0x407004], edx
lea eax, [ebp - 1]
mov dword [ebp - 0x80], eax
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x84]
sar eax, cl
mov dword [ebp - 0x94], eax
movsx ecx, word [ebp - 0x1c]
mov dword [ebp - 0x178], ecx
cmp dword [ebp - 0x178], 0x445
je 0x4021ed
cmp dword [ebp - 0x178], 0x557
je 0x4021cf
jmp 0x402223
mov edx, dword [ebp - 0x24]
mov eax, dword [0x407004]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
movsx edx, byte [ebp - 7]
movsx eax, byte [ebp - 6]
add edx, eax
mov byte [ebp - 5], dl
jmp 0x402223
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx]
and edx, dword [ebp - 0x98]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
movzx edx, word [ebp - 0xc]
add ecx, edx
mov eax, dword [ebp - 0x38]
mov word [eax], cx
movzx ecx, word [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
push eax
call fcn.00401fd0
add esp, 8
mov ecx, dword [ebp - 0x40]
mov dl, byte [ecx]
mov byte [ebp - 4], dl
movsx eax, word [ebp - 0x44]
movsx ecx, word [ebp - 0x30]
sub eax, ecx
mov word [0x407008], ax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x94]
add eax, dword [edx]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x84]
cmp eax, edx
je 0x4022de
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x134], 0x7b57
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
cdq
idiv dword [0x407004]
mov edx, dword [ebp - 0x74]
xor edx, dword [ebp - 0x94]
cmp eax, edx
jg 0x4022cd
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x138], 0x60b3
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x94]
or eax, dword [edx]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
mov dword [ebp - 0x8c], edx
movzx eax, word [ebp - 0x20]
movzx ecx, word [ebp - 0x28]
and eax, ecx
mov word [ebp - 0xc], ax
movzx edx, byte [ebp - 4]
mov eax, dword [ebp - 0x80]
movzx ecx, byte [eax]
imul edx, ecx
mov byte [ebp - 2], dl
jmp 0x4022de
mov edx, dword [ebp - 0x88]
mov eax, dword [edx]
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x40]
mov dl, byte [ecx]
mov byte [ebp - 0x17c], dl
cmp byte [ebp - 0x17c], 0xbb
je 0x4022fd
cmp byte [ebp - 0x17c], 0xf9
je 0x402311
jmp 0x402333
mov eax, dword [ebp - 0x4c]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
push edx
call fcn.00402010
add esp, 8
jmp 0x402333
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
lea ecx, [ebp - 0x1c]
mov dword [0x407020], ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
movzx eax, byte [str._aK_e]
sub edx, eax
mov byte [ebp - 4], dl
movzx ecx, word [ebp - 0x28]
movzx edx, word [ebp - 0x20]
add ecx, edx
mov word [ebp - 0xc], cx
mov al, byte [ebp - 6]
mov byte [ebp - 0x11], al
movsx ecx, word [ebp - 0x1c]
imul edx, ecx, 0x3f1
mov word [ebp - 0x30], dx
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x58], eax
mov ecx, dword [0x407020]
movsx edx, word [ecx]
mov dword [ebp - 0x180], edx
cmp dword [ebp - 0x180], 0x1f7
je 0x4023a1
cmp dword [ebp - 0x180], 0x697
je 0x4023e3
jmp 0x404944
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x58]
add ecx, dword [eax]
mov dword [ebp - 0x4c], ecx
movzx edx, word [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x4c]
push eax
call fcn.00401fd0
add esp, 8
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x4c]
sar edx, cl
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
mov ecx, dword [ebp - 0x70]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
push eax
call fcn.00402010
add esp, 8
jmp 0x404944
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x84]
xor edx, dword [ecx]
mov dword [ebp - 0x8c], edx
lea eax, [ebp - 4]
mov dword [ebp - 0x9c], eax
lea ecx, [ebp - 0xc]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x88]
mov eax, dword [edx]
mov dword [ebp - 0x90], eax
movsx edx, word [ebp - 0x1c]
movsx eax, word [ebp - 0x30]
or edx, eax
movsx eax, word [ebp - 0x44]
movsx ecx, word [0x407008]
shl eax, cl
cmp edx, eax
jge 0x4024bd
mov ecx, dword [ebp - 0x5c]
movzx eax, word [ecx]
mov edx, dword [ebp - 0x38]
movzx ecx, word [edx]
cdq
idiv ecx
movzx edx, word [ebp - 0xc]
movzx ecx, word [ebp - 0x28]
imul edx, ecx
cmp eax, edx
je 0x4024bd
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov ecx, dword [edx]
and ecx, dword [eax]
mov edx, dword [0x407004]
sub edx, dword [ebp - 0x4c]
cmp ecx, edx
jge 0x4024bd
mov eax, dword [ebp - 0x5c]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x28]
add ecx, edx
movzx eax, word [ebp - 0xc]
mov edx, dword [ebp - 0x38]
movzx edx, word [edx]
add eax, edx
cmp ecx, eax
jl 0x4024bd
mov al, byte [ebp - 5]
mov byte [0x40701e], al
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xcc], eax
lea ecx, [ebp - 5]
mov dword [ebp - 0x7c], ecx
movzx edx, word [ebp - 0x28]
movzx eax, word [ebp - 0xc]
and edx, eax
mov ecx, dword [ebp - 0x5c]
movzx eax, word [ecx]
mov ecx, dword [ebp - 0x38]
movzx ecx, word [ecx]
imul eax, ecx
cmp edx, eax
jg 0x4048c6
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x84]
sar eax, cl
mov dword [ebp - 0x8c], eax
mov cx, word [ebp - 0xc]
mov word [ebp - 0x2c], cx
mov dword [ebp - 0x148], 0x6cf4
mov edx, dword [ebp - 0x88]
mov eax, dword [edx]
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c0], 0x4e0d
je 0x402522
jmp 0x404818
lea ecx, [ebp - 0x20]
mov dword [ebp - 0xb0], ecx
movzx edx, word [0x40701c]
mov dword [ebp - 0x184], edx
cmp dword [ebp - 0x184], 0x55
je 0x40258d
cmp dword [ebp - 0x184], 0x405
je 0x402552
jmp 0x4047a4
mov eax, dword [0x407020]
movzx ecx, word [eax]
push ecx
mov edx, dword [ebp - 0x58]
push edx
call fcn.00401fd0
add esp, 8
mov eax, dword [ebp - 0x8c]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x94], eax
movsx ecx, word [ebp - 0x1c]
movsx edx, word [ebp - 0x30]
and ecx, edx
mov eax, dword [0x407020]
mov word [eax], cx
jmp 0x4047a4
mov ecx, dword [ebp - 0x9c]
mov dl, byte [ecx]
mov byte [ebp - 0x188], dl
cmp byte [ebp - 0x188], 0x28
je 0x4025b6
cmp byte [ebp - 0x188], 0xc3
je 0x4046f7
jmp 0x404794
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x18]
mov dword [edx], ecx
movsx eax, word [ebp - 0x44]
movsx ecx, word [ebp - 0x30]
sub eax, ecx
mov edx, dword [0x407020]
movsx ecx, word [edx]
movsx edx, word [ebp - 0x1c]
and ecx, edx
cmp eax, ecx
jle 0x4046af
mov eax, dword [ebp - 0x9c]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 1]
sar edx, cl
mov byte [0x407001], dl
movsx eax, byte [ebp - 6]
movsx ecx, byte [ebp - 0x11]
cdq
idiv ecx
movsx edx, byte [ebp - 5]
mov ecx, dword [ebp - 0x7c]
movsx ecx, byte [ecx]
add edx, ecx
cmp eax, edx
jne 0x402655
mov edx, dword [ebp - 0x38]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x2c]
sub eax, ecx
mov edx, dword [ebp - 0xb0]
mov word [edx], ax
movzx eax, word [ebp - 0xc]
push eax
call fcn.00401e90
add esp, 4
mov ecx, dword [ebp - 0x7c]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 5]
sub edx, eax
mov byte [ebp - 6], dl
movsx ecx, word [ebp - 0x30]
movsx edx, word [ebp - 0x44]
add ecx, edx
mov word [ebp - 0x1c], cx
jmp 0x4026ab
mov eax, dword [ebp - 0x80]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x40]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 2], cl
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
mov dword [ebp - 0xbc], edx
movzx eax, byte [ebp - 1]
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x38]
mov cx, word [eax]
mov word [ebp - 0x34], cx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x58]
add eax, dword [edx]
mov dword [ebp - 0x78], eax
lea ecx, [ebp - 0x90]
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0x13c], 0x168c
mov edx, dword [ebp - 0xa0]
sub edx, dword [ebp - 0x78]
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xac], eax
movzx ecx, word [ebp - 0xc]
mov edx, dword [ebp - 0xb0]
movzx eax, word [edx]
sub ecx, eax
mov word [ebp - 0x2c], cx
mov ecx, dword [ebp - 0x9c]
mov dl, byte [ecx]
mov byte [ebp - 3], dl
cmp dword [ebp - 0x134], 0x853e
jae 0x402957
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x78]
mov ecx, dword [eax]
sar edx, cl
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x78]
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0x134]
add edx, 0x27
mov dword [ebp - 0x134], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x84]
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x54]
shl eax, cl
mov dword [0x407004], eax
mov ecx, dword [ebp - 0x58]
and ecx, dword [0x407004]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
add eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
movsx edx, byte [ebp - 5]
movsx eax, byte [ebp - 0x11]
sub edx, eax
mov byte [ebp - 6], dl
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0xc4]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0x50], eax
movzx ecx, word [ebp - 0x28]
mov edx, dword [ebp - 0x38]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0x20], cx
movzx ecx, byte [ebp - 3]
mov edx, dword [ebp - 0x40]
movzx eax, byte [edx]
add ecx, eax
mov edx, dword [ebp - 0x9c]
mov byte [edx], cl
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x84]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x18]
mov dword [edx], ecx
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
movzx edx, word [0x40701c]
add ecx, edx
mov word [ebp - 0x28], cx
movsx eax, word [ebp - 0x30]
movsx ecx, word [ebp - 0x1c]
sub eax, ecx
mov edx, dword [0x407020]
mov word [edx], ax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
mov edx, dword [eax]
or edx, dword [ecx]
mov eax, dword [ebp - 0x10]
mov dword [eax], edx
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x50]
shl edx, cl
mov dword [ebp - 0x90], edx
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xac]
sar edx, cl
mov eax, dword [ebp - 0x24]
mov dword [eax], edx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x74]
mov dword [ebp - 0xcc], edx
movzx eax, word [ebp - 0x34]
movzx ecx, word [ebp - 0xc]
and eax, ecx
mov word [ebp - 0x20], ax
movzx edx, byte [ebp - 1]
mov eax, dword [ebp - 0x9c]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 3], dl
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x84]
add ecx, dword [ebp - 0x78]
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x7c]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 7]
sub eax, ecx
mov byte [0x40701e], al
mov edx, dword [ebp - 0xb0]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x34]
and eax, ecx
mov edx, dword [ebp - 0x38]
mov word [edx], ax
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x80]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 3], dl
mov edx, dword [ebp - 0x38]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x2c]
add eax, ecx
mov word [ebp - 0x28], ax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x84]
sub eax, dword [edx]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ecx]
sar edx, cl
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x54]
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x74]
shl edx, cl
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
movsx ecx, word [ebp - 0x30]
movsx edx, word [ebp - 0x1c]
or ecx, edx
mov eax, dword [0x407020]
mov word [eax], cx
movzx ecx, word [ebp - 0x2c]
mov edx, dword [ebp - 0x5c]
movzx eax, word [edx]
and ecx, eax
mov edx, dword [ebp - 0x38]
mov word [edx], cx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x98]
mov dword [ebp - 0x90], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
add eax, dword [ebp - 0x70]
mov dword [ebp - 0x8c], eax
movzx ecx, word [ebp - 0x20]
movzx edx, word [ebp - 0x28]
sub ecx, edx
mov eax, dword [ebp - 0xb0]
mov word [eax], cx
jmp 0x4026e1
movzx ecx, byte [ebp - 3]
mov edx, dword [ebp - 0x80]
movzx eax, byte [edx]
imul ecx, eax
mov edx, dword [ebp - 0x40]
mov byte [edx], cl
movsx eax, byte [ebp - 6]
movsx ecx, byte [ebp - 5]
and eax, ecx
mov byte [ebp - 7], al
cmp dword [ebp - 0x138], 0x4ba1
jb 0x402b5f
mov edx, dword [0x407020]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x30]
add eax, ecx
mov word [0x407008], ax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x84]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov edx, dword [ebp - 0x88]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xc4]
add eax, dword [ecx]
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x40]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 2]
sar eax, cl
mov byte [ebp - 3], al
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x20]
or edx, eax
mov word [ebp - 0x2c], dx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x24]
mov dword [eax], edx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx]
mov ecx, dword [edx]
shl eax, cl
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x24]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x8c]
add edx, dword [ecx]
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
movzx ecx, byte [ebp - 1]
movzx edx, byte [ebp - 4]
sub ecx, edx
mov byte [str._aK_e], cl
mov eax, dword [ebp - 0xb0]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x5c]
movzx eax, word [edx]
sub ecx, eax
mov word [ebp - 0x20], cx
mov ecx, dword [ebp - 0x50]
add ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x88]
mov dword [edx], ecx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xbc]
and eax, dword [edx]
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [0x407004]
add edx, dword [ecx]
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
mov ecx, dword [ebp - 0x138]
sub ecx, 0xae
mov dword [ebp - 0x138], ecx
movsx edx, word [ebp - 0x30]
movsx eax, word [ebp - 0x1c]
or edx, eax
mov word [ebp - 0x44], dx
movsx edx, byte [ebp - 5]
movsx ecx, byte [ebp - 0x11]
sar edx, cl
mov eax, dword [ebp - 0x7c]
mov byte [eax], dl
mov ecx, dword [ebp - 0x9c]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 2]
xor edx, eax
mov byte [0x407001], dl
movzx edx, word [ebp - 0x20]
movzx ecx, word [ebp - 0x2c]
shl edx, cl
mov word [ebp - 0xc], dx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x98]
mov dword [ebp - 0x90], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x78]
and eax, dword [edx]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov edx, dword [ebp - 0x40]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 1]
sub eax, ecx
mov byte [ebp - 3], al
movzx edx, word [ebp - 0xc]
movzx eax, word [ebp - 0x34]
add edx, eax
mov word [ebp - 0x2c], dx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x54]
add edx, dword [ecx]
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
mov edx, dword [eax]
sub edx, dword [ecx]
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x24]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
add edx, dword [ebp - 0x54]
mov dword [0x407004], edx
movzx eax, byte [ebp - 4]
movzx ecx, byte [ebp - 3]
add eax, ecx
mov byte [ebp - 2], al
jmp 0x402976
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
and eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xbc]
xor ecx, dword [ebp - 0x4c]
cmp eax, ecx
jg 0x402b9b
mov edx, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x50]
shr edx, cl
mov dword [ebp - 0x90], edx
movzx eax, word [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
push edx
call fcn.00401fd0
add esp, 8
lea eax, [ebp - 0xc]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0x70], eax
lea ecx, [ebp - 6]
mov dword [ebp - 0xb4], ecx
mov edx, dword [0x407020]
mov ax, word [edx]
mov word [ebp - 0x68], ax
mov ecx, dword [ebp - 0xb0]
movzx edx, word [ecx]
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
shl edx, cl
mov word [ebp - 0x28], dx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
mov dword [ebp - 0x1c4], edx
cmp dword [ebp - 0x1c4], 0xffffffff
je 0x402bf5
jmp 0x404660
movsx eax, word [ebp - 0x1c]
movsx ecx, word [ebp - 0x68]
add eax, ecx
movsx edx, word [ebp - 0x30]
mov ecx, dword [0x407020]
movsx ecx, word [ecx]
sub edx, ecx
cmp eax, edx
jle 0x402c24
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x10]
add eax, dword [ecx]
mov dword [ebp - 0x94], eax
jmp 0x402c6c
mov edx, dword [0x407020]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x44]
sub eax, ecx
movsx edx, word [ebp - 0x68]
movsx ecx, word [0x407008]
add edx, ecx
cmp eax, edx
jg 0x402c6c
push 0xb6
push 0x81
push 0x24
push 0xaa
call dword [sym.imp.USER32.dll_keybd_event]
mov edx, dword [ebp - 0x94]
sub edx, dword [0x407004]
mov eax, dword [ebp - 0x10]
mov dword [eax], edx
mov ecx, dword [ebp - 0x5c]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xb8]
movzx ecx, word [eax]
add edx, ecx
mov word [ebp - 0xc], dx
mov dl, byte [ebp - 4]
mov byte [ebp - 0x39], dl
mov eax, dword [ebp - 0x54]
xor eax, dword [0x407004]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0xd4], edx
movsx eax, byte [ebp - 7]
movsx ecx, byte [ebp - 5]
shl eax, cl
movsx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0xb4]
movsx edx, byte [edx]
or ecx, edx
cmp eax, ecx
jg 0x40463e
movsx eax, byte [ebp - 5]
mov ecx, dword [ebp - 0x7c]
movsx edx, byte [ecx]
sub eax, edx
mov byte [0x407002], al
mov eax, dword [ebp - 0xa0]
and eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
lea edx, [ebp - 0x98]
mov dword [ebp - 0xd0], edx
movzx eax, word [ebp - 0x20]
movzx ecx, word [ebp - 0x2c]
sub eax, ecx
mov edx, dword [ebp - 0xb8]
movzx ecx, word [edx]
movzx edx, word [ebp - 0x34]
sub ecx, edx
cmp eax, ecx
jge 0x404567
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
add edx, dword [ebp - 0x54]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xd4]
add ecx, dword [eax]
mov edx, dword [ebp - 0x24]
mov dword [edx], ecx
lea eax, [ebp - 1]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0x5c]
movzx edx, word [ecx]
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
imul edx, ecx
mov word [ebp - 0x34], dx
lea edx, [ebp - 0x58]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x24]
mov edx, dword [eax]
and edx, dword [ecx]
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x140], 0x1e74
mov ax, word [ebp - 0xc]
mov word [0x407024], ax
movsx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x7c]
movsx eax, byte [edx]
sub ecx, eax
movsx edx, byte [ebp - 5]
mov eax, dword [ebp - 0xb4]
movsx eax, byte [eax]
add edx, eax
cmp ecx, edx
jne 0x402db3
movzx ecx, byte [ebp - 3]
push ecx
mov edx, dword [ebp - 0x98]
push edx
call fcn.00401ee0
add esp, 8
jmp 0x402eaa
mov eax, dword [ebp - 0x40]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xc0]
movzx eax, byte [edx]
sub ecx, eax
mov edx, dword [ebp - 0x80]
movzx eax, byte [edx]
movzx edx, byte [ebp - 1]
sub eax, edx
cmp ecx, eax
jg 0x402eaa
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x4c]
or ecx, dword [eax]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x9c]
mov al, byte [edx]
mov byte [ebp - 0x18c], al
cmp byte [ebp - 0x18c], 0xbd
je 0x402e0c
cmp byte [ebp - 0x18c], 0xd5
je 0x402e96
jmp 0x402eaa
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0xc4]
mov eax, dword [edx]
mov dword [ebp - 0x190], eax
cmp dword [ebp - 0x190], 0x5961
je 0x402e3a
cmp dword [ebp - 0x190], 0x6c17
je 0x402e80
jmp 0x402e94
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ecx]
xor eax, dword [edx]
mov dword [ebp - 0x94], eax
mov ecx, dword [0x407020]
movsx edx, word [ecx]
movsx ecx, word [ebp - 0x1c]
sar edx, cl
mov word [ebp - 0x30], dx
lea eax, [ebp - 0x1c8]
push eax
push 0x89
push 0x79
mov ecx, dword [ebp - 0x1c8]
push ecx
call dword [sym.imp.GDI32.dll_SetBitmapDimensionEx]
mov dword [ebp - 0x1ec], eax
jmp 0x402e94
movsx edx, byte [ebp - 6]
mov eax, dword [ebp - 0x7c]
movsx ecx, byte [eax]
shl edx, cl
mov ecx, dword [ebp - 0xb4]
mov byte [ecx], dl
jmp 0x402eaa
mov edx, dword [ebp - 0x88]
mov eax, dword [edx]
and eax, dword [ebp - 0xd8]
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x80]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 3]
add edx, eax
mov ecx, dword [ebp - 0xc0]
mov byte [ecx], dl
mov edx, dword [ebp - 0x5c]
movzx eax, word [edx]
movzx ecx, word [0x407024]
add eax, ecx
mov word [ebp - 0x28], ax
movsx edx, word [ebp - 0x1c]
movsx eax, word [ebp - 0x30]
sub edx, eax
mov ecx, dword [0x407020]
mov word [ecx], dx
mov edx, dword [ebp - 0x9c]
movzx eax, byte [edx]
movzx ecx, byte [str._aK_e]
add eax, ecx
mov byte [ebp - 1], al
mov edx, dword [ebp - 0x38]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x5c]
movzx edx, word [ecx]
sub eax, edx
mov word [ebp - 0xc], ax
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x78]
and ecx, dword [eax]
mov edx, dword [ebp - 0x24]
mov dword [edx], ecx
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x90]
add ecx, dword [eax]
mov edx, dword [ebp - 0xd0]
mov dword [edx], ecx
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov edx, dword [ebp - 0xbc]
sub edx, dword [0x407004]
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x13c]
add eax, 0x51
mov dword [ebp - 0x13c], eax
movzx ecx, word [ebp - 0xc]
movzx edx, word [ebp - 0x2c]
xor ecx, edx
mov eax, dword [ebp - 0x38]
mov word [eax], cx
mov ecx, dword [ebp - 0xc0]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x9c]
movzx ecx, byte [eax]
shl edx, cl
mov ecx, dword [ebp - 0x40]
mov byte [ecx], dl
mov edx, dword [ebp - 0x64]
mov eax, dword [edx]
or eax, dword [ebp - 0x58]
mov dword [0x407004], eax
mov edx, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
sar edx, cl
mov dword [ebp - 0x4c], edx
movsx eax, byte [ebp - 7]
mov ecx, dword [ebp - 0xb4]
movsx edx, byte [ecx]
and eax, edx
mov byte [ebp - 6], al
movsx eax, word [ebp - 0x68]
movsx ecx, word [ebp - 0x1c]
sub eax, ecx
mov word [ebp - 0x30], ax
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd8]
add eax, dword [edx]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x13c], 0x1d82
jb 0x402eaa
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xb0]
movzx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0x20], dx
mov edx, dword [ebp - 0x80]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 3]
add eax, ecx
mov byte [ebp - 2], al
mov edx, dword [ebp - 0x6c]
mov eax, dword [0x407004]
sub eax, dword [edx]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
add edx, dword [ebp - 0xcc]
mov dword [ebp - 0xbc], edx
mov eax, dword [0x407020]
movsx ecx, word [eax]
movsx edx, word [0x407008]
and ecx, edx
mov eax, dword [0x407020]
mov word [eax], cx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
add edx, dword [ebp - 0xd4]
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x5c]
movzx eax, word [edx]
xor ecx, eax
mov word [ebp - 0x20], cx
movzx edx, byte [ebp - 3]
movzx ecx, byte [ebp - 0x39]
shl edx, cl
mov byte [ebp - 1], dl
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x90]
shr edx, cl
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
or ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x18]
add eax, dword [ecx]
mov dword [ebp - 0xbc], eax
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xa0]
and eax, dword [edx]
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xb8]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xb0]
movzx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0xc], dx
mov edx, dword [ebp - 0x40]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xc0]
movzx edx, byte [ecx]
add eax, edx
mov byte [str._aK_e], al
mov eax, dword [ebp - 0xb4]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 5]
add ecx, edx
mov byte [ebp - 6], cl
movsx eax, word [ebp - 0x68]
movsx ecx, word [ebp - 0x30]
sub eax, ecx
mov word [ebp - 0x44], ax
mov edx, dword [ebp - 0x64]
mov eax, dword [edx]
sub eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xc4]
add eax, dword [ecx]
mov edx, dword [ebp - 0x88]
mov dword [edx], eax
mov eax, dword [ebp - 0x9c]
movzx ecx, byte [eax]
movzx edx, byte [str._aK_e]
sub ecx, edx
mov byte [ebp - 2], cl
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x20]
and ecx, edx
mov eax, dword [ebp - 0x5c]
mov word [eax], cx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x54]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x94]
sar edx, cl
mov dword [ebp - 0xd4], edx
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xd4]
shl edx, cl
mov dword [0x407004], edx
mov eax, dword [ebp - 0xcc]
or eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
movzx edx, word [ebp - 0x34]
mov eax, dword [ebp - 0x5c]
movzx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0x28], dx
movzx edx, byte [ebp - 0x39]
movzx eax, byte [ebp - 3]
add edx, eax
mov byte [ebp - 4], dl
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xd0]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x54]
add edx, dword [ecx]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x58]
sub eax, dword [edx]
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0x140]
add ecx, 0x8a
mov dword [ebp - 0x140], ecx
mov edx, dword [ebp - 0x58]
sub edx, dword [0x407004]
mov eax, dword [ebp - 0x10]
mov dword [eax], edx
movsx ecx, word [ebp - 0x1c]
mov edx, dword [0x407020]
movsx eax, word [edx]
sub ecx, eax
mov word [0x407008], cx
mov ecx, dword [ebp - 0x7c]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0xb4]
movsx ecx, byte [eax]
sub edx, ecx
mov eax, dword [ebp - 0x7c]
mov byte [eax], dl
mov ecx, dword [ebp - 0xb8]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x28]
add edx, eax
mov word [ebp - 0x20], dx
mov ecx, dword [ebp - 0xc0]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x40]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 1], dl
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x50]
shr eax, cl
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0xac]
or edx, dword [ecx]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0xb8]
movzx edx, word [eax]
movzx ecx, word [0x40701c]
shl edx, cl
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0xc0]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x80]
movzx eax, byte [edx]
xor ecx, eax
mov edx, dword [ebp - 0x9c]
mov byte [edx], cl
mov eax, dword [ebp - 0xa0]
and eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x64]
mov dword [ecx], eax
mov edx, dword [0x407020]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x30]
sub eax, ecx
mov edx, dword [0x407020]
mov word [edx], ax
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x84]
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [edx]
and ecx, dword [eax]
mov dword [ebp - 0x70], ecx
cmp dword [ebp - 0x140], 0x4994
jbe 0x402fdc
mov edx, dword [ebp - 0x80]
movzx eax, byte [edx]
imul ecx, eax, 0x95
mov byte [ebp - 2], cl
lea edx, [ebp - 0x98]
mov dword [ebp - 0xec], edx
movzx eax, word [0x407024]
movzx ecx, word [ebp - 0x28]
add eax, ecx
mov edx, dword [ebp - 0xb0]
mov word [edx], ax
movzx eax, word [ebp - 0x20]
movzx ecx, word [ebp - 0xc]
sub eax, ecx
movzx edx, word [0x407024]
movzx ecx, word [ebp - 0x2c]
add edx, ecx
cmp eax, edx
jl 0x4033a3
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov edx, dword [edx]
mov ecx, dword [eax]
sar edx, cl
mov dword [ebp - 0xd4], edx
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0xb4]
movzx ecx, byte [eax]
push ecx
call fcn.00401e30
add esp, 0xc
mov edx, dword [ebp - 0x50]
or edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xc4]
mov dword [eax], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
push ecx
call fcn.00402010
add esp, 8
jmp 0x40340f
mov edx, dword [ebp - 0xb4]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x7c]
movsx edx, byte [ecx]
add eax, edx
movsx ecx, byte [ebp - 5]
movsx edx, byte [ebp - 7]
add ecx, edx
cmp eax, ecx
jne 0x40340f
lea eax, [ebp - 0x11]
mov dword [ebp - 0x114], eax
lea ecx, [ebp - 0x54]
mov dword [0x407028], ecx
movzx edx, word [0x40701c]
movzx eax, word [ebp - 0x20]
xor edx, eax
mov ecx, dword [ebp - 0x38]
mov word [ecx], dx
lea edx, [ebp - 1]
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0xcc]
shl eax, cl
mov ecx, dword [ebp - 0x6c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
and ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x90], ecx
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x64]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x40]
movzx eax, byte [edx]
add ecx, eax
mov edx, dword [ebp - 0xc8]
mov byte [edx], cl
mov eax, dword [ebp - 0x114]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 0x11]
sub ecx, edx
mov eax, dword [ebp - 0x7c]
movsx edx, byte [eax]
mov eax, dword [ebp - 0xb4]
movsx eax, byte [eax]
sub edx, eax
cmp ecx, edx
jle 0x4034ce
movzx ecx, word [ebp - 0x28]
mov edx, dword [ebp - 0x5c]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0xc], cx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x18]
add edx, dword [eax]
mov ecx, dword [0x407028]
mov dword [ecx], edx
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x24]
add eax, dword [ecx]
mov dword [ebp - 0x4c], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov ecx, dword [edx]
or ecx, dword [eax]
mov dword [ebp - 0x54], ecx
mov edx, dword [0x407028]
mov eax, dword [edx]
xor eax, dword [ebp - 0xbc]
mov dword [ebp - 0x118], eax
jmp 0x403544
mov ecx, dword [ebp - 0x98]
and ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xd8]
sub eax, dword [edx]
cmp ecx, eax
jae 0x403544
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x144], ecx
movzx edx, byte [ebp - 3]
mov eax, dword [ebp - 0x40]
movzx ecx, byte [eax]
sar edx, cl
mov byte [ebp - 1], dl
mov ecx, dword [0x407020]
mov dx, word [ecx]
mov word [ebp - 0xe0], dx
mov eax, dword [ebp - 0x7c]
movsx edx, byte [eax]
movsx ecx, byte [ebp - 0x11]
shl edx, cl
mov byte [ebp - 5], dl
movzx eax, word [ebp - 0x28]
movzx ecx, word [0x407024]
and eax, ecx
mov word [ebp - 0xc], ax
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x144]
sub eax, dword [edx]
mov dword [0x40700c], eax
mov ecx, dword [0x407020]
movsx edx, word [ecx]
mov dword [ebp - 0x1cc], edx
cmp dword [ebp - 0x1cc], 0x2e7
je 0x403561
jmp 0x4035b7
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x18]
mov dword [edx], ecx
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x2c]
sub ecx, edx
mov word [ebp - 0xc], cx
movzx eax, word [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
push edx
call fcn.00401fd0
add esp, 8
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 4]
add ecx, edx
mov byte [ebp - 1], cl
mov eax, dword [ebp - 0xa0]
sub eax, dword [ebp - 0x70]
mov dword [ebp - 0x118], eax
jmp 0x40361d
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x10c], ecx
mov edx, dword [0x407004]
and edx, dword [ebp - 0x58]
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp - 0xb8]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
sub eax, edx
mov word [ebp - 0xc], ax
movzx eax, byte [ebp - 3]
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
add eax, edx
mov byte [0x407003], al
mov eax, dword [ebp - 0x11c]
add eax, dword [ebp - 0x84]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
mov dword [ebp - 0xdc], edx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cdq
mov ecx, 0x3e41
idiv ecx
mov edx, dword [ebp - 0x64]
mov dword [edx], eax
lea eax, [ebp - 0xd4]
mov dword [ebp - 0xa8], eax
mov edx, dword [ebp - 0x90]
or edx, dword [0x40700c]
mov eax, dword [ebp - 0xec]
mov esi, dword [ebp - 0x144]
mov ecx, dword [eax]
shl esi, cl
cmp edx, esi
ja 0x4044de
movsx ecx, byte [ebp - 6]
movsx edx, byte [ebp - 0x11]
add ecx, edx
mov byte [ebp - 7], cl
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x10c], ecx
mov dx, word [ebp - 0x34]
mov word [0x40702c], dx
mov eax, dword [ebp - 0x114]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0xb4]
movsx eax, byte [edx]
sub ecx, eax
movsx edx, byte [ebp - 5]
movsx eax, byte [ebp - 0x11]
add edx, eax
cmp ecx, edx
jge 0x4036cd
movzx ecx, byte [str._aK_e]
movzx edx, byte [ebp - 2]
add ecx, edx
mov eax, dword [ebp - 0x40]
mov byte [eax], cl
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x78]
and edx, dword [ecx]
mov dword [ebp - 0xdc], edx
movzx eax, word [ebp - 0x34]
mov ecx, dword [ebp - 0x5c]
movzx edx, word [ecx]
add eax, edx
mov ecx, dword [ebp - 0xb0]
mov word [ecx], ax
mov edx, dword [ebp - 0x40]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 2]
shl eax, cl
mov ecx, dword [ebp - 0x40]
mov byte [ecx], al
mov edx, dword [ebp - 0x24]
mov eax, dword [0x407028]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov edx, dword [ebp - 0x10]
mov dword [edx], ecx
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [eax]
mov ecx, dword [ecx]
shr edx, cl
mov dword [ebp - 0x90], edx
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xa0]
or ecx, dword [eax]
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
sub eax, dword [ebp - 0x70]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0xc8]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0xc0]
movzx ecx, byte [eax]
and edx, ecx
mov byte [str._aK_e], dl
movzx edx, word [ebp - 0x34]
movzx eax, word [ebp - 0x28]
add edx, eax
mov word [ebp - 0x2c], dx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x54]
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xdc]
add ecx, dword [eax]
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x7c]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 7]
sub eax, ecx
mov byte [ebp - 0x11], al
mov edx, dword [0x407020]
movsx eax, word [edx]
movsx ecx, word [0x407008]
sub eax, ecx
mov word [ebp - 0xe0], ax
mov edx, dword [ebp - 0xd8]
sub edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0xc4]
mov dword [eax], edx
movzx ecx, word [ebp - 0xc]
mov edx, dword [ebp - 0xb8]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0x28], cx
movzx ecx, byte [ebp - 4]
movzx edx, byte [ebp - 3]
and ecx, edx
mov byte [ebp - 1], cl
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xdc]
shl edx, cl
mov eax, dword [0x407028]
mov dword [eax], edx
mov ecx, dword [ebp - 0x24]
mov edx, dword [0x407028]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x64]
mov eax, dword [ecx]
mov ecx, dword [edx]
sar eax, cl
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xa0]
xor edx, dword [ecx]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0xb8]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x38]
movzx eax, word [edx]
sub ecx, eax
mov word [ebp - 0x34], cx
mov ecx, dword [ebp - 0x9c]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x39]
sub edx, eax
mov ecx, dword [ebp - 0xc0]
mov byte [ecx], dl
mov edx, dword [ebp - 0x148]
add edx, 9
mov dword [ebp - 0x148], edx
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x50]
and ecx, dword [eax]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xdc]
sub eax, dword [edx]
mov ecx, dword [ebp - 0xa8]
mov dword [ecx], eax
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx]
add eax, dword [0x407004]
mov ecx, dword [ebp - 0x6c]
mov dword [ecx], eax
mov edx, dword [ebp - 0xac]
add edx, dword [ebp - 0x74]
mov dword [0x407004], edx
movzx eax, word [ebp - 0x2c]
movzx ecx, word [ebp - 0xc]
sub eax, ecx
mov edx, dword [ebp - 0xb8]
mov word [edx], ax
mov eax, dword [ebp - 0x80]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x9c]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 3], cl
movsx ecx, word [ebp - 0x68]
mov edx, dword [0x407020]
movsx eax, word [edx]
add ecx, eax
mov word [ebp - 0xe0], cx
movsx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0xb4]
movsx eax, byte [edx]
add ecx, eax
mov edx, dword [ebp - 0x7c]
mov byte [edx], cl
mov eax, dword [ebp - 0x58]
add eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
cmp dword [ebp - 0x148], 0x6f10
jbe 0x4036cd
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xec]
mov edx, dword [eax]
mov ecx, dword [ecx]
shr edx, cl
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xf4]
mov ecx, dword [eax]
shl esi, cl
cmp edx, esi
ja 0x40398f
movzx ecx, word [ebp - 0x20]
movzx edx, word [ebp - 0x34]
and ecx, edx
mov word [ebp - 0x2c], cx
mov eax, dword [ebp - 0xc8]
mov cl, byte [eax]
mov byte [ebp - 0x45], cl
lea edx, [ebp - 0x70]
mov dword [0x407030], edx
mov eax, dword [ebp - 0x74]
imul eax, dword [ebp - 0xd4]
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0xf8], ecx
mov edx, dword [0x407028]
mov eax, dword [edx]
add eax, dword [ebp - 0xbc]
mov dword [ebp - 0x58], eax
jmp 0x40399f
mov ecx, dword [ebp - 0x5c]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x28]
sub edx, eax
mov word [ebp - 0x34], dx
mov dword [ebp - 0x14c], 0x24979bb9
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
and edx, ecx
mov eax, dword [ebp - 0x80]
mov byte [eax], dl
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx]
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0xa8]
imul ecx, dword [eax], 0x7daf
mov dword [ebp - 0xdc], ecx
mov edx, dword [0x407028]
mov eax, dword [edx]
mov dword [ebp - 0x110], eax
mov ecx, dword [ebp - 0x14c]
sub ecx, 0x24939bb9
mov dword [ebp - 0x14c], ecx
movzx edx, word [ebp - 0x34]
mov dword [ebp - 0x194], edx
cmp dword [ebp - 0x194], 0x4d7
je 0x403a23
cmp dword [ebp - 0x194], 0xbd7
je 0x403a59
jmp 0x403a6b
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xa8]
add ecx, dword [edx]
mov dword [0x407004], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x6c]
add ecx, dword [edx]
mov dword [ebp - 0x78], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x64]
mov eax, dword [edx]
push eax
call fcn.00402010
add esp, 8
jmp 0x403a6b
movsx ecx, byte [ebp - 6]
mov edx, dword [ebp - 0x114]
movsx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 7], cl
mov dword [ebp - 0x120], 0x1b30d274
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x1b4], ecx
mov edx, dword [ebp - 0xc8]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x80]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0x39], al
mov eax, dword [ebp - 0x5c]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x34]
sub ecx, edx
mov word [ebp - 0xc], cx
mov dword [ebp - 0x128], 0x40700c
mov eax, dword [ebp - 0x120]
sub eax, 0x1b2d742a
mov dword [ebp - 0x120], eax
mov ecx, dword [ebp - 0x7c]
mov dl, byte [ecx]
mov byte [ebp - 0x198], dl
cmp byte [ebp - 0x198], 0x45
je 0x403adf
cmp byte [ebp - 0x198], 0x4d
je 0x403b30
jmp 0x403b42
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [eax]
shl edx, cl
mov dword [ebp - 0x54], edx
movzx eax, byte [str._aK_e]
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
xor eax, edx
mov byte [ebp - 2], al
movzx eax, word [ebp - 0xc]
mov ecx, dword [ebp - 0xb8]
movzx edx, word [ecx]
or eax, edx
mov word [0x407024], ax
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
push ecx
mov edx, dword [ebp - 0x128]
mov eax, dword [edx]
push eax
call fcn.00401ee0
add esp, 8
jmp 0x403b42
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ecx]
sar edx, cl
mov eax, dword [ebp - 0x6c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x1d0], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x64]
mov ecx, dword [edx]
and ecx, dword [eax]
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx]
mov dword [ebp - 0x218], eax
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0x11c]
imul edx, dword [ecx]
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 2]
sub ecx, edx
mov byte [ebp - 0x39], cl
mov eax, dword [ebp - 0x16c]
mov ecx, dword [eax + 0x5058]
mov dword [ebp - 0x1d4], ecx
lea edx, [ebp - 0x50]
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x1b4]
movsx ecx, word [eax]
mov dword [ebp - 0x19c], ecx
cmp dword [ebp - 0x19c], 0xfffffbb7
je 0x403bd8
cmp dword [ebp - 0x19c], 0x553
je 0x4044ae
jmp 0x4044bf
mov edx, dword [ebp - 0x7c]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0xb4]
movsx edx, byte [ecx]
sub eax, edx
mov byte [0x40700a], al
movsx eax, word [ebp - 0x1c]
movsx ecx, word [ebp - 0x30]
and eax, ecx
mov word [ebp - 0x44], ax
mov edx, dword [ebp - 0x1d0]
push edx
mov eax, dword [ebp - 0x120]
push eax
mov ecx, dword [ebp - 0x14c]
push ecx
call dword [ebp - 0x1d4]
mov dword [ebp - 0x12c], eax
lea edx, [ebp - 0x2c]
mov dword [ebp - 0xf0], edx
movzx eax, byte [ebp - 2]
movzx ecx, byte [ebp - 0x45]
sub eax, ecx
mov byte [ebp - 1], al
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x24]
add eax, dword [ecx]
mov dword [ebp - 0x70], eax
lea edx, [ebp - 0x84]
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x10c]
add ecx, dword [eax]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov dword [ebp - 0x108], ecx
mov edx, dword [0x407030]
mov eax, dword [ebp - 0xe8]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x18]
mov dword [edx], ecx
mov eax, dword [ebp - 0xc0]
mov cl, byte [eax]
mov byte [ebp - 0xa1], cl
movzx edx, word [ebp - 0x34]
movzx eax, word [0x407024]
or edx, eax
mov word [0x407010], dx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xe8]
mov eax, dword [ecx]
xor eax, dword [edx]
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x74]
sar edx, cl
mov eax, dword [ebp - 0xa8]
mov dword [eax], edx
mov dword [ebp - 0xfc], 0xca768aa1
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x1ac], ecx
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x110]
shl edx, cl
mov eax, dword [ebp - 0xe8]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1a0]
mov edx, dword [ecx]
mov dword [ebp - 0x160], edx
mov dword [ebp - 0x15c], 0xf3
movzx eax, byte [ebp - 0x45]
cdq
mov ecx, 0xc9
idiv ecx
mov byte [ebp - 3], al
movsx edx, byte [ebp - 5]
mov eax, dword [ebp - 0x7c]
movsx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 6], dl
lea edx, [ebp - 0x68]
mov dword [ebp - 0x130], edx
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x28]
add ecx, edx
mov word [0x407010], cx
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x164], eax
movzx ecx, byte [ebp - 0x45]
movzx edx, byte [ebp - 3]
sub ecx, edx
mov byte [ebp - 0x39], cl
mov eax, dword [ebp - 0x16c]
add eax, 0x19f40
mov dword [ebp - 0x1b0], eax
mov cx, word [ebp - 0x2c]
mov word [ebp - 0x104], cx
mov edx, dword [ebp - 0x70]
sub edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1b0]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0xd8]
sub edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x128]
mov dword [eax], edx
mov ecx, dword [0x407030]
mov edx, dword [ecx]
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x164], eax
mov cx, word [ebp - 0x28]
mov word [ebp - 0x100], cx
lea edx, [ebp - 4]
mov dword [0x407034], edx
mov dword [ebp - 0x150], 0x8e3b5f06
movsx eax, word [ebp - 0x68]
mov dword [ebp - 0x1d8], eax
cmp dword [ebp - 0x1d8], 0xfffffbb7
je 0x403e0b
jmp 0x40447a
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xa0]
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ecx]
add edx, dword [0x407004]
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x6c]
add ecx, dword [edx]
mov dword [ebp - 0x124], ecx
lea eax, [ebp - 7]
mov dword [ebp - 0x174], eax
movsx ecx, word [0x407008]
mov edx, dword [ebp - 0x130]
movsx eax, word [edx]
xor ecx, eax
mov word [ebp - 0x30], cx
mov ecx, dword [ebp - 0x150]
add ecx, 0x71d73b35
mov dword [ebp - 0x150], ecx
lea edx, [ebp - 0x168]
mov dword [ebp - 0x1dc], edx
movzx eax, word [ebp - 0xc]
movzx ecx, word [ebp - 0x104]
cdq
idiv ecx
mov word [0x407024], ax
mov edx, dword [ebp - 0x15c]
cmp edx, dword [ebp - 0x150]
jge 0x40423c
mov eax, dword [0x407034]
movzx edx, byte [eax]
mov eax, dword [ebp - 0xc0]
movzx ecx, byte [eax]
sar edx, cl
mov byte [ebp - 4], dl
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x124]
or edx, dword [ecx]
mov eax, dword [ebp - 0x6c]
mov dword [eax], edx
mov ecx, dword [ebp - 0xb8]
movzx edx, word [ecx]
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
shl edx, cl
mov word [ebp - 0x34], dx
mov ecx, dword [ebp - 0xc0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x45]
and edx, eax
mov byte [ebp - 0xa1], dl
mov ecx, dword [ebp - 0x154]
mov dl, byte [ecx]
mov byte [ebp - 0x5d], dl
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0xe8]
mov dword [edx], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x50]
mov dword [ebp - 0x160], ecx
mov edx, dword [ebp - 0x108]
sub edx, dword [ebp - 0xf8]
mov dword [ebp - 0x124], edx
movzx eax, byte [ebp - 0x5d]
xor eax, dword [ebp - 0xfc]
mov byte [ebp - 0x5d], al
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
add edx, dword [ebp - 0xbc]
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0xf0]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x2c]
sub ecx, edx
mov word [0x40702c], cx
movzx eax, byte [ebp - 3]
mov ecx, dword [0x407034]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0xf8]
and ecx, dword [eax]
mov edx, dword [ebp - 0x10]
mov dword [edx], ecx
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x18]
mov dword [edx], ecx
mov al, byte [ebp - 0x5d]
mov cl, byte [ebp - 0xfc]
ror al, cl
mov byte [ebp - 0x5d], al
movsx edx, word [0x407008]
movsx ecx, word [ebp - 0x44]
sar edx, cl
mov word [ebp - 0x68], dx
movsx eax, byte [ebp - 0x11]
mov ecx, dword [ebp - 0x7c]
movsx edx, byte [ecx]
or eax, edx
mov byte [ebp - 7], al
mov eax, dword [ebp - 0x160]
xor eax, dword [0x40700c]
mov dword [ebp - 0xd8], eax
movzx edx, word [ebp - 0x20]
mov eax, dword [ebp - 0xf0]
movzx ecx, word [eax]
shl edx, cl
mov ecx, dword [ebp - 0x38]
mov word [ecx], dx
mov edx, dword [ebp - 0x158]
mov al, byte [ebp - 0x5d]
mov byte [edx], al
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0xa1]
sub edx, eax
mov byte [ebp - 0x45], dl
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0xa8]
mov eax, dword [ecx]
and eax, dword [edx]
mov ecx, dword [0x407030]
mov dword [ecx], eax
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x4c]
add eax, dword [edx]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x170]
sub edx, dword [ecx]
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x108], ecx
mov edx, dword [ebp - 0x9c]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 2], al
mov eax, dword [ebp - 0x154]
add eax, 1
mov dword [ebp - 0x154], eax
movzx ecx, word [ebp - 0x2c]
mov edx, dword [ebp - 0x38]
movzx eax, word [edx]
sub ecx, eax
mov edx, dword [ebp - 0xf0]
mov word [edx], cx
mov eax, dword [ebp - 0xd8]
sub eax, dword [ebp - 0x168]
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0x4c]
add ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp - 0x158]
add edx, 1
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x1ac]
and eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0xbc]
or eax, dword [edx]
mov dword [0x407004], eax
mov ecx, dword [ebp - 0xc8]
movzx edx, byte [ecx]
movzx ecx, byte [ebp - 2]
sar edx, cl
mov eax, dword [ebp - 0x9c]
mov byte [eax], dl
mov ecx, dword [ebp - 0xfc]
sub ecx, 0x2873
mov dword [ebp - 0xfc], ecx
mov edx, dword [ebp - 0x5c]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xf0]
movzx ecx, word [ecx]
shl eax, cl
mov word [ebp - 0x2c], ax
mov edx, dword [ebp - 0x130]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x44]
xor eax, ecx
mov word [ebp - 0xe0], ax
mov edx, dword [ebp - 0x174]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0xb4]
movsx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 6], al
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x74]
add ecx, dword [eax]
mov edx, dword [ebp - 0x64]
mov dword [edx], ecx
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax]
and ecx, dword [ebp - 0xf4]
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0xfc]
rol edx, 0x11
mov dword [ebp - 0xfc], edx
movzx eax, word [ebp - 0x2c]
movzx ecx, word [ebp - 0x28]
add eax, ecx
mov word [ebp - 0x34], ax
movzx edx, byte [ebp - 4]
movzx eax, byte [ebp - 0xa1]
add edx, eax
mov byte [ebp - 2], dl
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xe8]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [0x407004], eax
mov ecx, dword [0x407030]
mov edx, dword [ecx]
add edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x64]
mov dword [eax], edx
mov ecx, dword [ebp - 0x70]
sub ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0xa8]
mov dword [edx], ecx
mov eax, dword [ebp - 0x10]
mov ecx, dword [0x407004]
sub ecx, dword [eax]
mov dword [ebp - 0xf8], ecx
mov edx, dword [ebp - 0x15c]
add edx, 0x180c
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0xc0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 1]
add ecx, edx
mov byte [ebp - 4], cl
movzx eax, word [ebp - 0x2c]
movzx ecx, word [ebp - 0x100]
add eax, ecx
mov word [ebp - 0x20], ax
mov edx, dword [ebp - 0x10c]
or edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x128]
mov dword [eax], edx
mov edx, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xf8]
sar edx, cl
mov dword [ebp - 0x1a4], edx
jmp 0x403e97
movsx eax, word [0x407008]
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1a8], 0x247
je 0x404263
cmp dword [ebp - 0x1a8], 0x73d
je 0x404278
jmp 0x404290
mov edx, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x164]
shl edx, cl
mov eax, dword [ebp - 0x64]
mov dword [eax], edx
jmp 0x404290
mov ecx, dword [ebp - 0x80]
movzx edx, byte [ecx]
push edx
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax]
push ecx
call fcn.00401ee0
add esp, 8
mov edx, dword [0x407028]
mov eax, dword [edx]
mov dword [0x407038], eax
mov ecx, dword [ebp - 0x12c]
add ecx, 0xc6
mov dword [ebp - 0x1f8], ecx
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx]
xor eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x164], eax
movsx ecx, byte [ebp - 0x11]
movsx edx, byte [ebp - 7]
and ecx, edx
mov byte [ebp - 5], cl
mov eax, dword [ebp - 0x1b0]
add eax, 0xc6
mov dword [ebp - 0x1f4], eax
mov ecx, dword [ebp - 0x1b4]
mov dx, word [ecx]
mov word [ebp - 0x1b8], dx
movzx eax, word [ebp - 0x100]
mov ecx, dword [ebp - 0xf0]
movzx edx, word [ecx]
imul eax, edx
mov ecx, dword [ebp - 0xb0]
mov word [ecx], ax
mov edx, dword [ebp - 0x40]
mov al, byte [edx]
mov byte [ebp - 0xe1], al
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx]
add edx, dword [ebp - 0x50]
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x1f0], eax
movzx ecx, word [ebp - 0x34]
mov dword [ebp - 0x1e0], ecx
cmp dword [ebp - 0x1e0], 0xb1ba
je 0x404350
jmp 0x404432
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xdc]
sub eax, dword [edx]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x1fc], ecx
mov edx, dword [0x407004]
sub edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa8]
mov dword [eax], edx
mov ecx, dword [ebp - 0x5c]
mov dx, word [ecx]
mov word [ebp - 0x1bc], dx
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x10c], eax
lea ecx, [ebp - 0x1f8]
push ecx
call dword [ebp - 0x12c]
movzx edx, byte [0x407001]
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
or edx, ecx
mov eax, dword [ebp - 0x80]
mov byte [eax], dl
mov ecx, dword [ebp - 0x130]
movsx edx, word [ecx]
mov dword [ebp - 0x1e4], edx
cmp dword [ebp - 0x1e4], 0
je 0x4043d8
jmp 0x4043da
jmp 0x4043ed
movzx eax, word [ebp - 0x28]
movzx ecx, word [ebp - 0x2c]
add eax, ecx
mov edx, dword [ebp - 0xf0]
mov word [edx], ax
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x170]
sar eax, cl
mov ecx, dword [ebp - 0x6c]
mov dword [ecx], eax
movsx edx, word [ebp - 0x30]
movsx ecx, word [ebp - 0x68]
shl edx, cl
mov word [0x407008], dx
movsx eax, byte [ebp - 7]
mov ecx, dword [ebp - 0x174]
movsx edx, byte [ecx]
xor eax, edx
mov byte [ebp - 6], al
movzx eax, byte [ebp - 0x45]
movzx ecx, byte [ebp - 0xe1]
and eax, ecx
mov byte [ebp - 3], al
jmp 0x404440
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x4c]
add eax, dword [edx]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
sub edx, dword [ecx]
mov eax, dword [ebp - 0x64]
mov dword [eax], edx
mov ecx, dword [0x407034]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 4], dl
movzx edx, word [ebp - 0x104]
movzx eax, word [ebp - 0x34]
add edx, eax
mov word [0x407024], dx
jmp 0x40449c
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0xf4]
push eax
mov ecx, dword [ebp - 0x114]
movzx edx, byte [ecx]
push edx
call fcn.00401e30
add esp, 0xc
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0xf8]
and ecx, dword [eax]
mov edx, dword [ebp - 0x6c]
mov dword [edx], ecx
jmp 0x4044bf
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x110]
add ecx, dword [eax]
mov dword [ebp - 0xcc], ecx
movzx edx, word [ebp - 0x34]
mov eax, dword [ebp - 0xb0]
movzx ecx, word [eax]
add edx, ecx
mov eax, dword [ebp - 0xb8]
mov word [eax], dx
call fcn.00401f50
jmp 0x4044fd
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
push edx
mov eax, dword [ebp - 0xc0]
movzx ecx, byte [eax]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
push eax
call fcn.00401f20
add esp, 0xc
mov ecx, dword [ebp - 0x64]
mov edx, dword [ecx]
and edx, dword [ebp - 0x58]
mov dword [ebp - 0xdc], edx
push 0x8e
push 0xbe
push 0x18
push 0x69
push 0xea
push 0x79
push 0x83
push 0x56
mov eax, dword [ebp - 0x200]
push eax
call dword [sym.imp.GDI32.dll_Chord]
mov dword [ebp - 0x204], eax
mov ecx, dword [ebp - 0x7c]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0xb4]
movsx ecx, byte [eax]
sub edx, ecx
mov eax, dword [ebp - 0x114]
mov byte [eax], dl
mov ecx, dword [ebp - 0xb8]
movzx edx, word [ecx]
push edx
call fcn.00401e90
add esp, 4
jmp 0x4045d9
movzx eax, byte [ebp - 0x39]
mov ecx, dword [ebp - 0x40]
movzx ecx, byte [ecx]
shl eax, cl
mov edx, dword [ebp - 0x80]
mov byte [edx], al
mov eax, dword [ebp - 0xcc]
or eax, dword [ebp - 0x8c]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0x5c]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x2c]
and edx, eax
mov word [ebp - 0xc], dx
mov ecx, dword [0x407020]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x44]
add edx, eax
mov ecx, dword [0x407020]
mov word [ecx], dx
mov edx, dword [0x407020]
movzx eax, word [edx]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
push edx
call fcn.00401fd0
add esp, 8
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0xac]
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0x78]
push ecx
mov edx, dword [ebp - 0x74]
push edx
call fcn.00402010
add esp, 8
mov eax, dword [ebp - 0x5c]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x38]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0xc], cx
mov ecx, dword [0x407020]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x1c]
xor edx, eax
mov word [ebp - 0x68], dx
mov ecx, dword [ebp - 0x7c]
movsx edx, byte [ecx]
movsx ecx, byte [ebp - 5]
sar edx, cl
mov byte [ebp - 6], dl
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0xc4]
mov eax, dword [edx]
push eax
movzx ecx, byte [ebp - 6]
push ecx
call fcn.00401e30
add esp, 0xc
jmp 0x40464c
mov edx, dword [ebp - 0xbc]
sub edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
mov ecx, dword [ebp - 0xb8]
movzx edx, word [ecx]
push edx
call fcn.00401e90
add esp, 4
jmp 0x404681
movzx eax, word [ebp - 0x34]
push eax
call fcn.00401e90
add esp, 4
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x90]
sub edx, dword [ecx]
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x40]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 3]
sub ecx, edx
mov eax, dword [ebp - 0x80]
mov byte [eax], cl
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
add edx, dword [ebp - 0x54]
mov dword [0x407004], edx
mov eax, dword [ebp - 0x74]
and eax, dword [ebp - 0xbc]
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [0x407004]
mov ecx, dword [ecx]
shl edx, cl
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x4c]
xor ecx, dword [eax]
mov edx, dword [ebp - 0x24]
mov dword [edx], ecx
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x50]
or ecx, dword [eax]
mov dword [ebp - 0x98], ecx
mov edx, dword [ebp - 0xb0]
movzx eax, word [edx]
push eax
call fcn.00401e90
add esp, 4
jmp 0x404794
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x8c]
sub edx, dword [ecx]
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x78]
add ecx, dword [eax]
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
push edx
call fcn.00402010
add esp, 8
movzx eax, byte [ebp - 1]
mov ecx, dword [ebp - 0x9c]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 4], al
lea eax, [ebp - 0x1e8]
push eax
mov ecx, dword [ebp - 0x1e8]
push ecx
push 1
push 0x9d
push 0x8f
push 0xb1
mov edx, dword [ebp - 0x208]
push edx
call dword [sym.imp.USER32.dll_TrackPopupMenu]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0xb0]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x5c]
movzx eax, word [edx]
add ecx, eax
mov edx, dword [ebp - 0xb0]
mov word [edx], cx
mov eax, dword [ebp - 0x58]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x74], eax
movzx ecx, word [0x40701c]
push ecx
call fcn.00401e90
add esp, 4
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov ecx, dword [edx]
and ecx, dword [eax]
mov edx, dword [ebp - 0x18]
mov dword [edx], ecx
movsx eax, word [ebp - 0x44]
mov ecx, dword [0x407020]
movsx edx, word [ecx]
add eax, edx
mov word [ebp - 0x30], ax
mov eax, dword [ebp - 0x7c]
movsx edx, byte [eax]
movsx ecx, byte [ebp - 7]
sar edx, cl
mov byte [ebp - 5], dl
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x78]
push edx
call fcn.00402010
add esp, 8
mov eax, dword [ebp - 0x5c]
movzx ecx, word [eax]
movzx edx, word [ebp - 0xc]
xor ecx, edx
mov word [ebp - 0x20], cx
mov eax, dword [ebp - 0x80]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 0x80]
mov byte [eax], dl
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
or edx, dword [ebp - 0x8c]
mov dword [ebp - 0x78], edx
jmp 0x404882
mov eax, dword [0x407004]
sub eax, dword [ebp - 0x94]
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x58]
add edx, dword [ecx]
mov dword [ebp - 0x4c], edx
movzx eax, byte [ebp - 1]
mov ecx, dword [ebp - 0x80]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 4], al
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
mov dword [ebp - 0x210], eax
movsx ecx, word [ebp - 0x1c]
movsx edx, word [0x407008]
sub ecx, edx
mov eax, dword [0x407020]
mov word [eax], cx
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x50]
push eax
movzx ecx, byte [ebp - 0x11]
push ecx
call fcn.00401e30
add esp, 0xc
movzx edx, byte [ebp - 2]
mov eax, dword [ebp - 0x40]
movzx ecx, byte [eax]
and edx, ecx
mov byte [ebp - 1], dl
mov edx, dword [ebp - 0x8c]
sub edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x10]
mov dword [eax], edx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
add edx, dword [ebp - 0x94]
mov dword [ebp - 0xcc], edx
movzx eax, word [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0xa0]
push ecx
call fcn.00401fd0
add esp, 8
jmp 0x40490d
movzx edx, byte [str._aK_e]
movzx eax, byte [ebp - 1]
add edx, eax
movzx ecx, byte [ebp - 4]
movzx eax, byte [ebp - 2]
add ecx, eax
cmp edx, ecx
jg 0x40490d
movsx ecx, byte [ebp - 5]
mov edx, dword [ebp - 0x7c]
movsx eax, byte [edx]
or ecx, eax
mov byte [0x40701e], cl
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x50]
push eax
movzx ecx, byte [ebp - 6]
push ecx
call fcn.00401e30
add esp, 0xc
mov edx, dword [0x407020]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x44]
sub eax, ecx
mov word [ebp - 0x30], ax
mov edx, dword [ebp - 0x5c]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x38]
movzx ecx, word [ecx]
shl eax, cl
mov edx, dword [ebp - 0x5c]
mov word [edx], ax
movzx eax, byte [str._aK_e]
movzx ecx, byte [ebp - 1]
xor eax, ecx
mov byte [ebp - 2], al
mov edx, dword [ebp - 0x88]
mov eax, dword [edx]
and eax, dword [ebp - 0x50]
mov dword [ebp - 0x98], eax
movzx ecx, word [ebp - 0x20]
mov edx, dword [ebp - 0x38]
movzx eax, word [edx]
sub ecx, eax
mov word [0x40701c], cx
lea ecx, [ebp - 0xc]
push ecx
push 0x47
mov edx, dword [ebp - 0x214]
push edx
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov dword [ebp - 0x1ec], eax
movzx eax, byte [ebp - 4]
mov ecx, dword [ebp - 0x80]
movzx edx, byte [ecx]
add eax, edx
mov ecx, dword [ebp - 0x40]
mov byte [ecx], al
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
sub eax, dword [edx]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x8c]
pop esi
mov esp, ebp
pop ebp
ret