Function at 0x10015b49
Capabilities:
Check os version
Delete file
Extract resource via kernel32 functions
Get thread local storage value
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1006db78
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x278
mov eax, dword [0x10893780]
push ebx
push esi
push edi
xor edi, edi
mov dword [esp + 0x4c], ecx
mov esi, edx
inc edi
xor ebx, ebx
mov dword [esp + 0xbc], esi
test al, 1
jne 0x10015bae
or eax, edi
mov dword [0x10893780], eax
mov dword [esp + 0x28c], ebx
call fcn.10018828
push 0x1006eeb9
call fcn.1005514a
or dword [esp + 0x290], 0xffffffff
pop ecx
mov dword [esp + 0x18], 0xffffffff
lea ecx, [esp + 0xc0]
mov dword [esp + 0x10], 0x8461e707
push edi
call fcn.100183ab
mov dword [esp + 0x28c], edi
mov dword [esp + 0x1c], 0x3a34071e
mov dword [esp + 0x14], ebx
jmp 0x10015bf3
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x230], 0x55d58009
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10015be0
mov dword [esp + 0x14], ebx
jmp 0x10015c16
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc0]
mov dword [eax + ecx*4], 0xbdf78b15
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10015c00
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], 6
push 4
pop ecx
jle 0x10015e05
mov dword [esp + 0x20], 9
mov dword [esp + 0x24], 0x3c9e4a04
mov dword [esp + 0x2c], 0x1e28
cmp dword [esp + 0x2c], 0xfeb
jge 0x10015d15
lea eax, [esp + 0x64]
push eax
push 0x100077f4
call fcn.10054b0b
pop ecx
pop ecx
lea eax, [esp + 0x43]
mov byte [esp + 0x43], bl
push eax
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x244]
inc eax
push eax
call fcn.10018643
mov eax, dword [esp + 0x64]
mov edi, ebx
add eax, eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], ebx
test eax, eax
jle 0x10015cf6
lea eax, [esp + 0x1b8]
push eax
push 0x100077f4
call fcn.10054b0b
mov edx, dword [esp + 0x248]
xor eax, eax
inc eax
pop ecx
pop ecx
mov ecx, dword [esp + 0x1b8]
mov esi, ecx
shr esi, 5
and ecx, 0x1f
shl eax, cl
and eax, dword [edx + esi*4]
neg eax
sbb eax, eax
and eax, 0xfffffffe
inc eax
add ebx, eax
cmp edi, ebx
mov eax, ebx
cmovg eax, edi
mov edi, eax
xor eax, eax
inc eax
shl eax, cl
or dword [edx + esi*4], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x64]
inc ecx
add eax, eax
mov dword [esp + 0x24], ecx
cmp ecx, eax
jl 0x10015c94
xor ebx, ebx
push edi
push 0x10007808
call fcn.100552e3
pop ecx
pop ecx
lea ecx, [esp + 0x240]
call fcn.100186a4
xor edi, edi
push 4
inc edi
pop ecx
mov dword [esp + 0x28], ebx
jmp 0x10015d2e
mov eax, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x1dc], 0xfd06bde6
inc dword [esp + 0x28]
cmp dword [esp + 0x28], ecx
jl 0x10015d1b
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x20], ebx
jne 0x10015d42
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1e8], 0xffff
xor edx, edx
mov eax, dword [esp + 0x20]
cmp eax, edi
mov eax, dword [esp + 0x10]
setle dl
xor ecx, ecx
cmp edx, eax
push 4
setge cl
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov edx, dword [esp + 0x24]
add edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
cmp edx, eax
setne cl
mov dword [esp + 0x234], ecx
mov eax, dword [esp + 0x1c]
pop ecx
cmp ecx, eax
sbb eax, eax
inc eax
cmp eax, 0xfffffffe
je 0x10015d96
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x1e8], ebx
jne 0x10015db3
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1e0]
xor edx, edx
mov ecx, edi
sub ecx, eax
mov eax, dword [esp + 0x1dc]
cmp ecx, eax
mov ecx, 0xffff1b88
mov eax, dword [esp + 0xc0]
setle dl
sub ecx, edx
xor edx, edx
push 4
cmp dword [eax], ecx
pop ecx
setle dl
mov dword [esp + 0x230], edx
mov dword [esp + 0x24], edx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 6
jg 0x10015c2e
mov esi, dword [esp + 0xbc]
or dword [esp + 0x28c], 0xffffffff
cmp dword [esp + 0xc0], 0
je 0x10015e39
push dword [esp + 0xc0]
call fcn.10055488
pop ecx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
imul eax, dword [esp + 0x4c], 0x2710
add eax, esi
mov dword [esp + 0xb8], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], 0x9acd4098
mov dword [esp + 0x18], 0x22ba7b7e
mov dword [esp + 0x28], 0x5f27a412
mov dword [esp + 0x14], 0xc3997b09
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], 0xafec
mov dword [esp + 0x34], 0x5c4b
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], 0xcdcbd5f5
mov eax, dword [esp + 0x20]
inc dword [esp + 0x20]
test eax, eax
je 0x10015ea2
mov eax, dword [esp + 0x20]
mov esi, edi
jmp 0x10015ea4
mov esi, ebx
mov dword [esp + 0x1c], 0x9f49
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x1c]
setge cl
xor edx, edx
cmp eax, ecx
setne dl
xor eax, eax
imul edx, dword [esp + 0x18]
cmp esi, edx
sete al
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x2c], eax
setne cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
cmp eax, ecx
setg dl
xor eax, eax
cmp edx, 0x5755261f
setle al
sub eax, dword [esp + 0x28]
sub eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x20], ebx
jne 0x10015f2a
mov ecx, ebx
cmp dword [esp + 0x1c], ebx
je 0x10015f2c
mov ecx, edi
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
cmp eax, ecx
setg dl
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x20]
setg cl
xor edx, edx
cmp ecx, eax
setle dl
xor eax, eax
add edx, 0xffff
cmp edx, 0x7da828c0
setge al
xor ecx, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x30], eax
setge cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setle dl
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp eax, 0x9d012cd0
lea eax, [esp + 0xb8]
setne cl
mov dword [esp + 0x2c], ecx
push eax
call fcn.10018895
push 3
lea ecx, [esp + 0x130]
mov edi, dword [eax]
call fcn.100183ab
push 3
lea ecx, [esp + 0xf4]
mov dword [esp + 0x290], 2
call fcn.100183ab
mov dword [esp + 0x30], 0x20a5
cmp dword [esp + 0x30], 0xe3b
jge 0x10016139
lea eax, [esp + 0x44]
push eax
push 0x10007808
call fcn.10054b0b
mov eax, dword [esp + 0x4c]
pop ecx
pop ecx
push 4
pop esi
cmp eax, esi
jge 0x10016058
push 0x10007954
call fcn.100555f7
pop ecx
jmp 0x1001613c
and eax, 0x80000001
jns 0x10016064
dec eax
or eax, 0xfffffffe
inc eax
jne 0x100160ca
push 0x10007958
call fcn.100555f7
mov dword [esp], 0x1000795c
call fcn.100555f7
mov dword [esp], 0x10007968
call fcn.100555f7
mov dword [esp], 0x10007974
call fcn.100555f7
pop ecx
push 6
pop esi
cmp dword [esp + 0x44], esi
jl 0x10016139
lea eax, [esi - 1]
push eax
push esi
push 0x10007980
call fcn.100552e3
add esp, 0xc
push 0x10007990
call fcn.100555f7
add esi, 2
pop ecx
cmp esi, dword [esp + 0x44]
jle 0x100160a2
jmp 0x10016139
cmp eax, 1
jne 0x1001613c
push 0x10007958
call fcn.100555f7
mov dword [esp], 0x1000799c
call fcn.100555f7
mov dword [esp], 0x100079a8
call fcn.100555f7
mov dword [esp], 0x100079b4
call fcn.100555f7
mov dword [esp], 0x100079c0
call fcn.100555f7
pop ecx
push 7
pop esi
cmp dword [esp + 0x44], esi
jl 0x10016139
lea eax, [esi - 1]
push eax
push esi
push 0x10007980
call fcn.100552e3
add esp, 0xc
push 0x10007990
call fcn.100555f7
add esi, 2
pop ecx
cmp esi, dword [esp + 0x44]
jle 0x10016113
push 4
pop esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x14], ebx
jmp 0x1001615c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x12c]
mov dword [eax + ecx*4], 0xfdf99ff6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10016146
mov dword [esp + 0x14], ebx
jmp 0x1001617f
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xf0]
mov dword [eax + ecx*4], 0x2667a876
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10016169
mov eax, dword [esp + 0xf0]
mov dword [eax], ebx
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100161a8
push ebx
push 0x26e7
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov eax, dword [esp + 0xf0]
inc dword [eax]
cmp dword [eax], 2
jle 0x1001618f
push eax
call fcn.10055488
or dword [esp + 0x290], 0xffffffff
cmp dword [esp + 0x130], 0
pop ecx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], ebx
je 0x10016206
push dword [esp + 0x12c]
call fcn.10055488
pop ecx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x134], ebx
test edi, edi
je 0x10016316
mov dword [esp + 0x1c], 0x91a049fe
mov dword [esp + 0x28], 0xb058efa9
mov dword [esp + 0x1c], ebx
jmp 0x100162e1
push esi
lea ecx, [esp + 0x148]
call fcn.100183ab
mov dword [esp + 0x24], 0x9953e80c
mov dword [esp + 0x30], 0xff4caa5d
mov dword [esp + 0x10], ebx
jmp 0x10016260
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x144]
mov dword [eax + ecx*4], 0xc25bfc88
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001624a
mov ecx, dword [esp + 0x144]
cmp dword [ecx + 0xc], 0
je 0x100162ac
cmp dword [ecx + 0xc], 1
je 0x1001627d
mov eax, dword [esp + 0x1c]
cmp dword [ecx + 0xc], 0x847d
jl 0x10016290
cmp dword [esp + 0x1c], ebx
jne 0x10016290
mov edx, ebx
jmp 0x10016293
xor edx, edx
inc edx
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x24], ebx
je 0x100162ac
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x144]
dec eax
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x34], eax
call fcn.10055488
mov dword [esp + 0x148], ebx
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], ebx
dec dword [esp + 0x20]
pop ecx
cmp dword [esp + 0x1c], 0xfffffff2
jge 0x10016227
mov ecx, dword [esp + 0x28]
xor edx, edx
mov eax, dword [esp + 0x1c]
cmp eax, ecx
mov eax, dword [esp + 0x1c]
setle dl
mov dword [esp + 0x1ac], edi
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x1c], ecx
jmp 0x10017d20
mov eax, dword [0x10893780]
test al, 2
jne 0x100163bd
or eax, 2
mov dword [0x10893780], eax
push ebx
mov dword [esp + 0x290], 3
push ebx
mov dword [0x10893760], ebx
mov dword [0x10893764], ebx
call fcn.1001ccf1
mov dword [0x10893760], eax
mov dword [0x10893768], ebx
mov dword [0x10893770], ebx
mov byte [esp + 0x28c], 5
mov ecx, 0x10893768
mov dword [esp + 0x1c8], eax
lea eax, [esp + 0x1c8]
push eax
push 0x10
push ebx
lea eax, [esp + 0x248]
mov dword [0x1089377c], 0x3f800000
push eax
mov dword [0x1089376c], ebx
call fcn.1001cac9
push 0x1006eeb4
mov dword [0x10893774], 7
mov dword [0x10893778], 8
call fcn.1005514a
or dword [esp + 0x290], 0xffffffff
pop ecx
mov dword [esp + 0x1c], 0xac204e2
lea ecx, [esp + 0x90]
mov dword [esp + 0x10], 0xa36042c8
push 3
call fcn.100183ab
mov dword [esp + 0x28c], 6
mov dword [esp + 0x24], 0x505c00d4
mov dword [esp + 0x2c], 0x6b8cc39b
mov dword [esp + 0x38], 0x81dc493
mov dword [esp + 0x18], 0x69acb3b3
mov dword [esp + 0x10], ebx
jmp 0x10016422
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x90]
mov dword [eax + ecx*4], 1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001640c
mov dword [esp + 0x1c], 9
jmp 0x100164e0
mov dword [esp + 0x28], 9
mov dword [esp + 0x30], 0x5fa2ef70
mov dword [esp + 0x10], ebx
jmp 0x1001645f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x22c], 0xfffb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001644c
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x28], ebx
jl 0x100164dc
push 1
lea ecx, [esp + 0x180]
call fcn.100183ab
mov dword [esp + 0x38], ebx
mov dword [esp + 0x10], ebx
jmp 0x1001649b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x17c]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x10016488
mov eax, dword [esp + 0x17c]
mov dword [eax], ebx
inc dword [eax]
cmp dword [eax], 0
mov dword [esp + 0x30], 1
jle 0x100164ab
push eax
call fcn.10055488
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], ebx
mov dword [esp + 0x188], ebx
dec dword [esp + 0x2c]
pop ecx
jns 0x10016470
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 7
je 0x10016436
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], 0xffffffe7
je 0x100166a7
mov edi, dword [esp + 0x90]
mov dword [esp + 0x28], 0xfffffffd
lea ecx, [esp + 0x120]
push 3
call fcn.100183ab
mov byte [esp + 0x28c], 7
lea ecx, [esp + 0x114]
mov dword [esp + 0x20], 1
mov dword [esp + 0x30], 0xffffffff
push 1
call fcn.100183ab
mov dword [esp + 0x38], 0x74591f80
mov dword [esp + 0x14], ebx
jmp 0x10016561
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x120]
mov dword [eax + ecx*4], 0x84e2bba6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1001654b
mov dword [esp + 0x14], ebx
jmp 0x10016584
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x114]
mov dword [eax + ecx*4], 6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x1001656e
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 0x10], 0xfffffffa
mov eax, dword [esp + 0x10]
test eax, eax
mov dword [edi + 8], eax
mov eax, dword [esp + 0x28]
setne cl
sub ecx, eax
xor edx, edx
mov eax, dword [esp + 0x28]
cmp ecx, eax
setl dl
xor ecx, ecx
sub edx, dword [esp + 0x1c]
add edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
cmp edx, eax
setne cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x120]
cmp dword [eax], 0x58af3265
sete dl
xor ecx, ecx
cmp edx, 0x224b
setle cl
xor eax, eax
cmp ecx, dword [esi + 8]
mov ecx, 0xca6f
setle al
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
sub ecx, eax
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x114]
mov dword [eax], ecx
inc dword [esp + 0x18]
push dword [esp + 0x114]
call fcn.10055488
pop ecx
mov byte [esp + 0x28c], 6
push dword [esp + 0x120]
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x120], ebx
call fcn.10055488
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], ebx
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xffffffe7
pop ecx
jne 0x10016501
or dword [esp + 0x28c], 0xffffffff
cmp dword [esp + 0x90], 0
je 0x100166db
push dword [esp + 0x90]
call fcn.10055488
pop ecx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
xorps xmm0, xmm0
movdqu xmmword [esp + 0x168], xmm0
push 4
mov dword [esp + 0x14], 2
mov dword [esp + 0x14], ebx
pop ecx
jmp 0x1001670b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x270], 0xac8b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x100166f8
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10016722
call dword [sym.imp.USER32.dll_GetMessageTime]
mov dword [esp + 0x10], ebx
jmp 0x10016747
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10016743
push 0x188
push 0xd28
call dword [sym.imp.USER32.dll_GetWindowLongW]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jle 0x10016728
lea eax, [esp + 0x4c]
push eax
call fcn.100188f7
mov edi, dword [eax]
mov al, byte [ebp + 0xc]
mov dword [esp + 0x28], edi
test al, al
jne 0x1001676d
test edi, edi
jne 0x10016b83
lea ecx, [esp + 0x260]
mov dl, al
push ecx
mov ecx, dword [esp + 0x50]
call fcn.10009b5e
mov esi, eax
lea edi, [esp + 0x16c]
mov eax, 0x22e6e7f7
xor edx, edx
pop ecx
push 3
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 + 0x1c], 0x665683c8
xor esi, esi
mov dword [esp + 0x1f0], eax
inc esi
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x28], 0x959c45c1
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setg dl
xor ecx, ecx
cmp edx, eax
pop edi
setl cl
mov dword [esp + 0x18], ecx
mov dword [esp + 0x18], edi
jmp 0x100168ba
push 2
lea ecx, [esp + 0x10c]
call fcn.100183ab
mov dword [esp + 0x10], ebx
jmp 0x1001681a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x108]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10016804
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10016837
push 0xdb4
call dword [sym.imp.USER32.dll_GetSysColor]
mov eax, dword [esp + 0x108]
mov dword [eax], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x20], ebx
jmp 0x10016887
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001685c
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [esp + eax*4 + 0x1ec]
imul edx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp edx, eax
setl cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x1001684a
mov eax, dword [esp + 0x108]
inc dword [eax]
cmp dword [eax], edi
jle 0x10016840
push eax
call fcn.10055488
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ebx
inc dword [esp + 0x1c]
pop ecx
cmp dword [esp + 0x18], 8
jne 0x100167f0
cmp byte [ebp + 0xc], 0
je 0x10016b7d
cmp dword [esp + 0x170], 0
je 0x10016b7d
mov dword [esp + 0x14], esi
mov dword [esp + 0x14], 8
cmp dword [esp + 0x14], 0xffffffe2
jge 0x10016927
push 4
pop ecx
mov dword [esp + 0x10], ebx
jmp 0x10016908
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x204], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x100168f9
dec dword [esp + 0x204]
mov eax, dword [esp + 0x208]
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffe2
jl 0x100168f3
mov dword [esp + 0x14], ebx
jmp 0x10016937
cmp dword [esp + 0x14], ebx
jne 0x1001693e
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffd
jg 0x1001692d
mov eax, dword [esp + 0x174]
lea ecx, [esp + 0x19c]
mov dword [esp + 0x14], 0x110c93b4
mov dword [esp + 0x1c], 0xde64f6cb
mov dword [esp + 0x24], 0x2e77e815
mov dword [esp + 0x18], esi
mov dword [esp + 0x38], 0xfffffffb
mov dword [esp + 0x38], 0x3c3fa3c9
mov dword [esp + 0x38], ebx
mov dword [esp + 0x38], 0xf846c8c5
mov dword [esp + 0x38], 0x5ab1361
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x38], 0x2a5b
push edi
mov dword [esp + 0x1b4], eax
call fcn.100183ab
mov dword [esp + 0x28c], 8
mov dword [esp + 0x14], ebx
jmp 0x100169cd
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x178], 0xfffffff8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100169ba
mov dword [esp + 0x14], ebx
jmp 0x100169ef
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x19c]
mov dword [eax + ecx*4], 0xfff9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x100169d9
mov dword [esp + 0x14], ebx
jmp 0x10016b36
mov dword [esp + 0x20], 0x8fb0
lea ecx, [esp + 0x18c]
mov dword [esp + 0x34], esi
mov dword [esp + 0x10], 0xffffffff
push esi
call fcn.100183ab
mov dword [esp + 0x10], ebx
jmp 0x10016a3b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18c]
mov dword [eax + ecx*4], 8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10016a25
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push 0xfffffffffffffff7
pop ecx
sub ecx, eax
cmp dword [esp + 0x20], ecx
jg 0x10016a60
mov edx, esi
cmp dword [esp + 0x24], ebx
jne 0x10016a62
mov edx, ebx
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x1c]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setl dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x20]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setge dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x20]
setne cl
xor edx, edx
cmp ecx, eax
setge dl
xor ecx, ecx
imul edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cmp edx, eax
setne cl
cmp ecx, dword [esp + 0x34]
jle 0x10016ac2
mov eax, esi
cmp dword [esp + 0x18], ebx
jne 0x10016ac4
mov eax, ebx
mov dword [esp + 0x24], eax
xor edx, edx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov eax, dword [esp + 0x14]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x18]
setg cl
mov dword [esp + 0x30], ecx
xor ecx, ecx
cmp dword [esp + 0x30], eax
setg cl
cmp ecx, 0xbdf78b15
ja 0x10016b03
mov eax, esi
cmp dword [esp + 0x20], ebx
jne 0x10016b05
mov eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18c]
push ecx
mov dword [ecx], eax
call fcn.10055488
mov dword [esp + 0x190], ebx
mov dword [esp + 0x194], ebx
mov dword [esp + 0x198], ebx
inc dword [esp + 0x18]
pop ecx
cmp dword [esp + 0x14], 0x13
je 0x100169fe
mov eax, dword [esp + 0x19c]
push eax
inc dword [eax + 8]
or dword [esp + 0x290], 0xffffffff
call fcn.10055488
mov eax, dword [esp + 0x174]
pop ecx
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], ebx
mov dword [esp + 0x1a4], ebx
mov dword [esp + 0x1b4], eax
mov edi, dword [esp + 0x28]
jmp 0x10016b86
xor esi, esi
inc esi
push dword [esp + 0x178]
lea eax, [esp + 0x264]
mov dword [esp + 0xe8], ebx
push eax
lea eax, [esp + 0x258]
mov dword [esp + 0xf0], ebx
push eax
xorps xmm0, xmm0
mov dword [esp + 0xf8], ebx
push ebx
lea ecx, [esp + 0xf4]
movdqu xmmword [esp + 0x260], xmm0
call fcn.1001e0c1
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x38], 0x1b55e973
mov dword [esp + 0x38], ebx
or dword [esp + 0x28c], 0xffffffff
push eax
mov dword [eax], 0x19
call fcn.10055488
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
pop ecx
test edi, edi
jne 0x1001776d
cmp dword [esp + 0x168], edi
jle 0x1001776d
mov dword [esp + 0x30], 0x22d5
cmp dword [esp + 0x30], 0x12c0
jge 0x10016da7
lea eax, [esp + 0xa8]
mov ecx, 0x1065f9b0
push eax
call fcn.10017e64
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
mov dword [esp + 0x28c], 0xb
mov edi, dword [esp + 0xa8]
test edi, edi
je 0x10016d88
dec edi
lea edx, [esp + 0x6c]
mov ecx, 0x1065f9b0
mov dword [esp + 0x30], edi
call fcn.1001df3f
cmp dword [esp + 0x80], 0x10
lea ecx, [esp + 0x6c]
mov edx, dword [esp + 0x7c]
cmovae ecx, dword [esp + 0x6c]
add edx, ecx
mov byte [esp + 0x198], bl
cmp dword [esp + 0x80], 0x10
lea ecx, [esp + 0x6c]
push dword [esp + 0x198]
cmovae ecx, dword [esp + 0x70]
mov eax, edx
sub eax, ecx
push eax
call fcn.1001e64a
lea edx, [esp + 0x74]
mov ecx, 0x1065f8f8
call fcn.1001d2ce
push eax
call fcn.1001d050
add esp, 0xc
cmp dword [esp + 0x80], 0x10
lea edx, [esp + 0x6c]
mov eax, dword [esp + 0x7c]
lea esi, [esp + 0x6c]
cmovae edx, dword [esp + 0x6c]
add edx, eax
mov byte [esp + 0x6b], bl
cmp dword [esp + 0x80], 0x10
cmovae esi, dword [esp + 0x6c]
cmp esi, edx
je 0x10016d6e
lea ecx, [edx - 1]
cmp esi, ecx
je 0x10016d6e
jmp 0x10016d19
cmp ecx, esi
je 0x10016d5c
mov edi, ecx
dec ecx
mov al, byte [ecx]
cmp al, byte [edi]
jge 0x10016d15
mov esi, edx
mov ah, al
dec esi
cmp ah, byte [esi]
jge 0x10016d26
mov al, byte [esi]
mov byte [ecx], al
mov byte [esi], ah
jmp 0x10016d41
dec edx
cmp edi, edx
je 0x10016d45
mov cl, byte [edi]
mov al, byte [edx]
mov byte [edi], al
inc edi
mov byte [edx], cl
cmp edi, edx
jne 0x10016d33
lea edx, [esp + 0x6c]
mov ecx, 0x1065f8f8
call fcn.1001d2ce
push eax
call fcn.1001d050
pop ecx
jmp 0x10016cdc
dec edx
cmp esi, edx
je 0x10016d6e
mov cl, byte [esi]
mov al, byte [edx]
mov byte [esi], al
inc esi
mov byte [edx], cl
cmp esi, edx
jne 0x10016d5c
push 0x1065f8f8
call fcn.1001d050
mov edi, dword [esp + 0x34]
pop ecx
test edi, edi
jne 0x10016c72
xor esi, esi
inc esi
or dword [esp + 0x28c], 0xffffffff
lea ecx, [esp + 0x6c]
push ebx
dec edi
push esi
mov dword [esp + 0xb0], edi
call fcn.10018c8c
mov edi, dword [esp + 0x28]
mov dword [esp + 0x38], 0xdfa8
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10016dca
push 0x1889
push 0xb7c
call dword [sym.imp.USER32.dll_GetWindow]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10016de0
push 0x311
call dword [sym.imp.USER32.dll_GetKeyboardType]
push 2
lea ecx, [esp + 0xa0]
call fcn.100183ab
mov dword [esp + 0x28c], 0xc
mov dword [esp + 0x1c], 0xfffffff7
mov dword [esp + 0x18], 0x9d8d9242
mov dword [esp + 0x20], 0xd3650dfa
mov dword [esp + 0x34], 0x1465ee6d
mov dword [esp + 0x34], 0xe318b474
mov dword [esp + 0x24], 0xbfaead22
mov dword [esp + 0x2c], 0x7d86
mov dword [esp + 0x34], 0xba053926
mov dword [esp + 0x10], ebx
jmp 0x10016e55
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x9c]
mov dword [eax + ecx*4], 0x5464
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10016e3f
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], ebx
jl 0x10016ff2
mov dword [esp + 0x30], 0xe29a
lea ecx, [esp + 0x138]
push 2
call fcn.100183ab
mov dword [esp + 0x38], 0x45a3
mov dword [esp + 0x14], ebx
jmp 0x10016ea1
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x214], 0x7dd9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10016e8e
mov dword [esp + 0x14], ebx
jmp 0x10016ec0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x138]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10016eae
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x9c]
cmp dword [eax + ecx*4], ebx
jne 0x10016f36
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x9c]
neg edx
sub edx, dword [eax + ecx*4]
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
cmp dword [esp + 0x34], ebx
je 0x10016f26
mov eax, dword [esp + 0x21c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
xor edx, edx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
cmp eax, ecx
mov eax, dword [esp + 0x138]
setne dl
mov dword [eax], edx
mov dword [esp + 0x20], 0xfffffff5
jmp 0x10016fbf
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x34], eax
jle 0x10016fb5
cmp dword [esp + 0x18], 0x196a
jle 0x10016fab
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jne 0x10016fa1
mov eax, ebx
cmp dword [esp + 0x21c], ebx
je 0x10016fa3
mov eax, esi
cmp eax, dword [esp + 0x2c]
mov eax, esi
jne 0x10016fad
mov eax, ebx
cmp eax, dword [esp + 0x20]
mov eax, ebx
jge 0x10016fb7
mov eax, esi
mov dword [esp + 0x18], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0xfffffffc
jl 0x10016f6c
push dword [esp + 0x138]
call fcn.10055488
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], ebx
dec dword [esp + 0x20]
pop ecx
jns 0x10016e6a
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10017009
push ebx
push 0x12ca
call dword [sym.imp.USER32.dll_TranslateMDISysAccel]
or dword [esp + 0x28c], 0xffffffff
cmp dword [esp + 0x9c], 0
je 0x1001703d
push dword [esp + 0x9c]
call fcn.10055488
pop ecx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x10], 0x9fdf99ff
mov dword [esp + 0x38], 0x9536
mov dword [esp + 0x10], 0xffffffe2
jmp 0x10017084
cmp dword [esp + 0x38], ebx
mov byte [esp + 0xf], bl
je 0x10017072
cmp byte [esp + 0xf], 0
je 0x10017080
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
jmp 0x10017080
cmp byte [esp + 0xf], 0
je 0x10017080
push ebx
call dword [sym.imp.KERNEL32.dll_LockResource]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff8
jne 0x10017057
mov dword [esp + 0x18], 0xf665683c
lea ecx, [esp + 0xd8]
mov dword [esp + 0x38], 0x4ee7d214
mov dword [esp + 0x10], 0xffffffff
push 2
call fcn.100183ab
mov dword [esp + 0x14], ebx
jmp 0x100170c7
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x50], 0x4ddbc370
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100170b7
mov dword [esp + 0x14], ebx
jmp 0x100170e9
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], 0xfff9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x100170d3
cmp dword [esp + 0x18], ebx
jne 0x100170fe
mov eax, ebx
cmp dword [esp + 0x38], ebx
je 0x10017100
mov eax, esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], ebx
jl 0x100171b5
mov dword [esp + 0x2c], 0xfffffff7
mov dword [esp + 0x38], 0xc193
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10017137
call dword [sym.imp.KERNEL32.dll_GetACP]
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jg 0x100171a8
mov esi, dword [esp + 0xd8]
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x50], ebx
jne 0x10017184
mov eax, dword [esp + 0x18]
xor edx, edx
mov ecx, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x2c]
cmp eax, ecx
mov eax, dword [esp + 0x18]
setg dl
xor ecx, ecx
cmp edx, 0xffffffff
setne cl
add ecx, dword [esp + eax*4 + 0x50]
add ecx, dword [esp + 0x2c]
imul eax, ecx, 3
test eax, eax
jne 0x10017184
mov eax, ebx
jmp 0x10017187
xor eax, eax
inc eax
xor ecx, ecx
cmp eax, 0xfffffff6
setge cl
xor eax, eax
imul ecx, dword [esp + 0x38]
test ecx, ecx
setns al
mov dword [esi + 4], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jle 0x10017148
dec dword [esp + 0x10]
jns 0x10017116
xor esi, esi
inc esi
cmp dword [esp + 0xd8], 0
je 0x100171e1
push dword [esp + 0xd8]
call fcn.10055488
pop ecx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
cmp dword [esp + 0x16c], 0
je 0x1001776d
push 2
lea ecx, [esp + 0xb0]
call fcn.100183ab
mov dword [esp + 0x28c], 0xd
lea ecx, [esp + 0x15c]
mov dword [esp + 0x2c], 2
push esi
call fcn.100183ab
mov dword [esp + 0x38], 0x17ff
cmp dword [esp + 0x38], 0x84b
jge 0x100172ec
push 0x10665b88
push 0x10665bb4
push 0x10007810
call fcn.10054b0b
mov ecx, dword [0x10665bb4]
add esp, 4
movd xmm0, dword [0x10665b88]
mov edi, ecx
imul eax, ecx, 5
cvtdq2pd xmm0, xmm0
lea esi, [ecx + ecx]
shl edi, 3
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
movsd qword [esp], xmm1
call fcn.100543b0
movd xmm0, dword [0x10665b88]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
fstp qword [esp + 0x40]
divsd xmm1, xmm0
movsd qword [esp], xmm1
call fcn.100543b0
movd xmm0, dword [0x10665b88]
movd xmm1, edi
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
fadd qword [esp + 0x40]
divsd xmm1, xmm0
fstp qword [esp + 0x40]
movsd qword [esp], xmm1
call fcn.100543b0
fadd qword [esp + 0x40]
fstp qword [esp + 0x40]
cvttsd2si eax, qword [esp + 0x40]
push eax
push 0x100077fc
call fcn.100552e3
xor esi, esi
add esp, 0x10
inc esi
push 0xfffffffffffffff7
pop eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], 0xf40bf68d
mov dword [esp + 0x14], ebx
jmp 0x1001731b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xac]
mov dword [eax + ecx*4], 0x31d14cd4
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10017305
mov dword [esp + 0x14], ebx
jmp 0x1001733e
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x15c]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10017328
mov eax, dword [esp + 0xac]
mov ecx, dword [eax]
test ecx, ecx
je 0x10017360
xor eax, eax
cmp ecx, esi
setl al
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0xac]
mov eax, dword [eax + 4]
lea edx, [eax + 1]
sub edx, eax
mov eax, dword [esp + 0x34]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 9
setne cl
xor edx, edx
sub eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xac]
mov ecx, dword [eax]
mov eax, dword [esp + 0x2c]
add eax, ecx
cmp eax, 0xffffffff
setle dl
imul edx, ecx
xor ecx, ecx
cmp edx, esi
setl cl
xor eax, eax
cmp ecx, 0xf43b
setle al
mov dword [esp + 0x38], eax
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100173cc
push ebx
call dword [sym.imp.USER32.dll_SetKeyboardState]
cmp dword [esp + 0x15c], 0
je 0x100173f8
push dword [esp + 0x15c]
call fcn.10055488
pop ecx
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], ebx
or dword [esp + 0x28c], 0xffffffff
push dword [esp + 0xac]
call fcn.10055488
pop ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
call fcn.10896000
mov dword [esp + 0x20], 0x928c176b
mov edi, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], 0xb602708c
mov dword [esp + 0x28], edi
mov dword [esp + 0x10], ebx
jmp 0x1001745d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1fc], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001744e
mov dword [esp + 0x20], 0xd
cmp dword [esp + 0x20], 0xffffffe5
jl 0x10017761
mov edi, 0x4b81230b
mov dword [esp + 0x18], 0xedb5
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x38], 0x6f62939c
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x30], 0x91f199e1
mov dword [esp + 0x10], ebx
jmp 0x100174c1
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x188], 0xdefcecb2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100174ae
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x20]
cmp eax, ecx
mov eax, dword [esp + 0x18]
setl dl
sub eax, edx
cmp eax, dword [esp + 0x20]
jge 0x10017500
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x18]
jge 0x100174f8
mov eax, dword [esp + 0x18]
mov ecx, ebx
cmp dword [esp + 0x18], ebx
je 0x10017502
mov ecx, esi
xor eax, eax
cmp ecx, 0x16f93bd5
setle al
xor ecx, ecx
cmp eax, 0x6578
setle cl
add ecx, dword [esp + 0x1c]
je 0x1001752c
cmp dword [esp + 0x20], ebx
jne 0x1001775d
jmp 0x1001774e
push 4
pop ecx
push ecx
lea ecx, [esp + 0x58]
call fcn.100183ab
mov dword [esp + 0x28c], 0xe
push 4
mov dword [esp + 0x38], 0xb8161dbf
mov dword [esp + 0x18], ebx
pop edx
jmp 0x10017568
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10017555
mov dword [esp + 0x14], ebx
jmp 0x10017587
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1bc], 0xd840dfe9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10017574
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], 3
jg 0x10017729
jmp 0x100175a1
push 4
pop edx
mov dword [esp + 0x1cc], edi
lea ecx, [esp + 0xcc]
mov dword [esp + 0x1d0], edi
mov dword [esp + 0x1d4], edi
mov dword [esp + 0x1d8], edi
push edx
call fcn.100183ab
push 4
mov dword [esp + 0x14], ebx
pop edx
jmp 0x100175e9
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], 0x24e228c5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x100175d3
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10017601
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
cmp dword [eax + ecx*4], ebx
jne 0x100176ce
mov dword [esp + 0x1bc], esi
xor ecx, ecx
mov dword [esp + 0x188], esi
imul eax, dword [esp + 0x1cc], 0xc1846e98
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
cmp eax, esi
setge cl
cmp ecx, 0x3547a058
jge 0x10017651
mov ecx, dword [esp + 0x1c]
mov edx, esi
mov eax, dword [esp + 0x54]
cmp dword [eax + ecx*4], ebx
jne 0x10017653
mov edx, ebx
dec dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x24]
cmp edx, 0x8169b2b2
mov dword [esp + 0x200], eax
mov esi, dword [esp + 0x1c]
sete cl
mov edi, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xcc]
cmp ecx, dword [eax + 8]
mov eax, dword [esp + 0x54]
setge dl
xor ecx, ecx
cmp edx, dword [eax + esi*4]
mov eax, dword [esp + 0x1cc]
mov esi, dword [esp + 0x30]
setge cl
sub ecx, eax
xor edx, edx
mov eax, dword [esp + 0x18]
cmp ecx, eax
setl dl
xor ecx, ecx
imul edx, dword [esp + 0x38]
imul edx, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
cmp dword [eax + edi*4], esi
mov edi, 0x4b81230b
setle cl
xor esi, esi
sub ecx, edx
inc esi
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
cmp dword [eax + ecx*4], ebx
setne dl
cmp dword [esp + 0xcc], 0
mov dword [esp + 0x34], edx
je 0x1001771a
push dword [esp + 0xcc]
call fcn.10055488
pop ecx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jle 0x1001759e
or dword [esp + 0x28c], 0xffffffff
cmp dword [esp + 0x54], 0
je 0x1001774e
push dword [esp + 0x54]
call fcn.10055488
pop ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xffffffe5
jge 0x1001747c
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x4c]
push eax
call fcn.100188f7
mov dword [eax], edi
mov dword [esp + 0x1c], 0x8a137b18
lea ecx, [esp + 0x84]
mov dword [esp + 0x18], 0xfffffff8
mov dword [esp + 0x20], 0x3274
mov dword [esp + 0x14], 0xc2da8afc
push 2
call fcn.100183ab
mov dword [esp + 0x28c], 0xf
mov dword [esp + 0x2c], esi
mov dword [esp + 0x10], 0xe3aa9c1c
mov dword [esp + 0x10], ebx
jmp 0x100177cb
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x84]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x100177b8
cmp dword [esp + 0x1c], ebx
je 0x100177e1
cmp dword [esp + 0x18], 0xfffffff6
mov edx, esi
jne 0x100177e3
mov edx, ebx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
neg eax
cmp edx, eax
setg cl
cmp ecx, dword [esp + 0x20]
je 0x1001789b
mov dword [esp + 0x18], 0xffffffec
jmp 0x10017831
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], 0xffffffe9
jmp 0x10017822
mov dword [esp + 0x2c], 3
dec dword [esp + 0x2c]
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x3b
jge 0x10017812
inc dword [esp + 0x34]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x1b
jge 0x10017804
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], ebx
jl 0x10017920
mov dword [esp + 0x1c], ebx
jmp 0x10017876
mov dword [esp + 0x14], ebx
jmp 0x1001786c
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10017868
push 0x1ab
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x10017852
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jle 0x1001784c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x84]
cmp dword [eax + ecx*4], ebx
jne 0x10017920
dec dword [esp + 0x18]
jns 0x10017846
jmp 0x10017920
mov dword [esp + 0x24], 0xe4ed383d
lea ecx, [esp + 0xfc]
push esi
call fcn.100183ab
mov dword [esp + 0x10], ebx
jmp 0x100178cc
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xfc]
mov dword [eax + ecx*4], 0xe141b6ba
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100178b6
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0xfc]
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
cmp eax, esi
push dword [esp + 0xfc]
setl cl
mov dword [esp + 0x18], ecx
call fcn.10055488
pop ecx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x1c], 2
cmp dword [esp + 0x1c], 0x39
je 0x10017b23
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], 0x30ae734f
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], ebx
jl 0x10017b10
mov edx, dword [esp + 0x84]
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], 0x605a
mov dword [esp + 0x38], 0x1809
cmp dword [esp + 0x38], 0x61e
jge 0x10017aa5
push ebx
push esi
xor ecx, ecx
call section..wawdy
mov edx, dword [0x10891fec]
mov eax, edx
mov ecx, dword [0x10891fe8]
sub eax, ecx
mov byte [esp + 0x1cc], bl
push dword [esp + 0x1cc]
sar eax, 3
push eax
call fcn.1001e74e
mov eax, dword [0x10891fe8]
add esp, 0x10
mov esi, dword [0x10891fec]
mov edx, eax
mov dword [esp + 0x34], eax
mov byte [esp + 0x63], bl
cmp edx, esi
je 0x10017a29
mov edi, eax
jmp 0x100179d6
mov ecx, dword [edi]
cmp ecx, dword [edx]
jne 0x100179d4
mov ecx, dword [edi + 4]
cmp ecx, dword [edx + 4]
je 0x100179df
mov edi, edx
add edx, 8
cmp edx, esi
jne 0x100179c6
jmp 0x10017a29
and dword [esp + 0x38], 0
add edx, 8
mov ecx, esi
mov dword [esp + 0x30], ebx
sub ecx, edx
add ecx, 7
shr ecx, 3
cmp edx, esi
cmova ecx, dword [esp + 0x38]
test ecx, ecx
je 0x10017a26
mov esi, ebx
mov eax, dword [edx]
mov ebx, dword [edx + 4]
cmp dword [edi], eax
jne 0x10017a10
cmp dword [edi + 4], ebx
je 0x10017a18
add edi, 8
mov dword [edi + 4], ebx
mov dword [edi], eax
add edx, 8
inc esi
cmp esi, ecx
jne 0x10017a02
mov eax, dword [esp + 0x34]
xor ebx, ebx
lea esi, [edi + 8]
sub esi, eax
sar esi, 3
push esi
call fcn.1001871d
lea eax, [esp + 0x1c0]
mov edi, ebx
push eax
push 0x100077f0
call fcn.10054b0b
pop ecx
pop ecx
mov ecx, dword [0x10891fec]
mov esi, ebx
sub ecx, dword [0x10891fe8]
sar ecx, 3
test ecx, ecx
jle 0x10017a91
mov eax, dword [esp + 0x1c0]
cdq
mov dword [esp + 0x38], eax
mov eax, dword [0x10891fe8]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x30]
cmp dword [eax + esi*8 + 4], ebx
jg 0x10017a8f
jl 0x10017a89
cmp dword [eax + esi*8], edx
ja 0x10017a8f
inc edi
inc esi
cmp esi, ecx
jl 0x10017a7c
xor ebx, ebx
push edi
push 0x100077fc
call fcn.100552e3
mov edx, dword [esp + 0x28]
xor esi, esi
pop ecx
pop ecx
inc esi
mov dword [esp + 0x10], 0x4e5
cmp dword [esp + 0x10], ebx
jne 0x10017af8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x84]
cmp dword [eax + ecx*4], esi
jge 0x10017acf
mov eax, ebx
cmp dword [esp + 0x2c], ebx
je 0x10017ad1
mov eax, esi
inc dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
add eax, 0xdc68421b
inc ecx
add eax, ecx
mov ecx, ebx
imul eax, dword [esp + 0x2c]
test eax, eax
je 0x10017afa
mov ecx, esi
xor eax, eax
cmp ecx, dword [edx + 4]
setl al
mov dword [esp + 0x38], eax
dec dword [esp + 0x14]
jns 0x10017958
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x39
jne 0x10017933
mov edi, dword [esp + 0x28]
or dword [esp + 0x28c], 0xffffffff
cmp dword [esp + 0x84], 0
je 0x10017b57
push dword [esp + 0x84]
call fcn.10055488
pop ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
lea ecx, [esp + 0x168]
call fcn.10011388
mov dword [esp + 0x10], ebx
jmp 0x10017b75
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x48], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10017b69
mov dword [esp + 0x48], 0xfffffff3
jmp 0x10017bc7
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10017ba6
push ebx
push 0x19fc
push 0x1ec2
push 0x1b73
call dword [sym.imp.GDI32.dll_GetSystemPaletteEntries]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10017bc3
push ebx
push ebx
push 0x94d
push 0x9d
call dword [sym.imp.USER32.dll_PostMessageW]
inc dword [esp + 0x48]
cmp dword [esp + 0x48], 6
jle 0x10017b85
test edi, edi
je 0x10017ca8
push 2
lea ecx, [esp + 0x154]
call fcn.100183ab
mov dword [esp + 0x38], 0x197f0a29
mov dword [esp + 0x18], ebx
jmp 0x10017c05
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x1a8], 0xc204e2db
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x10017bf2
mov dword [esp + 0x18], ebx
jmp 0x10017c27
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x150]
mov dword [eax + ecx*4], 0xad59e57a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x10017c11
mov ecx, dword [esp + 0x150]
mov dword [ecx + 4], ebx
mov eax, dword [ecx + 4]
inc dword [ecx + 4]
mov dword [esp + eax*4 + 0x1a8], 0xfffffffe
cmp dword [ecx + 4], esi
jl 0x10017c38
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10017c60
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [esp + 0x150]
call fcn.10055488
mov edx, dword [esp + 0xc0]
pop ecx
mov ecx, edi
mov dword [esp + 0x150], ebx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x158], ebx
call fcn.1089603b
mov esi, eax
lea eax, [esp + 0xb8]
push eax
mov dword [esp + 0x1b0], esi
call fcn.10018895
mov dword [eax], esi
push 3
lea ecx, [esp + 0x224]
call fcn.100183ab
mov dword [esp + 0x10], ebx
jmp 0x10017cd2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x220]
mov dword [eax + ecx*4], 0x4e1a3622
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10017cbc
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10017cfc
push 0x494
push ebx
push ebx
push 0x182b
push ebx
push 0x131c
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10017d14
push ebx
push ebx
push 0x537
call dword [sym.imp.USER32.dll_SetPropA]
lea ecx, [esp + 0x220]
call fcn.1001900a
mov eax, dword [ebp + 8]
lea esi, [esp + 0x1ac]
mov ecx, dword [esp + 0x284]
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