Function at 0x450c44
Capabilities:
Extract resource via kernel32 functions
Get common file path
Get disk information
Get file size
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x504
push ebx
push esi
push edi
mov dword [ebp - 0x78], ecx
lea ecx, [ebp - 0x2dc]
push 4
call fcn.00401e5e
mov dword [ebp - 4], 0x22ba3946
xor eax, eax
mov dword [ebp - 0x2c], 0x3a6c9cd4
mov dword [ebp - 0x2c], 0x71658a6
mov dword [ebp - 0x2c], 0x402ad92
mov dword [ebp - 4], eax
jmp 0x450c92
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x2dc]
mov dword [ecx + edx*4], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x450c83
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 3
pop esi
push 1
mov dword [ebp - 4], eax
pop ebx
jmp 0x450d7c
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], 0xe77e815f
mov dword [ebp - 0x30], 0xfffffff6
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x450cd0
push 0x293
push eax
call edi
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jg 0x450d79
mov dword [ebp - 0x30], 0xffffffff
lea ecx, [ebp - 0x264]
push 4
call fcn.00401e5e
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x450d08
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x168], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x450cf7
mov dword [ebp - 0x14], eax
jmp 0x450d25
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x264]
mov dword [ecx + edx*4], 0x5189d9e6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x450d12
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], ebx
xor ebx, ebx
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2dc]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x168]
mov eax, dword [ebp - 0x264]
setl bl
sub ecx, dword [eax]
sub ecx, ebx
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x264]
call fcn.00401f30
inc dword [ebp - 0x18]
push 1
pop ebx
cmp dword [ebp - 0x18], esi
jle 0x450cdc
xor eax, eax
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jle 0x450cac
lea ecx, [ebp - 0x2dc]
call fcn.00401f30
xor eax, eax
mov dword [ebp - 0x14], 0x5d6c05ba
push 2
mov dword [ebp - 4], eax
pop esi
jmp 0x450dae
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x1ec], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x450da1
mov dword [ebp - 0x14], eax
mov ecx, 0x197e7c14
cmp dword [ebp - 0x14], esi
jl 0x450e72
mov edi, 0xef3b0639
mov dword [ebp - 4], 0xeede0b40
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xb43d2717
mov dword [ebp - 0x44], 0xee491ba6
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x34], 0xc8210466
mov dword [ebp - 4], esi
cmp dword [ebp - 4], 3
jl 0x450e60
mov dword [ebp - 0x38], 0x7d7c1188
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x44], 0x1c5a3d7f
mov ecx, dword [ebp - 0x34]
inc dword [ebp - 0x34]
test ecx, ecx
jne 0x450e2a
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x44]
xor edx, edx
test ecx, ecx
setle dl
cmp edi, edx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x1c]
imul ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x38], ecx
jle 0x450e4d
mov ecx, ebx
cmp dword [ebp - 0x14], eax
jne 0x450e4f
mov ecx, eax
mov dword [ebp - 0x44], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jge 0x450e0c
mov ecx, 0x197e7c14
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jge 0x450dc9
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [ebp - 0x14], eax
jmp 0x450e92
mov ecx, dword [ebp - 0x14]
cmp dword [ebp + ecx*4 - 0x1ec], eax
jne 0x450e97
mov ecx, dword [ebp - 0x14]
cmp dword [ebp + ecx*4 - 0x1ec], eax
jne 0x450e97
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x450e77
mov dword [ebp - 0x1c], 0x1fad
mov dword [ebp - 4], eax
jmp 0x450eb1
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x58], 0x8ec0ae97
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x450ea3
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0x1b
push 7
pop ecx
jle 0x450fc4
mov dword [ebp - 4], 0x6cce57bf
mov dword [ebp - 4], 0xa
jmp 0x450f8f
mov dword [ebp - 0xc], 0xfffffffa
mov dword [ebp - 0xc], 0x14
cmp dword [ebp - 0xc], 0xb
jl 0x450f8c
mov dword [ebp - 0x30], ebx
cmp dword [ebp - 0x58], eax
jne 0x450f00
mov esi, eax
cmp dword [ebp - 0x1c], eax
je 0x450f02
mov esi, ebx
mov ecx, dword [ebp - 0x58]
xor edx, edx
cmp esi, ecx
mov ecx, dword [ebp - 0xc]
sete dl
xor ebx, ebx
sub edx, ecx
mov ecx, dword [ebp - 0x1c]
cmp ecx, edx
mov ecx, dword [ebp - 0x58]
setg bl
xor edx, edx
sub ebx, ecx
mov ecx, dword [ebp - 0xc]
cmp ecx, ebx
setge dl
xor ecx, ecx
cmp edx, 0xfffffff9
setne cl
add ecx, dword [ebp - 0x30]
cmp dword [ebp - 0xc], ecx
mov byte [ebp - 0x21], al
jl 0x450f50
cmp byte [ebp - 0x21], 0
je 0x450f66
push 0x18d5
call dword [sym.imp.USER32.dll_GetSysColor]
jmp 0x450f64
cmp byte [ebp - 0x21], 0
je 0x450f66
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
xor eax, eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x450f79
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
xor eax, eax
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xb
push 1
pop ebx
jge 0x450ef1
push 7
pop ecx
dec dword [ebp - 4]
cmp dword [ebp - 4], ecx
jle 0x450ed9
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x450fb4
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_TranslateMDISysAccel]
push 7
xor eax, eax
pop ecx
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 0x1b
jg 0x450ec6
push 2
pop esi
push 4
lea ecx, [ebp - 0x2ac]
call fcn.00401e5e
xor eax, eax
mov dword [ebp - 0x14], 0xe387fb0b
push 8
mov dword [ebp - 4], eax
pop edx
jmp 0x450fef
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x1fc], edx
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x450fe2
mov dword [ebp - 0x14], eax
jmp 0x45100a
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x1fc], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x450ff9
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jg 0x451096
push 3
lea ecx, [ebp - 0x27c]
call fcn.00401e5e
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], eax
jmp 0x45103e
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x27c]
mov dword [ecx + edx*4], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x45102f
mov ecx, dword [ebp - 0x1f8]
mov esi, dword [ebp - 0x27c]
xor ecx, ecx
cmp dword [esi + 8], 0x87642760
setne cl
xor edx, edx
cmp ecx, 0xffffffff
setg dl
xor ecx, ecx
cmp edx, 0xcee3
setle cl
sub ecx, dword [esi]
jne 0x451078
cmp dword [esi + 8], eax
je 0x45107a
mov eax, ebx
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x27c]
call fcn.00401f30
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jle 0x451018
push 2
xor eax, eax
pop esi
mov dword [ebp - 0x3c], 0x22ba3946
mov dword [ebp - 0x2c], 0x3a6c9cd4
mov dword [ebp - 0x2c], 0x71658a6
mov dword [ebp - 0x2c], 0x402ad92
mov dword [ebp - 4], ebx
mov dword [ebp - 4], eax
jmp 0x4510cb
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x4a4], 0x6310feca
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x4510ba
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x4510e4
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_RegUnLoadKeyW]
xor eax, eax
mov dword [ebp - 0x20], 0x67d50f82
mov dword [ebp - 4], eax
jmp 0x451115
inc dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
jmp 0x45110d
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45110a
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
xor eax, eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jle 0x4510f8
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jle 0x4510f0
mov dword [ebp - 4], eax
jmp 0x45112e
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x2ac]
mov dword [ecx + edx*4], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x45111f
push 3
lea ecx, [ebp - 0x198]
call fcn.00401e5e
mov dword [ebp - 0xc], ebx
xor eax, eax
mov dword [ebp - 0x18], 0x576c3a0b
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], eax
jmp 0x451168
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x198]
mov dword [ecx + edx*4], 0xc204
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x451155
mov dword [ebp - 0xc], esi
cmp dword [ebp - 0xc], eax
jl 0x4511a1
mov dword [ebp - 4], ebx
mov dword [ebp - 4], eax
jmp 0x451188
mov dword [ebp - 0x18], 4
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jle 0x45117e
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x198]
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x18], ecx
dec dword [ebp - 0xc]
jns 0x451176
mov edx, dword [ebp - 0x198]
cmp dword [edx + 8], eax
je 0x4511e7
xor ecx, ecx
cmp dword [edx], 0x3c576436
mov edx, 0xb719d872
sete cl
cmp edx, ecx
mov ecx, dword [ebp - 0x18]
sbb esi, esi
add esi, 7
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
mov esi, ebx
setne dl
xor ecx, ecx
cmp edx, 0xfb1a
setle cl
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], eax
jne 0x4511e9
mov esi, eax
mov edx, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
add edx, 0xa22e
cmp eax, edx
setge cl
mov dword [ebp - 0xc], ecx
xor ecx, ecx
mov eax, dword [ebp - 0xc]
cmp eax, esi
mov eax, dword [ebp - 0x1c]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x198]
lea ecx, [ebp - 0x198]
setne dl
add edx, dword [eax + 4]
mov dword [ebp - 0x1c], edx
call fcn.00401f30
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 3
jg 0x451da3
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 4], eax
jmp 0x451256
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x468], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x451245
cmp dword [ebp - 0x20], 0x5baf43b7
jl 0x45129b
push 8
pop ecx
mov dword [ebp - 0x20], ecx
jmp 0x451293
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], eax
jmp 0x45128a
mov ecx, dword [ebp - 0x18]
mov dword [ebp + ecx*4 - 0x468], 0xbf8f0aa6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x451279
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1b
jge 0x45126d
jmp 0x4512b4
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x4512b4
push eax
push 0x1f4
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
xor eax, eax
push dword [ebp - 0x2c]
movdqa xmm0, xmmword [0xa5dbc0]
lea ecx, [ebp - 0x3b0]
push ecx
lea ecx, [ebp - 0x3c0]
mov dword [ebp - 0x18], eax
push ecx
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0xf8]
push eax
movdqu xmmword [ebp - 0x3c0], xmm0
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], eax
call fcn.00401f92
mov dword [ebp - 0x1c], 0xcdea
lea ecx, [ebp - 0x33c]
mov dword [ebp - 0x18], 0x260389a9
push 4
call fcn.00401e5e
mov dword [ebp - 0x30], 0x4b58fe4d
mov dword [ebp - 4], 0
jmp 0x451337
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x33c]
mov dword [eax + ecx*4], 0xabff5ecc
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x451324
dec dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0xf8]
xor eax, eax
cmp dword [esi + 0xc], 0xfffffff8
setne al
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
dec eax
neg eax
sbb eax, eax
xor edx, edx
neg eax
imul ecx, eax, 0xfaa2
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
mov eax, dword [ebp - 0xf8]
setle dl
mov eax, dword [eax + 8]
sub eax, edx
add dword [esi + 0xc], eax
mov eax, dword [ebp - 0x33c]
mov ecx, dword [esi + 0xc]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x33c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], 0
call fcn.00401f30
lea ecx, [ebp - 0xf8]
call fcn.00401f30
push 2
pop esi
mov dword [ebp - 0x1c], 0xe77e815f
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x28], 0xfffffff6
push esi
call fcn.00401e5e
mov dword [ebp - 0xc], 0x5b7cefa9
xor eax, eax
mov dword [ebp - 0x1c], 9
mov dword [ebp - 0x1c], 0xe74a6e8f
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], 0xfffffffc
mov dword [ebp - 0x14], eax
jmp 0x451401
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x4513f2
mov dword [ebp - 0x14], eax
jmp 0x45141c
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x20c], 0xfffffffb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x45140b
mov ecx, dword [ebp - 0x110]
xor edx, edx
cmp dword [ecx], eax
sete dl
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], eax
je 0x4514d4
mov ecx, dword [ebp - 0x110]
mov ecx, dword [ecx]
dec ecx
cmp ecx, 0xbde283bc
jne 0x451452
mov ecx, eax
cmp dword [ebp - 0xc], eax
je 0x451454
mov ecx, ebx
mov dword [ebp - 0x1c], ecx
xor edx, edx
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x110]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [esi + 4]
setl dl
imul ecx, edx, 0xa6e4
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [esi + 4]
jle 0x451482
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov ecx, dword [ebp - 0xc]
cmp ecx, 0x4b9a733e
mov ecx, dword [ebp - 0x110]
setle dl
xor ebx, ebx
cmp edx, 1
setl bl
sub ebx, dword [ecx]
neg ebx
sbb ebx, ebx
inc ebx
mov dword [ebp - 0xc], ebx
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x20c]
sub edx, dword [esi + 4]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0xffffffff
setne cl
xor ebx, ebx
inc ebx
mov dword [ebp - 0x20c], ecx
cmp ecx, 0xfffffffa
jge 0x4514d4
mov eax, ebx
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x110]
call fcn.00401f30
xor eax, eax
mov byte [ebp - 5], al
push 6
pop ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], 0xfffffff9
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], eax
jmp 0x451509
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x448], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x4514fc
mov ecx, dword [ebp - 0x10]
mov edx, ebx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x14], eax
jne 0x451533
mov edx, eax
xor ecx, ecx
cmp edx, 0x5fba2522
sete cl
xor edx, edx
test ecx, ecx
setle dl
sub edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, ecx
mov ecx, dword [ebp - 0x10]
setle bl
xor edx, edx
cmp ebx, ecx
setge dl
xor ebx, ebx
cmp edx, 0x1230
mov edx, 0xb6930509
setg bl
xor ecx, ecx
cmp ebx, 0x91cb
setge cl
imul ecx, ecx, 0xfe04
cmp edx, ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
inc ebx
imul ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x4515a8
mov dword [ebp - 0x2c], 0xfcecb2ec
mov dword [ebp - 0x1c], 0x55dbfe6b
mov dword [ebp - 0x18], ebx
dec dword [ebp - 0x1c]
jmp 0x451606
mov dword [ebp - 0x18], 0x19
jmp 0x451601
mov dword [ebp - 0x38], 0xbc1846e9
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], 0x194e4064
mov dword [ebp - 0x10], eax
jmp 0x4515f8
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], 0xe702b681
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], eax
je 0x4515e5
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
mov edx, 0x10000
sub edx, ecx
add edx, dword [ebp - 0x38]
mov dword [ebp - 0x30], edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x36
jle 0x4515c7
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
je 0x4515b1
mov dword [ebp - 0x10], eax
jmp 0x45166f
mov dword [ebp - 0x14], eax
jmp 0x451627
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x451624
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_UnionRect]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x451610
mov dword [ebp - 0x14], eax
jmp 0x451667
mov dword [ebp - 4], 0x52fa57a8
mov dword [ebp - 4], 0xfffffff8
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], eax
jl 0x451664
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45165f
push 0x2042
push eax
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
xor eax, eax
dec dword [ebp - 4]
jns 0x451647
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x451631
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jge 0x45160b
cmp byte [ebp - 5], 0
je 0x45176a
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], eax
jmp 0x451695
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x5c], 0xdd33
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x451687
mov dword [ebp - 0x14], eax
jmp 0x4516b0
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x84], 0xa76aabec
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x45169f
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], eax
jl 0x451762
mov dword [ebp - 4], 0xbd035c5
xor edx, edx
mov dword [ebp - 0x44], 0x28451d77
mov ecx, dword [ebp - 0x80]
mov ecx, dword [ebp + ecx*4 - 0x5c]
cmp ecx, 0x987f
setge dl
mov dword [ebp - 4], edx
cmp dword [ebp - 4], eax
jne 0x451736
mov ecx, dword [ebp - 0x80]
xor ebx, ebx
mov ecx, dword [ebp - 0x30]
mov esi, eax
mov ecx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x80]
mov ecx, dword [ebp + ecx*4 - 0x5c]
cmp ecx, 1
mov ecx, dword [ebp - 0x5c]
setg bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [ebp - 0x84]
setne dl
xor ebx, ebx
imul edx, edx, 0xc4f3
cmp edx, ecx
sete bl
mov dword [ebp - 4], ebx
xor ebx, ebx
mov ecx, dword [ebp - 0x80]
inc ebx
mov ecx, dword [ebp + ecx*4 - 0x5c]
cmp dword [ebp - 4], ecx
je 0x451738
mov esi, ebx
mov ecx, dword [ebp - 0x80]
push 1
mov edx, dword [ebp + ecx*4 - 0x5c]
mov ecx, ebx
sub ecx, esi
xor ebx, ebx
cmp ecx, edx
mov ecx, dword [ebp - 0x80]
setg bl
mov ecx, dword [ebp + ecx*4 - 0x5c]
add ecx, ebx
mov dword [ebp - 0x44], ecx
dec dword [ebp - 0x80]
pop ebx
jns 0x4516c2
push 0x293
push eax
call edi
mov dword [ebp - 0x10], 0xffffffff
xor eax, eax
mov dword [ebp - 0x1c], 0xdaa237f4
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x2c], 0x9235
mov dword [ebp - 4], eax
jmp 0x4517a1
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x4b0], 0x131d
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x451790
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
setle dl
cmp ebx, edx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, 0xcee3
setne dl
cmp edx, 0xfffffffc
je 0x4517dd
mov ecx, ebx
cmp dword [ebp - 0x10], eax
jne 0x4517df
mov ecx, eax
xor edx, edx
cmp ecx, 0x58efa97f
mov ecx, dword [ebp - 0x10]
setle dl
xor ebx, ebx
cmp edx, ecx
setge bl
xor edx, edx
add ebx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ebx, ecx
mov ecx, dword [ebp - 0x10]
setl dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [ebp - 0x10]
setg bl
xor edx, edx
cmp ebx, ecx
setge dl
add edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0xd2ae857b
mov ecx, dword [ebp - 0x10]
sbb edx, edx
xor ebx, ebx
neg edx
cmp edx, ecx
mov ecx, 0xffff
setle bl
cmp ecx, ebx
sbb esi, esi
neg esi
sub esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x30]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
setle dl
imul edx, edx, 0x9ab8
inc edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0x387f
setle cl
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x10], eax
jmp 0x451886
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x451883
push eax
push 0x22b9
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor eax, eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jle 0x45186c
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jg 0x451d93
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0xb4]
call fcn.00401e5e
mov dword [ebp - 0xc], 0xfffffffa
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0xbfad241d
mov dword [ebp - 0x20], 0x4810
mov dword [ebp - 4], eax
jmp 0x4518dd
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + edx*4], 0xd3df75dc
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x4518ca
mov dword [ebp - 0xc], eax
jmp 0x451b5b
mov dword [ebp - 0x10], 0xfffffffc
mov dword [ebp - 0x38], 0x7fd5d1af
mov dword [ebp - 0x40], 0x6201886a
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], eax
jl 0x451b18
push edi
lea ecx, [ebp - 0x12c]
call fcn.00401e5e
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x104]
push 3
call fcn.00401e5e
xor eax, eax
mov dword [ebp - 0x44], 3
mov dword [ebp - 0x14], eax
jmp 0x451953
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x12c]
mov dword [ecx + edx*4], 0xa11c1574
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x451940
mov dword [ebp - 0x14], eax
jmp 0x451970
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x104]
mov dword [ecx + edx*4], 0xfffffffb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x45195d
mov ecx, dword [ebp - 0x12c]
mov dword [ecx], eax
mov dword [ebp - 0x34], eax
xor ebx, ebx
mov dword [ebp - 0x2c], 0xfffffffc
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xb4]
cmp dword [ecx + edx*4], eax
setne bl
cmp ebx, dword [ecx + esi*4]
je 0x451a7c
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xb4]
cmp dword [ecx + edx*4], 0xfff80008
jne 0x4519c1
mov ecx, edi
cmp dword [ebp - 0x10], eax
jne 0x4519c3
mov ecx, eax
mov esi, dword [ebp - 0x10]
xor edx, edx
add ecx, ecx
cmp ecx, 0x31cf6a12
mov ecx, 0xbaa6f4ed
setge dl
cmp ecx, edx
sbb edx, edx
neg edx
sub edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xb4]
neg edx
sbb edx, edx
inc edx
add edx, dword [ecx + esi*4]
mov ecx, dword [ebp - 4]
cmp edi, edx
sbb edx, edx
inc edx
sub edx, ecx
je 0x451a02
mov esi, edi
cmp dword [ebp - 0x34], eax
jne 0x451a04
mov esi, eax
mov edx, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp - 0xb4]
cmp esi, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x34]
setge bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [ebp - 0x12c]
setl dl
xor ebx, ebx
sub edx, dword [ecx]
mov ecx, dword [ebp - 0x30]
cmp edx, ecx
mov ecx, dword [ebp - 4]
setl bl
xor edx, edx
cmp ebx, ecx
setne dl
test edx, edx
jne 0x451a42
mov ecx, dword [ebp - 0x34]
mov edx, edi
cmp dword [ebp - 0x10], eax
jne 0x451a4b
mov edx, eax
mov ecx, dword [ebp - 0x104]
mov dword [ecx], edx
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
dec esi
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp ecx, esi
setne dl
neg edx
jne 0x451a78
mov ecx, dword [ebp - 0xb4]
cmp dword [ecx], eax
je 0x451a7c
mov edx, edi
jmp 0x451a7e
mov edx, eax
mov ecx, dword [ebp - 0xc]
sub edx, ecx
mov dword [ebp - 0x44], edx
dec dword [ebp - 0x20]
mov ecx, dword [ebp - 0x12c]
dec dword [ecx]
jns 0x45197e
mov eax, dword [ebp - 0x10]
xor edx, edx
mov eax, dword [ebp - 0x104]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
dec eax
add ecx, eax
imul ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setle dl
sub edx, 0xcc8f
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x104]
setne cl
xor edx, edx
add ecx, dword [eax + 4]
mov eax, dword [ebp - 0x38]
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setne dl
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x104]
setne cl
mov dword [eax], ecx
lea ecx, [ebp - 0x104]
call fcn.00401f30
lea ecx, [ebp - 0x12c]
call fcn.00401f30
dec dword [ebp - 0x10]
jns 0x451912
xor eax, eax
mov edx, dword [ebp - 0x40]
xor ebx, ebx
mov ecx, dword [ebp - 0x38]
cmp ecx, edx
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xb4]
setne bl
mov dword [ebp - 0x44], ebx
xor ebx, ebx
cmp dword [ecx], edx
mov edx, dword [ebp - 0x40]
setl bl
xor ecx, ecx
cmp dword [ebp - 0x44], ebx
setl cl
sub edx, ecx
neg edx
sbb edx, edx
add edx, 2
cmp edx, 0xe03a8461
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x28], ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], eax
jle 0x4518ea
lea ecx, [ebp - 0xb4]
call fcn.00401f30
mov dword [ebp - 0x28], 0xffffffff
lea ecx, [ebp - 0x294]
push 3
call fcn.00401e5e
mov dword [ebp - 0x20], 0xe2236432
mov dword [ebp - 0x28], 0x58bd4dfb
mov dword [ebp - 4], 0
jmp 0x451bad
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x294]
mov dword [eax + ecx*4], 0xb9b55bb2
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x451b9a
mov dword [ebp - 0x20], 0
jmp 0x451be5
mov dword [ebp - 0x1c], 0x7a73d2d6
xor edx, edx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
setl dl
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x294]
mov dword [eax + edx*4], ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jle 0x451bbc
lea ecx, [ebp - 0x294]
call fcn.00401f30
push 4
lea ecx, [ebp - 0x2f4]
call fcn.00401e5e
mov dword [ebp - 0x20], 9
xor edx, edx
mov dword [ebp - 4], 0xfffffff6
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x28], 7
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], 0x2aa6
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, dword [ebp - 0x20]
jne 0x451c45
cmp dword [ebp - 4], eax
jne 0x451c48
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, ecx
mov ecx, dword [ebp - 0x20]
setl bl
xor edx, edx
cmp ebx, ecx
setne dl
mov dword [ebp - 0x28], edx
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x451c85
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x451c9b
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x188], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x451c8a
push dword [ebp - 0x2c]
movdqa xmm0, xmmword [0xa5dbe0]
lea ecx, [ebp - 0x3c0]
push ecx
lea ecx, [ebp - 0x3d0]
mov dword [ebp - 0x1b4], eax
push ecx
push eax
lea ecx, [ebp - 0x1b4]
mov dword [ebp - 0x1b0], eax
movdqu xmmword [ebp - 0x3d0], xmm0
mov dword [ebp - 0x1ac], eax
call fcn.00401f92
mov esi, dword [ebp - 0x1b4]
and dword [esi + 8], 0
mov byte [ebp - 5], 0
cmp byte [ebp - 5], 0
je 0x451d07
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
inc dword [esi + 8]
cmp dword [esi + 8], 0x1c
jle 0x451ce9
lea ecx, [ebp - 0x1b4]
call fcn.00401f30
mov dword [ebp - 0x14], 0
jmp 0x451d37
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2f4]
mov dword [eax + ecx*4], 0x5189d9e6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x451d24
mov dword [ebp - 0x28], 0
xor ebx, ebx
mov dword [ebp - 0x1c], edi
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x2f4]
setl bl
sub ecx, dword [eax]
sub ecx, ebx
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x2f4]
call fcn.00401f30
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x45189c
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 3
push 1
pop ebx
jle 0x451239
lea ecx, [ebp - 0x2ac]
call fcn.00401f30
mov eax, dword [ebp - 0x78]
cmp dword [eax], 0
je 0x45484f
push dword [eax]
push 0
push dword [eax + 4]
call fcn.0044f1cb
mov dword [ebp - 0x2c], ebx
add esp, 0xc
mov dword [ebp - 0x2c], 0xffffffff
xor eax, eax
mov dword [ebp - 4], 0x37bc7528
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 0xe1ca2961
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x10], eax
jmp 0x451e03
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x368], 0xb5ca9869
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x451df2
push 2
mov dword [ebp - 0x10], eax
pop esi
jmp 0x451e21
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x440], 5
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x451e10
mov dword [ebp - 0x10], eax
jmp 0x451e3c
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0xa8], 0xaeb5
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x451e2b
dec dword [ebp - 0x1c]
mov dword [ebp - 4], eax
jmp 0x451e5e
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x451e5b
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
xor eax, eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x18
jne 0x451e49
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], 0xfffb
mov dword [ebp - 0x1c], 0xb1d6a56c
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x34], 0xc8951bb3
push 3
mov dword [ebp - 0x1c], 0x8f08877e
mov dword [ebp - 0x14], eax
pop edi
jmp 0x451ea3
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x138], 0xbaeef20f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x451e92
mov dword [ebp - 0x14], eax
jmp 0x451ebe
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x480], 0xd6c34f1d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x451ead
cmp dword [ebp - 0x138], eax
je 0x451f79
mov ecx, dword [ebp - 0x134]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 4], 0xfffc
sbb edx, edx
inc edx
sub edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
neg edx
sbb edx, edx
inc edx
sub ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
sub ecx, 0x3fab614
cmp ecx, 0x27f0
mov ecx, dword [ebp - 0x18]
setg dl
xor ebx, ebx
cmp ecx, edx
mov ecx, dword [ebp - 0x38]
setne bl
xor edx, edx
cmp ebx, ecx
setg dl
xor ebx, ebx
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x138]
cmp edx, ecx
mov ecx, dword [ebp - 0x138]
setge bl
xor edx, edx
cmp ebx, ecx
setl dl
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x34], eax
je 0x451f4b
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
xor ebx, ebx
mov ecx, dword [ebp - 0x138]
cmp ecx, edx
setle bl
xor edx, edx
mov dword [ebp - 0x1c], ebx
mov ecx, dword [ebp - 0x1c]
cmp ecx, 0xfffffffc
setge dl
xor ebx, ebx
add edx, 0x21b18574
inc ebx
cmp edx, dword [ebp - 0x38]
jl 0x451f79
mov eax, ebx
mov dword [ebp - 0x478], eax
lea ecx, [ebp - 0x2c4]
mov dword [ebp - 0x14], 0x5d6c05ba
push edi
call fcn.00401e5e
push esi
lea ecx, [ebp - 0x324]
call fcn.00401e5e
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x451fb8
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2c4]
mov dword [ecx + edx*4], 0x7d45db34
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x451fa5
mov dword [ebp - 0x10], eax
jmp 0x451fd5
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x324]
mov dword [ecx + edx*4], 6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x451fc2
mov dword [ebp - 0x10], eax
jmp 0x451fec
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x178], eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x451fdf
mov esi, dword [ebp - 0x2c4]
mov ecx, dword [esi]
sub ecx, dword [esi + 4]
neg ecx
sbb ecx, ecx
xor edx, edx
add ecx, 0xfe47
cmp ecx, 0x7ccc
mov ecx, dword [ebp - 0x324]
setl dl
mov dword [ecx], edx
xor ecx, ecx
cmp dword [esi], eax
sete cl
mov dword [ebp - 0x178], ecx
mov byte [ebp - 5], al
cmp byte [ebp - 5], al
je 0x452034
call dword [sym.imp.USER32.dll_DestroyCaret]
lea ecx, [ebp - 0x324]
call fcn.00401f30
lea ecx, [ebp - 0x2c4]
call fcn.00401f30
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
xor eax, eax
mov dword [ebp - 0x2c], eax
mov byte [ebp - 5], al
cmp byte [ebp - 5], al
je 0x45207a
push 0x25bb
push 0xb36
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawEdge]
xor eax, eax
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x452091
push 0x2515
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xor eax, eax
push 2
mov dword [ebp - 4], eax
pop esi
jmp 0x4520a6
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x204], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x452099
mov dword [ebp - 0x14], eax
jmp 0x45278a
mov dword [ebp - 0x18], 0xeede0b40
lea ecx, [ebp - 0x1c0]
push esi
call fcn.00401e5e
xor eax, eax
mov dword [ebp - 0x28], 0x4e55b65a
mov dword [ebp - 0x10], eax
jmp 0x4520e7
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c0]
mov dword [ecx + edx*4], 0x342eb90d
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x4520d4
mov dword [ebp - 0x10], eax
jmp 0x4520ff
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x4c], 0x13638ecf
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x4520f1
mov dword [ebp - 0x4c], ebx
cmp dword [ebp - 0x4c], eax
jl 0x452168
mov dword [ebp - 0x28], 0x18c84b7b
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x1c0]
mov ecx, dword [edx + ecx*4]
mov dword [edx + esi*4], ecx
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x4c]
add ecx, 4
add ecx, edx
jne 0x45213f
mov edx, eax
cmp dword [ebp - 0x4c], eax
je 0x452141
mov edx, ebx
mov ecx, dword [ebp - 0x4c]
sub edx, ecx
mov ecx, 0xffff
add edx, ecx
je 0x452156
mov edx, ebx
cmp dword [ebp - 0x4c], eax
jne 0x452158
mov edx, eax
mov ecx, dword [ebp - 0x1c0]
sub edx, dword [ecx]
mov dword [ebp - 0x28], edx
dec dword [ebp - 0x4c]
jns 0x45210c
lea ecx, [ebp - 0x1c0]
call fcn.00401f30
movdqa xmm0, xmmword [0xa5dbb0]
xor eax, eax
mov dword [ebp - 0x2c], eax
push 4
mov dword [ebp - 0x3c], eax
pop esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x40], 0xffffffff
push 8
pop ecx
push dword [ebp - 0xa8]
mov dword [ebp - 0x20], 0x40194ddb
mov dword [ebp - 0x2c], 0xfffffff9
mov dword [ebp - 0x10], 0xcc2fdcb
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x3d0]
push ecx
lea ecx, [ebp - 0x3e0]
mov dword [ebp - 0x28], 0xfffffff8
push ecx
mov dword [ebp - 0x44], 0xeb2391cb
lea ecx, [ebp - 0xcc]
push eax
movdqu xmmword [ebp - 0x3e0], xmm0
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], eax
call fcn.00401f92
mov dword [ebp - 0x38], 0x100
mov eax, 0xffff
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], 0
jmp 0x452267
mov dword [ebp - 0x2c], 0xffffffff
lea ecx, [ebp - 0x37c]
push esi
call fcn.00401e5e
mov dword [ebp - 0x2c], 0x595ad338
push 8
mov dword [ebp - 0x2c], 0x423b19d8
pop eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
jmp 0x452251
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x37c]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x45223e
dec dword [ebp - 0x1c]
lea ecx, [ebp - 0x37c]
call fcn.00401f30
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffe3
je 0x45220e
mov dword [ebp - 0x10], 0
jmp 0x4522eb
mov dword [ebp - 0x1c], 0xfffffffe
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
xor edx, edx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
cmp eax, ecx
mov eax, dword [ebp - 0xcc]
setg dl
xor ecx, ecx
cmp edx, 0xffffffff
setle cl
mov dword [eax + esi*4], ecx
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x20]
je 0x4522ca
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 4], 0
jne 0x4522cd
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jle 0x452276
lea ecx, [ebp - 0xcc]
call fcn.00401f30
mov dword [ebp - 0x2c], 0xb43d2717
lea ecx, [ebp - 0x24c]
mov eax, 0x197e7c14
mov dword [ebp - 0x28], 0xee491ba6
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x13c], eax
push 2
call fcn.00401e5e
mov esi, 0xf2f4a8b1
xor eax, eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], 0xfffffffc
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 0xfde2bbef
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x10], eax
jmp 0x45236d
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24c]
mov dword [ecx + edx*4], 0x75c9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x45235a
mov dword [ebp - 0x10], eax
jmp 0x452389
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x4e4], 0x99d94b4b
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x452378
mov eax, dword [ebp - 0x24c]
lea ecx, [ebp - 0x24c]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x1c]
call fcn.00401f30
mov dword [ebp - 0x20], 0xc8210466
lea ecx, [ebp - 0x258]
push 2
call fcn.00401e5e
mov dword [ebp - 0x28], esi
xor eax, eax
mov dword [ebp - 0x2c], 0xfffffffc
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 0xfde2bbef
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x10], eax
jmp 0x4523f0
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x258]
mov dword [ecx + edx*4], 0x75c9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x4523dd
mov dword [ebp - 0x10], eax
jmp 0x45240c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x4f4], 0x99d94b4b
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x4523fb
mov eax, dword [ebp - 0x258]
lea ecx, [ebp - 0x258]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x1c]
call fcn.00401f30
mov dword [ebp - 0x10], 0xffffffff
xor eax, eax
mov dword [ebp - 0x1c], 0xdaa237f4
mov dword [ebp - 0x28], 0xfffffff7
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], 0x9235
mov dword [ebp - 4], eax
jmp 0x452462
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x4bc], 0x131d
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x452451
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
setle dl
cmp ebx, edx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, 0xcee3
setne dl
cmp edx, 0xfffffffc
je 0x45249e
mov ecx, ebx
cmp dword [ebp - 0x10], eax
jne 0x4524a0
mov ecx, eax
xor edx, edx
cmp ecx, 0x58efa97f
mov ecx, dword [ebp - 0x10]
setle dl
xor ebx, ebx
cmp edx, ecx
push 2
setge bl
xor edx, edx
add ebx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ebx, ecx
mov ecx, dword [ebp - 0x10]
setl dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [ebp - 0x10]
setg bl
xor edx, edx
cmp ebx, ecx
setge dl
add edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0xd2ae857b
mov ecx, dword [ebp - 0x10]
sbb edx, edx
xor ebx, ebx
neg edx
cmp edx, ecx
mov ecx, 0xffff
setle bl
cmp ecx, ebx
sbb esi, esi
neg esi
sub esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x28]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
pop esi
setle dl
imul edx, edx, 0x9ab8
inc edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0x387f
setle cl
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x10], eax
jmp 0x45254a
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x452547
push eax
push 0x22b9
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor eax, eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jle 0x452530
xor ebx, ebx
mov dword [ebp - 0x18], esi
inc ebx
cmp dword [ebp - 0x18], 3
jl 0x452787
mov dword [ebp - 0x38], 0x7d7c1188
lea ecx, [ebp - 0x240]
mov dword [ebp - 0x1c], 0xf782
push ebx
call fcn.00401e5e
mov dword [ebp - 0x34], 0xb8561371
mov dword [ebp - 0x28], 0x68939f5f
mov dword [ebp - 0x30], 0x382e
mov dword [ebp - 4], 0
jmp 0x4525a6
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x240]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x452597
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x34]
test eax, eax
setle cl
inc ecx
je 0x4525be
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x240]
or dword [eax], 0xffffffff
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov byte [ebp - 5], 0
cmp byte [ebp - 5], 0
je 0x45260b
push 0x1c1f
push 0x223c
push 0x156d
push 0x261c
push 0xc83
push 0x12e4
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RoundRect]
lea ecx, [ebp - 0x240]
call fcn.00401f30
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x3b0]
push esi
call fcn.00401e5e
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x45263d
cmp dword [ebp - 0x10], 4
jl 0x45262c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jge 0x4520b3
mov dword [ebp - 0xc], 0x2667
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor edx, edx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x34], 0x2275dd36
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x28], 0x3e1fe01
mov dword [ebp - 0x2c], 0x1994
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
cmp ecx, ebx
setg dl
xor ecx, ecx
add edx, dword [ebp - 0xc]
cmp edx, 0x13b01d91
setg cl
xor ebx, ebx
cmp ecx, esi
mov ecx, dword [ebp - 0x14]
sete bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [ebp - 0xc]
setne dl
sub ecx, edx
je 0x452808
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x452839
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x452839
mov dword [ebp - 0x14], 0xffffffe6
jmp 0x452833
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x452829
push 0x124e
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
xor eax, eax
mov dword [ebp - 4], 0x3e25468d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x3c
jg 0x452811
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
je 0x452855
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret