Function at 0x10045200
Capabilities:
Delete registry key
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10075795
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1bc
push esi
movzx eax, byte [ebp + 8]
test eax, eax
je 0x10045583
mov dword [ebp - 0x14], 0x387fb0b0
mov dword [ebp - 0x4c], 0
jmp 0x10045242
mov eax, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 3
jge 0x10045258
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0x160], 0xffffffff
jmp 0x1004523b
mov dword [ebp - 0x14], 0
jmp 0x10045268
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x1004527e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x160], 0x71c1ec2d
jmp 0x10045261
mov dword [ebp - 0x14], 2
jmp 0x1004528e
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x10045343
mov dword [ebp - 0x44], 0
jmp 0x100452a8
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 2
jge 0x100452be
mov eax, dword [ebp - 0x44]
mov dword [ebp + eax*4 - 0x114], 0xffffffff
jmp 0x100452a1
push 4
pop eax
imul eax, eax, 0
mov dword [ebp + eax - 0x114], 0
jmp 0x100452ec
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x114]
inc eax
push 4
pop ecx
imul ecx, ecx, 0
mov dword [ebp + ecx - 0x114], eax
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x114], 2
jg 0x1004533e
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x160]
mov dword [ebp + ecx*4 - 0x160], eax
mov byte [ebp - 0x23], 0
movzx eax, byte [ebp - 0x23]
test eax, eax
je 0x1004533c
push 0
push 0x7b0
push 0
push 0x255a
push 0x2371
push 0
push 0xb43
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
jmp 0x100452d1
jmp 0x10045287
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x1bc], 0xa631
mov byte [ebp - 0x25], 0
movzx eax, byte [ebp - 0x25]
test eax, eax
je 0x1004536c
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov byte [ebp - 0x22], 0
movzx eax, byte [ebp - 0x22]
test eax, eax
je 0x10045395
push 0
push 0x23a3
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x50], 0
jmp 0x100453b8
mov eax, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 2
jge 0x100453ce
mov eax, dword [ebp - 0x50]
mov dword [ebp + eax*4 - 0x188], 0xb90da115
jmp 0x100453b1
push 4
pop eax
shl eax, 0
mov eax, dword [ebp + eax - 0x188]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x34], 0
jmp 0x100453ee
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 6
jle 0x1004540d
mov byte [ebp - 0x24], 0
movzx eax, byte [ebp - 0x24]
test eax, eax
je 0x1004540b
push 0x957
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x100453e7
mov eax, dword [ebp - 0x118]
movzx eax, byte [eax]
test eax, eax
je 0x10045464
mov dword [ebp - 0x17c], 0xffffffff
mov byte [ebp - 0x26], 0
movzx eax, byte [ebp - 0x26]
test eax, eax
je 0x10045438
push 0
call dword [sym.imp.GDI32.dll_CreateBitmapIndirect]
mov byte [ebp - 0x28], 0
movzx eax, byte [ebp - 0x28]
test eax, eax
je 0x1004545c
push 0
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_PlayEnhMetaFile]
push 0
call dword [sym.imp.KERNEL32.dll_SetThreadLocale]
mov dword [ebp - 0x2c], 0x9bf3
mov dword [ebp - 0x20], 1
mov dword [ebp - 0xf0], 0x6dd2
mov dword [ebp - 0x130], 0x7b1b0cad
mov dword [ebp - 0x190], 4
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x20], eax
je 0x100454aa
mov dword [ebp - 0x140], 1
jmp 0x100454b1
and dword [ebp - 0x140], 0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x20], eax
je 0x100454ce
mov dword [ebp - 0x94], 1
jmp 0x100454d5
and dword [ebp - 0x94], 0
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x20]
jge 0x100454ec
mov dword [ebp - 0x70], 1
jmp 0x100454f0
and dword [ebp - 0x70], 0
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0xf0]
jl 0x1004550d
mov dword [ebp - 0x74], 1
jmp 0x10045511
and dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x74], eax
jle 0x10045525
mov dword [ebp - 0x148], 1
jmp 0x1004552c
and dword [ebp - 0x148], 0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0xf0], 0x5764
jne 0x10045550
mov eax, 0xd081
test eax, eax
jne 0x10045550
and dword [ebp - 0x78], 0
jmp 0x10045557
mov dword [ebp - 0x78], 1
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x130], eax
mov byte [ebp - 0x21], 0
movzx eax, byte [ebp - 0x21]
test eax, eax
je 0x1004557e
push 0x1fe4
push 0x1709
push 0
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
jmp 0x10045d29
mov dword [ebp - 0x10], 0xaeef20fe
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x54], 0x57497f3c
mov dword [ebp - 0x13c], 0xbd5d
push 3
lea ecx, [ebp - 0x100]
call fcn.10022f94
and dword [ebp - 4], 0
push 1
lea ecx, [ebp - 0x1c8]
call fcn.10022f94
mov byte [ebp - 4], 1
mov dword [ebp - 0x1a8], 0xadd1eb10
mov dword [ebp - 0xac], 0x549e1f9a
mov dword [ebp - 0x194], 5
mov dword [ebp - 0x18], 0
jmp 0x100455f9
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x10045615
push dword [ebp - 0x18]
lea ecx, [ebp - 0x100]
call fcn.10023032
mov dword [eax], 1
jmp 0x100455f2
mov dword [ebp - 0x18], 0
jmp 0x10045625
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 1
jge 0x1004563e
push dword [ebp - 0x18]
lea ecx, [ebp - 0x1c8]
call fcn.10023032
or dword [eax], 0xffffffff
jmp 0x1004561e
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x170], eax
cmp dword [ebp - 0x10], 0
jne 0x10045651
cmp dword [ebp - 0x10], 0
mov eax, 0xfbf68593
test eax, eax
jne 0x10045669
cmp dword [ebp - 0x10], 0
jne 0x10045669
and dword [ebp - 0xb8], 0
jmp 0x10045673
mov dword [ebp - 0xb8], 1
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0xb8], eax
je 0x10045687
mov dword [ebp - 0x80], 1
jmp 0x1004568b
and dword [ebp - 0x80], 0
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x80], eax
jg 0x1004569f
mov dword [ebp - 0xd8], 1
jmp 0x100456a6
and dword [ebp - 0xd8], 0
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xd8]
jge 0x100456c0
cmp dword [ebp - 0x10], 0
jne 0x100456c0
and dword [ebp - 0x88], 0
jmp 0x100456ca
mov dword [ebp - 0x88], 1
cmp dword [ebp - 0x88], 0x6ee4
jne 0x100456e2
mov dword [ebp - 0x124], 1
jmp 0x100456e9
and dword [ebp - 0x124], 0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x164], eax
xor eax, eax
inc eax
jne 0x10045707
push 0xfffffffffffffffe
pop eax
test eax, eax
jne 0x10045707
and dword [ebp - 0xc0], 0
jmp 0x10045711
mov dword [ebp - 0xc0], 1
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0xfffffff7
je 0x1004572c
mov dword [ebp - 0x90], 1
jmp 0x10045733
and dword [ebp - 0x90], 0
cmp dword [ebp - 0x90], 9
jbe 0x1004574b
cmp dword [ebp - 0x38], 0
jne 0x1004574b
and dword [ebp - 0xe8], 0
jmp 0x10045755
mov dword [ebp - 0xe8], 1
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0xe8], eax
jg 0x1004576c
mov dword [ebp - 0x98], 1
jmp 0x10045773
and dword [ebp - 0x98], 0
mov eax, dword [ebp - 0x98]
dec eax
jne 0x10045789
xor eax, eax
jne 0x10045789
and dword [ebp - 0xc8], 0
jmp 0x10045793
mov dword [ebp - 0xc8], 1
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0xc8], eax
je 0x100457aa
mov dword [ebp - 0xa0], 1
jmp 0x100457b1
and dword [ebp - 0xa0], 0
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x54]
cmp eax, dword [ebp - 0x10]
jg 0x10045a36
mov dword [ebp - 0x58], 0x9ee52129
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x3c], 0
jmp 0x100457ea
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 3
jge 0x10045800
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x10c], 0xffffffff
jmp 0x100457e3
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x10c], 0
jne 0x1004590e
cmp dword [ebp - 0x10], 0
je 0x1004582f
cmp dword [ebp - 0x13c], 0
je 0x1004582f
mov dword [ebp - 0xd0], 1
jmp 0x10045836
and dword [ebp - 0xd0], 0
cmp dword [ebp - 0x10], 1
jge 0x10045848
mov dword [ebp - 0xe0], 1
jmp 0x1004584f
and dword [ebp - 0xe0], 0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x10c]
add eax, dword [ebp - 0xe0]
push 4
pop ecx
imul ecx, ecx, 0
cmp eax, dword [ebp + ecx - 0x10c]
jg 0x1004587d
mov dword [ebp - 0xa8], 1
jmp 0x10045884
and dword [ebp - 0xa8], 0
push 2
lea ecx, [ebp - 0x100]
call fcn.10023032
mov ecx, dword [ebp - 0xa8]
cmp ecx, dword [eax]
jl 0x100458a7
mov dword [ebp - 0xb0], 1
jmp 0x100458ae
and dword [ebp - 0xb0], 0
mov eax, dword [ebp - 0xd0]
sub eax, dword [ebp - 0xb0]
cmp eax, dword [ebp - 0x10]
je 0x100458c8
mov dword [ebp - 0x6c], 1
jmp 0x100458cc
and dword [ebp - 0x6c], 0
push 2
lea ecx, [ebp - 0x100]
call fcn.10023032
mov ecx, dword [ebp - 0x6c]
add ecx, dword [eax]
cmp ecx, 0x6daafd55
jne 0x100458ef
mov dword [ebp - 0x68], 1
jmp 0x100458f3
and dword [ebp - 0x68], 0
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x5c]
jne 0x10045907
cmp dword [ebp - 0x54], 0
jne 0x10045907
and dword [ebp - 0x7c], 0
jmp 0x1004590e
mov dword [ebp - 0x7c], 1
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x10c]
imul eax, dword [ebp - 0x58]
mov dword [ebp - 0x38], eax
push 2
lea ecx, [ebp - 0x100]
call fcn.10023032
push 2
lea ecx, [ebp - 0x100]
call fcn.10023032
push 4
pop ecx
imul ecx, ecx, 0
mov ecx, dword [ebp + ecx - 0x10c]
cmp dword [eax], ecx
jg 0x10045959
mov dword [ebp - 0x84], 1
jmp 0x10045960
and dword [ebp - 0x84], 0
push 4
pop eax
shl eax, 0
mov eax, dword [ebp + eax - 0x10c]
cmp dword [ebp - 0x84], eax
jne 0x10045981
mov dword [ebp - 0x8c], 1
jmp 0x10045988
and dword [ebp - 0x8c], 0
push 4
pop eax
shl eax, 1
mov eax, dword [ebp + eax - 0x10c]
cmp dword [ebp - 0x8c], eax
jne 0x100459a5
mov dword [ebp - 0x64], 1
jmp 0x100459a9
and dword [ebp - 0x64], 0
push 2
lea ecx, [ebp - 0x100]
call fcn.10023032
mov ecx, dword [ebp - 0x64]
sub ecx, 9
neg ecx
imul ecx, dword [eax]
cmp ecx, dword [ebp - 0x58]
jle 0x100459d2
mov dword [ebp - 0x9c], 1
jmp 0x100459d9
and dword [ebp - 0x9c], 0
cmp dword [ebp - 0x9c], 0xe203d7e6
ja 0x100459f1
mov dword [ebp - 0xa4], 1
jmp 0x100459f8
and dword [ebp - 0xa4], 0
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0xa4], eax
jge 0x10045a0f
mov dword [ebp - 0x12c], 1
jmp 0x10045a16
and dword [ebp - 0x12c], 0
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x38], eax
jmp 0x10045ad3
mov dword [ebp - 0x134], 0xfffffff9
mov dword [ebp - 0x180], 0
push 4
lea ecx, [ebp - 0x1b8]
call fcn.10022f94
mov byte [ebp - 4], 2
mov dword [ebp - 0x1c], 0
jmp 0x10045a6b
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 1
jge 0x10045a81
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1ac], 0x478c2ba2
jmp 0x10045a64
mov dword [ebp - 0x1c], 0
jmp 0x10045a91
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x10045aad
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x1b8]
call fcn.10023032
mov dword [eax], 6
jmp 0x10045a8a
mov dword [ebp - 0x134], 0x45e4bba
mov eax, dword [ebp - 0xac]
dec eax
mov dword [ebp - 0xac], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1b8]
call fcn.10023016
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c8]
call fcn.10023016
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x100]
call fcn.10023016
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
movzx eax, byte [eax]
test eax, eax
je 0x10045c7b
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x48], 0
mov dword [ebp - 0xbc], 0xfffffff7
mov dword [ebp - 0x60], 0x1ac3dc99
mov dword [ebp - 0xc4], 2
mov dword [ebp - 0x128], 1
mov byte [ebp - 0x27], 0
movzx eax, byte [ebp - 0x27]
test eax, eax
je 0x10045b75
push 0
push 0
push 0x2070
push 0
push 0x1b10
push 0
push 0x20eb
push 0
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
jne 0x10045bc5
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18c], eax
imul eax, dword [ebp - 0x30], 0x36de
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0x2dd78f4f
jle 0x10045ba9
mov dword [ebp - 0xb4], 1
jmp 0x10045bb0
and dword [ebp - 0xb4], 0
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x60]
cmp dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x60]
cmp dword [ebp - 0xc4], eax
jle 0x10045bdc
mov dword [ebp - 0xcc], 1
jmp 0x10045be3
and dword [ebp - 0xcc], 0
mov eax, dword [ebp - 0xc4]
imul eax, dword [ebp - 0xcc]
cmp dword [ebp - 0x30], eax
jge 0x10045c01
mov dword [ebp - 0xd4], 1
jmp 0x10045c08
and dword [ebp - 0xd4], 0
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0xd4], eax
je 0x10045c1f
mov dword [ebp - 0xdc], 1
jmp 0x10045c26
and dword [ebp - 0xdc], 0
mov eax, dword [ebp - 0x60]
cmp dword [ebp - 0xdc], eax
jge 0x10045c3d
mov dword [ebp - 0xe4], 1
jmp 0x10045c44
and dword [ebp - 0xe4], 0
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0xe4]
jne 0x10045c5b
mov dword [ebp - 0xec], 1
jmp 0x10045c62
and dword [ebp - 0xec], 0
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x128], eax
push 0
push 0x10a8
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0x1a4], 0xca631852
mov dword [ebp - 0x168], 0xffffffff
mov dword [ebp - 0x16c], 0xc4b4e126
mov dword [ebp - 0x174], 0xa624cdb8
push 2
lea ecx, [ebp - 0x154]
call fcn.10022f94
mov dword [ebp - 4], 3
mov dword [ebp - 0xf4], 0xe4d9
mov dword [ebp - 0x40], 0
jmp 0x10045cd1
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 2
jge 0x10045ced
push dword [ebp - 0x40]
lea ecx, [ebp - 0x154]
call fcn.10023032
mov dword [eax], 0xae77ab39
jmp 0x10045cca
mov eax, dword [ebp - 0xf4]
dec eax
mov dword [ebp - 0xf4], eax
push 1
lea ecx, [ebp - 0x154]
call fcn.10023032
mov esi, eax
push 1
lea ecx, [ebp - 0x154]
call fcn.10023032
mov ecx, dword [esi]
mov dword [eax], ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x154]
call fcn.10023016
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret