Function at 0x1068f525
Capabilities:
Accept command line arguments
Get file size
Log keystrokes via polling
Resolve function by parsing pe exports
Start service

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10070275
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c0
push ebx
push esi
push edi
mov dword [esp + 0x50], ecx
xor edi, edi
mov dword [esp + 0x18], 0x7e2799ac
inc edi
mov dword [esp + 0x1c], edi
mov esi, edx
xor ebx, ebx
mov dword [esp + 0x2c], 0x97312b94
mov dword [esp + 0x40], esi
mov dword [esp + 0x20], ebx
jmp 0x1068f585
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x188], 0xd9d76c13
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jl 0x1068f572
mov dword [esp + 0x18], 0xffffffee
cmp dword [esp + 0x18], 0x1b
jle 0x1068f7ed
or esi, 0xffffffff
mov dword [esp + 0xc], 0x55b7cefa
mov dword [esp + 0x30], 0xd1e1
mov dword [esp + 0xc], ebx
jmp 0x1068f5c8
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x74], 0xb72fd491
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1068f5b8
mov dword [esp + 0xc], ebx
jmp 0x1068f5e8
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x120], 0xffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x1068f5d5
mov dword [esp + 0xc], ebx
jmp 0x1068f6e5
mov dword [esp + 0x20], 0x14173bf3
mov dword [esp + 0x28], 0xfffffff8
mov dword [esp + 0x20], ebx
jmp 0x1068f6c3
push edi
lea ecx, [esp + 0x134]
call fcn.1000d911
mov dword [esp + 0x10], ebx
jmp 0x1068f63a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x130]
mov dword [eax + ecx*4], 0x89a69576
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1068f624
mov eax, dword [esp + 0x130]
mov dword [eax], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x2c], ebx
jl 0x1068f67f
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], ebx
jmp 0x1068f673
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0x74], ebx
jne 0x1068f679
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x1068f661
dec dword [esp + 0x2c]
jns 0x1068f657
mov eax, dword [esp + 0x130]
inc dword [eax]
cmp dword [eax], edi
jle 0x1068f649
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x74]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
cmp eax, edi
setg cl
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x130]
call fcn.1000e45c
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x1068f611
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x74]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jle 0x1068f5f8
mov ecx, dword [esp + 0x78]
xor edx, edx
mov eax, dword [esp + 0x1c]
cmp eax, ecx
setle dl
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x1c]
sub edx, dword [esp + 0x18]
mov eax, dword [esp + 0x128]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, dword [esp + 0x28]
cmp edx, eax
setg cl
cmp ecx, dword [esp + 0x18]
jge 0x1068f730
mov edx, edi
cmp dword [esp + 0x1c], ebx
jne 0x1068f732
mov edx, ebx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, eax
sete cl
xor edx, edx
mov dword [esp + 0x188], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x188]
mov eax, dword [esp + 0x124]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
setge dl
xor ecx, ecx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x124]
imul edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
cmp eax, edx
setle cl
cmp ecx, dword [esp + 0x18]
jle 0x1068f7cb
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x120]
mov dword [esp + 0xc], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x1b
jg 0x1068f5a2
mov esi, dword [esp + 0x40]
mov eax, dword [0x10684ef0]
test al, 1
jne 0x1068f891
or eax, edi
mov dword [0x10684ef0], eax
push ebx
mov dword [esp + 0x2d8], ebx
push ebx
mov dword [0x10684f00], ebx
mov dword [0x10684f04], ebx
call fcn.10011f5b
mov dword [0x10684f00], eax
mov dword [0x10684f08], ebx
mov dword [0x10684f10], ebx
mov byte [esp + 0x2d4], 2
mov ecx, 0x10684f08
mov dword [esp + 0x118], eax
lea eax, [esp + 0x118]
push eax
push 0x10
push ebx
lea eax, [esp + 0x234]
mov dword [0x10684f1c], 0x3f800000
push eax
mov dword [0x10684f0c], ebx
call fcn.10011d33
push 0x10691b98
mov dword [0x10684f14], 7
mov dword [0x10684f18], 8
call fcn.10052162
or eax, 0xffffffff
pop ecx
mov dword [esp + 0x2d4], eax
push edi
lea ecx, [esp + 0x14c]
call fcn.1000d911
or edx, 0xffffffff
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov dword [esp + 0x10], ebx
jmp 0x1068f8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x148]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1068f8c3
mov eax, dword [esp + 0x148]
mov dword [eax], 0xe
mov dword [esp + 0x2c], edx
mov dword [esp + 0x2c], 3
cmp dword [esp + 0x2c], ebx
jl 0x1068f934
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1068f915
push 0x704
push 0x21be
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1068f92b
push 0x221f
call dword [sym.imp.USER32.dll_MessageBeep]
dec dword [esp + 0x2c]
jns 0x1068f8fa
or edx, 0xffffffff
mov ecx, dword [esp + 0x148]
dec dword [ecx]
cmp dword [ecx], 8
jge 0x1068f8e8
xor eax, eax
cmp dword [ecx], eax
setl al
mov dword [ecx], eax
lea ecx, [esp + 0x148]
call fcn.1000e45c
imul eax, dword [esp + 0x50], 0x2710
lea ecx, [esp + 0xf0]
push 2
add eax, esi
mov dword [esp + 0x94], eax
or eax, 0xffffffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], 0xe6da5043
mov dword [esp + 0x30], 0x74bf90ed
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edi
call fcn.1000d911
mov dword [esp + 0x2d4], 3
mov dword [esp + 0x20], 0xfffffffa
mov dword [esp + 0x30], 0x9e22401d
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], 0x8f3b1ad3
mov dword [esp + 0xc], ebx
jmp 0x1068f9d8
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xf0]
mov dword [eax + ecx*4], 0x6f3f17e2
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1068f9c2
mov dword [esp + 0xc], ebx
jmp 0x1068f9f4
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x11c], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x1068f9e5
mov dword [esp + 0x1c], 0xffffffe8
jmp 0x1068faa7
mov dword [esp + 0x34], ebx
lea ecx, [esp + 0x190]
push 4
call fcn.1000d911
mov dword [esp + 0x10], ebx
jmp 0x1068fa35
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x190]
mov dword [eax + ecx*4], 5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1068fa1f
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xf0]
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
dec eax
neg eax
sbb eax, eax
neg eax
sub eax, ecx
je 0x1068fa68
mov ecx, edi
cmp dword [esp + 0x34], ebx
jne 0x1068fa6a
mov ecx, ebx
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
cmp eax, ecx
mov eax, dword [esp + 0x190]
lea ecx, [esp + 0x190]
setle dl
mov dword [eax + 0xc], edx
call fcn.1000e45c
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff2
jl 0x1068fa07
cmp dword [esp + 0x18], ebx
je 0x1068fac6
mov eax, dword [esp + 0xf0]
mov esi, edi
cmp dword [eax + 4], ebx
jne 0x1068fac8
mov esi, ebx
cmp dword [esp + 0x10], ebx
jne 0x1068fad2
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x30]
xor edx, edx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x2c]
push 0xc
add ecx, dword [eax + 4]
mov eax, dword [esp + 0x120]
cmp ecx, eax
pop eax
setl dl
mov dword [esp + 0x34], eax
neg edx
cmp esi, edx
jl 0x1068fb6e
mov dword [esp + 0x10], 0x54f8d36f
xor ecx, ecx
mov dword [esp + 0x2c], 0xf2ca
mov dword [esp + 0x20], 6
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
cmp eax, edi
setge cl
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov eax, dword [esp + 0x2c]
cmp eax, edi
mov eax, dword [esp + 0x28]
setle cl
xor edx, edx
cmp ecx, 0x3ebe
setl dl
imul eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, edx
setge cl
cmp ecx, dword [esp + 0x20]
je 0x1068fb66
mov eax, edi
cmp dword [esp + 0x30], ebx
jne 0x1068fb68
mov eax, ebx
mov dword [esp + 0x2c], eax
jmp 0x1068fb89
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], eax
jmp 0x1068fb82
cmp dword [esp + 0x24], ebx
jne 0x1068fb89
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x13
je 0x1068fb78
or eax, 0xffffffff
lea ecx, [esp + 0xf0]
mov dword [esp + 0x2d4], eax
call fcn.1000e45c
lea eax, [esp + 0x90]
push eax
call fcn.1000dd5f
mov esi, dword [eax]
mov dword [esp + 0x10], 0xb9f9b31
mov dword [esp + 0x24], 0x94fe5f36
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], 6
jmp 0x1068fc02
mov dword [esp + 0x24], 4
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1068fbfe
push 0x1aeb
push 0x1a4e
push ebx
push 0x14ac
push ebx
call dword [sym.imp.USER32.dll_GetMenuStringW]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe8
jl 0x1068fbcc
test esi, esi
je 0x10690107
mov dword [esp + 0x18], 0xde713a47
lea ecx, [esp + 0x7c]
mov dword [esp + 0x2c], 0xffff
push edi
call fcn.1000d911
mov dword [esp + 0x40], edi
or eax, 0xffffffff
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], ebx
jmp 0x1068fc4f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x7c]
mov dword [eax + ecx*4], 0xdade661f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1068fc3c
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x18], eax
je 0x1068fc6b
mov edx, edi
cmp dword [esp + 0x2c], ebx
jne 0x1068fc6d
mov edx, ebx
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp edx, eax
setne cl
or eax, 0xffffffff
mov edx, eax
sub edx, ecx
xor ecx, ecx
sub edx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp edx, eax
mov eax, dword [esp + 0x7c]
setl cl
mov dword [esp + 0x24], ecx
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x24]
setl cl
cmp ecx, dword [esp + 0x2c]
jl 0x1068fcdc
mov dword [esp + 0x18], ebx
jmp 0x1068fcd0
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1068fccc
push 0x166f
push 0x216a
call dword [sym.imp.USER32.dll_SetParent]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x2d
jle 0x1068fcb1
jmp 0x1068fe98
mov dword [esp + 0x1c], 0x34ac
mov dword [esp + 0xc], 0xedda
mov dword [esp + 0x20], 0xccc41425
mov dword [esp + 0x10], ebx
jmp 0x1068fd0d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x88], 0x7552f0c8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1068fcfa
cmp dword [esp + 0x18], 6
jne 0x1068fd41
cmp dword [esp + 0x1c], ebx
je 0x1068fd25
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov edx, ebx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x40], ebx
je 0x1068fd43
mov edx, edi
mov eax, dword [esp + 0x1c]
xor ecx, ecx
neg edx
cmp eax, edx
setne cl
mov dword [esp + 0x20], ecx
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], ebx
jl 0x1068fe98
mov dword [esp + 0x24], ebx
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1068fd78
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [esp + 0xc], ebx
jmp 0x1068fe80
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x40], 0x7e60
mov dword [esp + 0x28], 9
cmp dword [eax], ebx
je 0x1068fd9d
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x8c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x7c]
push 0
cmp dword [eax], ecx
setne dl
xor eax, eax
cmp edx, 0xb6ef
setg al
sub eax, 5
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + eax*4]
cmp eax, dword [ecx + edx*4]
mov edx, dword [esp + 0x28]
pop eax
setl al
xor ecx, ecx
neg edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
cmp edx, eax
mov eax, dword [esp + 0x34]
setge cl
xor edx, edx
cmp dword [esp + 0x28], ecx
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x7c]
setg cl
sub ecx, 0x446f9416
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax + edi*4], ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + ecx*4]
add eax, 3
jne 0x1068fe58
mov dword [esp + 0x8c], 0xd79
mov ecx, dword [esp + 0xc]
xor edi, edi
mov eax, dword [esp + 0x7c]
inc edi
mov dword [eax + ecx*4], edi
mov ecx, 0xb20f9593
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x28]
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [esp + 0x24], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x1068fd81
dec dword [esp + 0x20]
jns 0x1068fd62
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x7c]
call fcn.1000e45c
mov dword [esp + 0xc0], esi
or esi, 0xffffffff
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0xcd49598a
mov dword [esp + 0x20], esi
mov dword [esp + 0xc], 8
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], 0x1d08
cmp dword [esp + 0x24], 0xd92
jge 0x1068ff62
mov dword [esp + 0x1d4], 0xf
mov dword [esp + 0x1d0], ebx
mov byte [esp + 0x1c0], bl
push 3
mov dword [esp + 0x2d8], 4
mov edi, 0x1065d138
pop esi
lea edx, [esp + 0x1c0]
mov ecx, 0x1065d1f0
call fcn.10012e10
cmp dword [esp + 0x1d4], 0x10
lea eax, [esp + 0x1c0]
cmovae eax, dword [esp + 0x1c0]
movsx eax, byte [eax]
push eax
call fcn.10052471
pop ecx
mov dl, al
mov ecx, edi
call fcn.1001230a
dec esi
jne 0x1068ff09
push edi
call fcn.10012040
pop ecx
xor edi, edi
lea ecx, [esp + 0x1c0]
push ebx
inc edi
push edi
call fcn.1000e0eb
or esi, 0xffffffff
mov dword [esp + 0x10], ebx
jmp 0x1068ff7b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x298], 0xbebb6f2b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1068ff68
mov eax, dword [esp + 0x18]
xor ecx, ecx
add eax, 0xbd65
cmp eax, 0x6810
setge cl
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
sub eax, 0x9ee491ba
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
cmp eax, ecx
mov eax, dword [esp + 0x18]
setg dl
mov dword [esp + 0x24], edx
xor edx, edx
cmp dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
sete dl
xor ecx, ecx
cmp eax, edx
setg cl
cmp esi, ecx
sbb eax, eax
xor ecx, ecx
inc eax
imul eax, eax, 0x8da8
cmp eax, 0x51fa
setge cl
mov dword [esp + 0xc], ecx
cmp dword [esp + 0x1c], ebx
je 0x106900e8
push 3
mov dword [esp + 0x14], ebx
pop ecx
jmp 0x10690021
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xac], 0xd1d25bb0
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1069000e
mov dword [esp + 0x1c], ebx
jmp 0x1069003c
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xac], esi
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ecx
jl 0x1069002d
mov dword [esp + 0xc], ebx
jmp 0x106900d8
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0xac]
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xac], ecx
mov dword [esp + 0x20], 0xfffffffc
jmp 0x106900cd
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0xac]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0xac]
mov eax, dword [esp + 0x28]
neg eax
sbb eax, eax
imul edx, dword [esp + 0xb4], 9
neg eax
sub edx, eax
mov eax, dword [esp + 0xc]
neg edx
sbb edx, edx
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0xac]
inc edx
cmp edx, eax
mov eax, dword [esp + 0xc]
setle cl
xor edx, edx
cmp ecx, eax
setle dl
inc edx
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x18
jne 0x1069006b
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jle 0x1069004b
jmp 0x10691b6f
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10691b6f
push 0x449
call dword [sym.imp.USER32.dll_GetKeyState]
jmp 0x10691b6f
mov dword [esp + 0x2c], edi
or eax, 0xffffffff
mov dword [esp + 0x28], edi
push 3
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ebx
pop esi
jmp 0x1069012f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x5c], 0xd7839892
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1069011f
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10690148
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x64]
sub ecx, eax
cmp dword [esp + 0x64], ecx
jge 0x10690181
cmp dword [esp + 0x64], edi
jg 0x1069016a
mov edx, edi
cmp dword [esp + 0x64], ebx
jne 0x1069016c
mov edx, ebx
mov eax, dword [esp + 0x5c]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x2c]
setge cl
add eax, ecx
mov ecx, ebx
je 0x10690183
mov ecx, edi
mov eax, dword [esp + 0x64]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x64]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xcd546735
setge cl
cmp eax, ecx
mov eax, dword [esp + 0x64]
sbb ecx, ecx
inc ecx
add eax, ecx
je 0x106901af
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x64]
xor edx, edx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x64]
cmp ecx, eax
setne dl
xor eax, eax
cmp edx, 0xfffffff7
setle al
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [0x10684ef0]
test al, 2
jne 0x1069027f
or eax, 2
mov dword [0x10684ef0], eax
push ebx
mov dword [esp + 0x2d8], 5
push ebx
mov dword [0x10684f20], ebx
mov dword [0x10684f24], ebx
call fcn.10011f5b
mov dword [0x10684f20], eax
mov dword [0x10684f28], ebx
mov dword [0x10684f30], ebx
mov byte [esp + 0x2d4], 7
mov ecx, 0x10684f28
mov dword [esp + 0x12c], eax
lea eax, [esp + 0x12c]
push eax
push 0x10
push ebx
lea eax, [esp + 0xa4]
mov dword [0x10684f3c], 0x3f800000
push eax
mov dword [0x10684f2c], ebx
call fcn.10011d33
push 0x10691b93
mov dword [0x10684f34], 7
mov dword [0x10684f38], 8
call fcn.10052162
or eax, 0xffffffff
pop ecx
mov dword [esp + 0x2d4], eax
mov eax, 0x720e83c7
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x20], 0x9532bb11
mov dword [esp + 0x20], ebx
jmp 0x10690305
mov dword [esp + 0x10], ebx
jmp 0x106902c4
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x4c], 0xc23afc37
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x106902b4
mov dword [esp + 0x4c], esi
cmp dword [esp + 0x4c], ebx
jl 0x106902f0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + eax*4 + 0x178]
mov eax, dword [esp + 0x4c]
mov dword [esp + eax*4 + 0x178], ecx
dec dword [esp + 0x4c]
jns 0x106902d4
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10690301
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jle 0x106902ae
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1069031e
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
lea eax, [esp + 0x50]
xorps xmm0, xmm0
push eax
movdqu xmmword [esp + 0xe0], xmm0
call fcn.1000ddc1
push 4
lea ecx, [esp + 0x1dc]
mov esi, dword [eax]
mov dword [esp + 0x28], 0xfffb
mov dword [esp + 0x34], 0x3244d513
mov dword [esp + 0x30], esi
call fcn.1000d911
push 2
lea ecx, [esp + 0x140]
mov dword [esp + 0x2d8], 8
call fcn.1000d911
mov dword [esp + 0x28], 0xbc07c207
or eax, 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebx
jmp 0x1069039c
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1d8]
mov dword [eax + ecx*4], 0xc7dcd66a
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x10690386
mov dword [esp + 0xc], ebx
jmp 0x106903bf
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x13c]
mov dword [eax + ecx*4], 0x46a1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x106903a9
mov eax, dword [esp + 0x24]
dec dword [esp + 0x28]
jne 0x10690425
mov edx, dword [esp + 0x13c]
cmp dword [edx + 4], ebx
jne 0x10690412
mov eax, dword [esp + 0x30]
xor ecx, ecx
cmp dword [edx + 4], eax
setne cl
xor eax, eax
cmp ecx, 0x3e997306
setg al
xor ecx, ecx
cmp eax, 0x62a0
setle cl
sub ecx, 0xfff8
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0x9d73ae4c
mov ecx, ebx
jb 0x10690414
mov ecx, edi
mov eax, dword [esp + 0x1d8]
mov dword [eax + 0xc], ecx
mov eax, ebx
cmp ecx, dword [edx + 4]
jne 0x10690427
mov eax, edi
cmp eax, 0xd6446bd2
sbb eax, eax
inc eax
imul ecx, eax, 0x2f62d09e
mov eax, dword [esp + 0x13c]
mov eax, dword [eax]
sub eax, 0x1a83
imul eax, eax, 0xd09e
sub eax, ecx
lea ecx, [esp + 0x13c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
call fcn.1000e45c
or eax, 0xffffffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x2d4], eax
call fcn.1000e45c
mov al, byte [ebp + 0xc]
test al, al
jne 0x10690488
test esi, esi
jne 0x106917df
lea ecx, [esp + 0x2b8]
mov dl, al
push ecx
mov ecx, dword [esp + 0x54]
call section..wjcd_1
mov esi, eax
lea edi, [esp + 0xe0]
pop ecx
or eax, 0xffffffff
lea ecx, [esp + 0x16c]
push 4
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x14], 0xfffffffb
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0x52dd
call fcn.1000d911
xor esi, esi
mov dword [esp + 0x2d4], 9
inc esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], ebx
jmp 0x106904f6
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x54], 0x5540d7f8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x106904e6
push 3
mov dword [esp + 0x1c], ebx
pop edi
jmp 0x10690519
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xd0], 8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x10690506
mov dword [esp + 0x18], ebx
jmp 0x1069053b
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x16c]
mov dword [eax + ecx*4], 0x2e31b546
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x10690525
mov dword [esp + 0x54], ebx
jmp 0x106905ae
push dword [esp + 0x98]
movdqa xmm0, xmmword [0x10007e90]
lea eax, [esp + 0x260]
push eax
lea eax, [esp + 0x254]
mov dword [esp + 0x30], 5
push eax
push ebx
lea ecx, [esp + 0x164]
mov dword [esp + 0x164], ebx
movdqu xmmword [esp + 0x25c], xmm0
mov dword [esp + 0x168], ebx
mov dword [esp + 0x16c], ebx
call fcn.10012f92
inc dword [esp + 0xc]
lea ecx, [esp + 0x154]
call fcn.1000e45c
inc dword [esp + 0x54]
cmp dword [esp + 0x54], 0x18
jge 0x10690548
mov eax, dword [esp + 0x10]
mov ecx, 0xfffa
mov eax, dword [esp + 0x54]
cmp ecx, eax
sbb ecx, ecx
xor edx, edx
inc ecx
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setge dl
xor ecx, ecx
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, esi
setg al
add eax, 0xd58e
jne 0x106905f7
mov edx, ebx
cmp dword [esp + 0x1c], ebx
je 0x106905f9
mov edx, esi
mov eax, dword [esp + 0xd8]
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd4]
cmp ecx, eax
setle dl
cmp edx, 0x2b5
jg 0x1069062c
mov eax, dword [esp + 0xd0]
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0xc]
cmp eax, esi
setg cl
add ecx, dword [esp + 0xd0]
je 0x106906b8
cmp dword [esp + 0x54], ebx
je 0x106906b8
mov dword [esp + 0x24], 0xd70783db
lea ecx, [esp + 0x21c]
mov dword [esp + 0x24], esi
mov dword [esp + 0x24], 0x309061e9
mov dword [esp + 0x24], 0x20b395b9
mov dword [esp + 0x24], edi
push 2
call fcn.1000d911
mov dword [esp + 0x28], 0xb81002a9
mov dword [esp + 0x10], ebx
jmp 0x1069069c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x21c]
mov dword [eax + ecx*4], 0x732bc12a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10690686
inc dword [esp + 0x28]
lea ecx, [esp + 0x21c]
call fcn.1000e45c
jmp 0x10690827
or eax, 0xffffffff
xor ecx, ecx
mov dword [esp + 0x20], eax
mov edx, 0xffff
mov dword [esp + 0x18], ebx
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0xd0]
cmp eax, edx
mov eax, dword [esp + 0xd0]
setle cl
xor edx, edx
imul ecx, ecx, 0xba43
cmp eax, ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
setge dl
add ecx, edx
xor edx, edx
cmp ecx, eax
setg dl
sub edx, 0xd579
neg edx
sbb edx, edx
inc edx
imul eax, edx, 0xffff1976
xor edx, edx
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
cmp ecx, eax
mov eax, dword [esp + 0x16c]
setge dl
xor ecx, ecx
add edx, 5
mov dword [eax + 0xc], edx
neg edx
mov eax, dword [esp + 0x10]
cmp eax, edx
setne cl
cmp dword [esp + 0x20], ecx
jl 0x106907f8
mov dword [esp + 0x24], 0x17b57b06
mov dword [esp + 0x10], ebx
jmp 0x10690764
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x278], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10690755
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp ecx, eax
mov eax, dword [esp + 0x18]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
setne dl
xor eax, eax
cmp edx, esi
setl al
xor ecx, ecx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x27c]
sub edx, eax
mov eax, dword [esp + 0x18]
cmp edx, eax
mov eax, dword [esp + 0x1c]
setg cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0xc]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x18]
setne cl
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp dword [esp + 0x24], eax
setg cl
xor eax, eax
cmp ecx, 0x4e4cabbe
setl al
sub eax, 0x457c1e5a
mov dword [esp + 0x24], eax
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10690827
push 0x10a8
call dword [sym.imp.GDI32.dll_EndPage]
jmp 0x10690827
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x1c], ebx
jne 0x10690821
mov ecx, dword [esp + 0x24]
xor edx, edx
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov eax, dword [esp + 0x16c]
setl dl
mov dword [eax + 4], edx
mov eax, ebx
test edx, edx
je 0x10690823
mov eax, esi
mov dword [esp + 0x20], eax
or eax, 0xffffffff
lea ecx, [esp + 0x16c]
mov dword [esp + 0x2d4], eax
call fcn.1000e45c
cmp byte [ebp + 0xc], 0
push 0xfffffffffffffffc
pop edi
je 0x10690b93
cmp dword [esp + 0xe4], 0
je 0x10690b93
mov dword [esp + 0x10], 0xe19d
or eax, 0xffffffff
mov dword [esp + 0xc], 0x446df37d
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x10], eax
je 0x106908c7
mov dword [esp + 0x30], 0xf4c59cdc
mov dword [esp + 0x28], esi
cmp dword [esp + 0x30], ebx
je 0x1069089f
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
xor edx, edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setg dl
mov dword [esp + 0xc], edx
jmp 0x1069099f
mov dword [esp + 0x20], 0xfffffff8
mov dword [esp + 0x28], 5
mov dword [esp + 0xc], 0x13
jmp 0x10690994
mov dword [esp + 0x28], 0x5015
mov dword [esp + 0x10], ebx
jmp 0x10690905
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xb8], 4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x106908f2
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x24]
cmp ecx, eax
mov eax, dword [esp + 0x28]
setle dl
xor ecx, ecx
dec edx
cmp edx, eax
mov eax, dword [esp + 0xbc]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x20]
setge dl
imul eax, edx
cmp eax, 0xd7276cc7
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
neg ecx
cmp dword [esp + 0xbc], 0xfffffff7
sbb eax, eax
neg eax
cmp eax, ecx
je 0x10690966
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0xbc]
sub ecx, eax
mov eax, dword [esp + 0xc]
cmp ecx, eax
mov eax, dword [esp + 0xbc]
setne dl
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [esp + 0x28], ecx
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xb
jg 0x106908e4
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x106909b7
push ebx
push 0x2037
push ebx
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
mov eax, dword [esp + 0xe8]
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x30], 0xffff
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], 0x6b933888
mov dword [esp + 0xc], 0xfffffff9
mov dword [esp + 0x10], 0x77b6
mov dword [esp + 0x18], 0xa26c
mov dword [esp + 0x24], 0x21576660
push 2
mov dword [esp + 0xc8], eax
call fcn.1000d911
push 2
mov dword [esp + 0x10], ebx
pop edx
jmp 0x10690a23
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x244], edx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x10690a14
mov dword [esp + 0xc], ebx
jmp 0x10690a45
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1b4]
mov dword [eax + ecx*4], 7
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x10690a2f
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [esp + 0x1c]
cmp ecx, eax
setne dl
cmp edx, dword [esp + 0x1c]
jge 0x10690a68
cmp dword [esp + 0x1c], ebx
jne 0x10690a68
mov ecx, ebx
mov dword [esp + 0x30], esi
xor edx, edx
mov eax, dword [esp + 0x1c]
imul eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
setle dl
xor ecx, ecx
mov dword [esp + 0x248], edx
mov eax, dword [esp + 0x1c]
imul eax, edx
cmp ecx, eax
mov eax, dword [esp + 0x30]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, 0xa5b5
setge al
inc eax
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x24], eax
setge cl
imul eax, ecx, 0x6baf
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
jmp 0x10690b72
mov dword [esp + 0x1c], 0xffff
mov dword [esp + 0x24], 0xfefd6e51
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10690b27
push 0x159f
call dword [sym.imp.USER32.dll_SetCapture]
cmp dword [esp + 0x1c], ebx
jne 0x10690b46
mov eax, dword [esp + 0x1b4]
cmp dword [eax + 4], 0xffffffff
jne 0x10690b46
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], ebx
jmp 0x10690b61
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10690b5d
call dword [sym.imp.KERNEL32.dll_GetOEMCP]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x34
jl 0x10690b4c
cmp dword [esp + 0x1c], ebx
jne 0x10690b79
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 9
jne 0x10690b01
lea ecx, [esp + 0x1b4]
call fcn.1000e45c
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xc8], eax
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x106917dc
cmp dword [esp + 0xdc], esi
jle 0x106917dc
mov dword [esp + 0xc], 0x143e95aa
or eax, 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], 0xea388845
mov dword [esp + 0x18], 9
mov dword [esp + 0x28], 0x4a520274
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], 0xe01b17d7
mov dword [esp + 0x1c], 0x86e3e45b
mov dword [esp + 0x30], 0xfffffffe
mov dword [esp + 0x1f0], edi
mov dword [esp + 0x1f4], edi
mov dword [esp + 0x1f8], edi
mov dword [esp + 0x1fc], edi
mov dword [esp + 0x24], 0x15f5
cmp dword [esp + 0x24], 0x529
jge 0x10690ce9
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0xb4]
push eax
push 0x100078ec
call fcn.10051a9b
mov eax, dword [esp + 0x80]
add esp, 0x14
mov esi, dword [esp + 0x94]
dec eax
mov edi, dword [esp + 0xec]
dec esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x94], esi
cmp edi, 1
je 0x10690cd6
cdq
idiv edi
mov ecx, eax
mov dword [esp + 0x24], edx
mov eax, esi
cdq
idiv edi
cmp ecx, eax
je 0x10690cd6
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x10690ca3
lea eax, [edi - 1]
cmp edx, eax
je 0x10690cd6
mov eax, dword [esp + 0xa8]
dec eax
cmp esi, eax
je 0x10690cd6
test ecx, ecx
je 0x10690cd1
lea eax, [edi - 1]
cmp edx, eax
je 0x10690cd1
mov eax, dword [esp + 0xa8]
dec eax
cmp esi, eax
je 0x10690cd1
sub esi, dword [esp + 0x6c]
sub edi, ecx
lea eax, [edi + 1]
add eax, edx
inc esi
cmp eax, esi
je 0x10690cd1
lea eax, [edx + 1]
cmp ecx, eax
je 0x10690cd1
push 3
jmp 0x10690cd3
push 2
pop eax
jmp 0x10690cd9
xor eax, eax
inc eax
push eax
push 0x10007830
call fcn.1005218c
pop ecx
pop ecx
push 0xfffffffffffffffc
pop edi
mov eax, dword [esp + 0xc]
xor esi, esi
mov eax, dword [esp + 0x1c]
inc esi
imul eax, dword [esp + 0x28]
inc dword [esp + 0x1c]
cmp eax, 0x22a5bc4
mov eax, esi
jne 0x10690d08
mov eax, ebx
mov edx, dword [esp + 0xc]
xor ecx, ecx
imul edx, eax
mov eax, dword [esp + 0x30]
neg edx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0x63b0
setg al
cmp eax, dword [esp + 0x10]
jle 0x10690d35
mov eax, esi
cmp dword [esp + 0x18], ebx
jne 0x10690d37
mov eax, ebx
add eax, 2
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], ebx
je 0x10690dd1
mov dword [esp + 0x24], 0xcdee94cc
mov dword [esp + 0x1c], ebx
jmp 0x10690dc1
push esi
lea ecx, [esp + 0x214]
call fcn.1000d911
mov dword [esp + 0x24], 0x83e731e7
mov dword [esp + 0x10], ebx
jmp 0x10690d87
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x210]
mov dword [eax + ecx*4], 0x3cf68729
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10690d71
mov dword [esp + 0x20], ebx
jmp 0x10690dab
mov dword [esp + 0x28], 0x462a77b6
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], ebx
jle 0x10690d93
lea ecx, [esp + 0x210]
call fcn.1000e45c
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x17
jge 0x10690d56
mov dword [esp + 0x24], ebx
jmp 0x10690e53
mov dword [esp + 0x10], ebx
jmp 0x10690dea
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x288], 0x33bab721
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10690dd7
mov dword [esp + 0x18], ebx
jmp 0x10690e35
mov dword [esp + 0x10], ebx
jmp 0x10690e0c
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x238], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10690dfd
mov eax, dword [esp + 0x290]
mov dword [esp + 0x23c], eax
mov eax, dword [esp + 0x240]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x16
jne 0x10690df7
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10690e53
push ebx
push 0x18a3
call dword [sym.imp.GDI32.dll_CreateHatchBrush]
mov dword [esp + 0xc], ebx
jmp 0x10690e6c
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x1f0], 0xd1a0
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x10690e59
mov dword [esp + 0x20], 0xec93cc25
or eax, 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], 0xbb1e5de2
mov dword [esp + 0x10], 0x890ba5fc
mov dword [esp + 0x1c], 0xfffffffe
mov dword [esp + 0xc], ebx
jmp 0x10690eb0
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x44], 0x3df603fa
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10690ea0
mov dword [esp + 0xc], ebx
jmp 0x10690ed0
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x22c], 0xb26d5d64
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x10690ebd
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10690eec
push 0x1b
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [esp + 0x48]
xor ecx, ecx
mov eax, dword [esp + 0x48]
test eax, eax
setle cl
mov dword [esp + 0x22c], ecx
cmp ecx, dword [esp + 0x48]
jg 0x10690f0c
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
xor edx, edx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
cmp ecx, eax
mov eax, dword [esp + 0x44]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x48]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x20]
setge dl
xor ecx, ecx
cmp edx, eax
setle cl
imul ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x10690f80
mov edx, ebx
cmp dword [esp + 0x22c], ebx
je 0x10690f82
mov edx, esi
mov eax, dword [esp + 0x44]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setle cl
sub ecx, eax
mov dword [esp + 0x1c], ecx
xor ecx, ecx
mov edx, dword [esp + 0x1c]
imul edx, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
cmp eax, edx
setg cl
mov dword [esp + 0x44], ecx
mov dword [esp + 0xc], 7
mov dword [esp + 0x28], 5
mov dword [esp + 0xc], ebx
jmp 0x106911ca
push 4
lea ecx, [esp + 0x164]
call fcn.1000d911
push 2
lea ecx, [esp + 0x1e8]
mov dword [esp + 0x2d8], 0xa
call fcn.1000d911
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], ebx
jmp 0x10691005
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x38], esi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x10690ff9
mov dword [esp + 0x18], ebx
jmp 0x10691027
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x160]
mov dword [eax + ecx*4], 0x2b99
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x10691011
mov dword [esp + 0x18], ebx
jmp 0x1069104a
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1e4]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x10691034
mov dword [esp + 0x38], 0x10
jmp 0x10691199
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], 0x35dd7582
mov dword [esp + 0x24], 0x1cc0d681
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
neg eax
sbb eax, eax
xor edx, edx
inc eax
sub ecx, eax
mov eax, dword [esp + 0x38]
cmp eax, ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
setne dl
mov dword [esp + 0x24], edx
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0xc]
setg dl
sub edx, 9
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, dword [esp + 0x24]
cmp edx, eax
mov eax, dword [esp + 0x160]
setl cl
sub ecx, dword [eax]
je 0x106910f3
mov dword [esp + 0x28], 0x9956a218
inc dword [esp + 0x28]
jmp 0x10691195
mov dword [esp + 0x24], 0xfffffff8
xor edx, edx
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
cmp eax, ecx
mov eax, dword [esp + 0x1e4]
setge dl
mov dword [eax + 4], edx
test edx, edx
je 0x10691124
mov edx, esi
cmp dword [esp + 0xc], esi
jl 0x10691126
mov edx, ebx
mov eax, dword [esp + 0x160]
xor ecx, ecx
cmp dword [eax], edx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
setl cl
add edx, ecx
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
cmp ecx, eax
mov eax, dword [esp + 0xc]
setge dl
xor ecx, ecx
imul esi, edx, 0xbc92
cmp eax, 0xd522
setne cl
xor edx, edx
cmp ecx, esi
setle dl
xor eax, eax
test edx, edx
setg al
xor esi, esi
mov dword [esp + 0x24], eax
inc esi
inc dword [esp + 0x38]
cmp dword [esp + 0x38], 0x19
jge 0x1069105e
lea ecx, [esp + 0x1e4]
call fcn.1000e45c
or eax, 0xffffffff
lea ecx, [esp + 0x160]
mov dword [esp + 0x2d4], eax
call fcn.1000e45c
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffef
jne 0x10690fc8
xor edi, edi
inc edi
cmp dword [esp + 0xe0], 0
je 0x106917d6
mov dword [esp + 0x10], 0x2db58e46
mov dword [esp + 0x24], 0x57ad95e1
mov dword [esp + 0xc], 0xfffffffd
mov dword [esp + 0x1c], 0xa290be4
mov dword [esp + 0x24], 0x1220985a
mov dword [esp + 0x24], edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], 0xb0815898
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], ebx
jmp 0x1069123b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2a0], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10691228
inc dword [esp + 0x20]
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], 0x14
jle 0x106917b6
xor esi, esi
mov edi, 0x1065d1f0
inc esi
push dword [esp + 0x98]
movdqa xmm0, xmmword [0x10007eb0]
lea eax, [esp + 0x270]
push eax
lea eax, [esp + 0x264]
mov dword [esp + 0x20], esi
push eax
push ebx
lea ecx, [esp + 0x10c]
mov dword [esp + 0x10c], ebx
movdqu xmmword [esp + 0x26c], xmm0
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ebx
call fcn.10012f92
mov dword [esp + 0x2d4], 0xb
mov dword [esp + 0x10], ebx
jmp 0x106912cb
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2ac], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x106912bc
mov dword [esp + 0x24], 0x1f1b
cmp dword [esp + 0x24], 0xe4c
jge 0x10691693
mov ecx, dword [esp + 0xe0]
call fcn.1000d0f2
mov esi, eax
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x30], esi
call fcn.1000ddc1
mov dword [eax], esi
jmp 0x106917df
mov esi, dword [esp + 0x2c]
jmp 0x106917df
xor edi, edi
inc edi
lea ecx, [esp + 0xdc]
call fcn.100095f9
mov dword [esp + 0x1c], 7
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], 0x6b3e713e
mov dword [esp + 0x28], 8
mov dword [esp + 0x1c], 0xa
cmp dword [esp + 0x1c], 0xfffffffe
je 0x1069187d
or esi, 0xffffffff
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], 0xfffb
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
je 0x10691855
cmp dword [esp + 0x28], ebx
je 0x10691855
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], ebx
mov eax, edi
cmp dword [esp + 0x34], ebx
jne 0x10691857
mov eax, ebx
add eax, 0xdcee
mov dword [esp + 0x34], eax
mov eax, ebx
cmp dword [esp + 0x34], ebx
je 0x1069186a
mov eax, edi
mov dword [esp + 0x28], eax
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffffe
jne 0x1069181d
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x10691b6f
push edi
lea ecx, [esp + 0x110]
call fcn.1000d911
push 0xc
pop eax
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0xc], ebx
jmp 0x106918b9
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x19c], 0xe0a8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x106918a6
mov dword [esp + 0xc], ebx
jmp 0x106918dc
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10c]
mov dword [eax + ecx*4], 0xeca4f833
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x106918c6
mov ecx, dword [esp + 0x10c]
mov dword [ecx], ebx
mov eax, dword [ecx]
inc dword [ecx]
cmp dword [ecx], 3
mov dword [esp + eax*4 + 0x19c], 0xfffffffd
jl 0x106918eb
mov dword [esp + 0x20], 0xa
cmp dword [esp + 0x20], 0xffffffe9
jg 0x10691b36
push 4
lea ecx, [esp + 0x1ac]
call fcn.1000d911
mov byte [esp + 0x2d4], 0xd
mov dword [esp + 0x18], ebx
jmp 0x1069193e
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x3c], 0x42a1e948
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x1069192e
mov dword [esp + 0x18], ebx
jmp 0x10691960
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1a8]
mov dword [eax + ecx*4], 0x90d29729
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x1069194a
mov dword [esp + 0x18], ebx
jmp 0x10691980
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x26c], 0x3589fe57
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1069196d
mov dword [esp + 0x3c], ebx
cmp dword [esp + 0x3c], 0x1c
jg 0x10691b0d
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x24], eax
push 2
lea ecx, [esp + 0xa0]
call fcn.1000d911
mov dword [esp + 0x200], 0x8d51
mov dword [esp + 0x204], 0x8d51
mov dword [esp + 0x208], 0x8d51
mov dword [esp + 0x20c], 0x8d51
mov dword [esp + 0x10], ebx
jmp 0x106919f7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x9c]
mov dword [eax + ecx*4], 0x71dfd947
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x106919e1
mov edi, dword [esp + 0x270]
xor edx, edx
mov eax, dword [esp + 0x9c]
dec dword [eax]
mov eax, dword [esp + 0x10c]
mov dword [eax], edi
mov eax, dword [esp + 0x3c]
cmp eax, 0x1e28
mov eax, dword [esp + 0x1a0]
mov esi, dword [esp + 0x9c]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setl cl
xor edx, edx
imul ecx, dword [esi + 4]
cmp ecx, 0x415
setle dl
xor ecx, ecx
add eax, edx
cmp eax, dword [esi + 4]
mov eax, dword [esp + 0x19c]
setne cl
add eax, ecx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x208]
add ecx, eax
xor eax, eax
cmp edi, ecx
setge al
xor ecx, ecx
cmp eax, 0xb051
mov eax, dword [esp + 0x9c]
setg cl
xor edx, edx
cmp ecx, dword [eax]
mov eax, dword [esp + 0x20]
setg dl
imul eax, edx
cmp eax, 0x8842
je 0x10691ad6
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], ebx
jmp 0x10691ac6
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10691ac2
push 0x103f
push 0xf2f
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x1c
jle 0x10691aa7
mov eax, dword [esp + 0x9c]
jmp 0x10691ae1
mov eax, dword [esp + 0x10c]
cmp dword [eax], ebx
jne 0x10691afe
lea ecx, [esp + 0x9c]
call fcn.1000e45c
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], 0x1c
jle 0x106919a1
jmp 0x10691b0a
lea ecx, [esp + 0x9c]
call fcn.1000e45c
xor edi, edi
inc edi
push 0xc
pop eax
lea ecx, [esp + 0x1a8]
mov byte [esp + 0x2d4], al
call fcn.1000e45c
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xffffffe9
jle 0x10691912
mov esi, dword [esp + 0x2c]
or eax, 0xffffffff
lea ecx, [esp + 0x10c]
mov dword [esp + 0x2d4], eax
call fcn.1000e45c
mov edx, dword [esp + 0x40]
mov ecx, esi
call fcn.1000d11e
mov esi, eax
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0xc4], esi
call fcn.1000dd5f
mov dword [eax], esi
mov eax, dword [ebp + 8]
lea esi, [esp + 0xc0]
mov ecx, dword [esp + 0x2cc]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret