Function at 0x4189bf
Capabilities:
Delete registry key
Get disk information
Get file system object information
Resolve function by parsing pe exports
Set environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1e4
push ebx
xor ebx, ebx
mov dword [esp + 0xa0], edx
inc ebx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 0xfffffffb
push esi
mov dword [esp + 0x18], 0xffffffff
push edi
mov dword [esp + 0xc], 0
jmp 0x418a0d
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x48], 0x3e9323d1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x4189fd
mov dword [esp + 0xc], 0
jmp 0x418a30
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x1b8], 0x7662b0a9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x418a1d
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], eax
test eax, eax
jne 0x418a8d
mov eax, dword [esp + 0x48]
imul eax, eax, 0xd1c
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
xor edx, edx
mov eax, dword [esp + 0x18]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setge dl
xor ecx, ecx
cmp edx, eax
push 3
setl cl
xor eax, eax
cmp ecx, 0x5c8
lea ecx, [esp + 0x11c]
setg al
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x28], 0xced8f6ef
mov dword [esp + 0x14], 0xe9c96c79
mov dword [esp + 0x20], 0xffffffff
call fcn.00416ef7
xor eax, eax
push 2
mov dword [esp + 0x1c], eax
pop edi
jmp 0x418b05
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0xe0], 0x9e923e64
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x418af2
mov dword [esp + 0x18], eax
jmp 0x418b23
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x118]
mov dword [ecx + edx*4], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x418b11
mov dword [esp + 0x18], eax
jmp 0x418b43
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x90], 0x388a0193
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x418b30
cmp dword [esp + 0x10], eax
jne 0x418b5f
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xe4], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x118]
cmp dword [eax + 8], ebx
sete cl
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x118]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x90], eax
call fcn.00417267
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc], 0xf6cbcb1a
mov dword [esp + 0x1c], 6
mov dword [esp + 0x1c], 0x846c8c5c
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0xc], 0
je 0x418bf2
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp eax, ebx
setl cl
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
sub eax, 0x90ae7359
neg eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0xc]
jl 0x418c20
cmp dword [esp + 0x18], 0
jne 0x418c20
xor ecx, ecx
jmp 0x418c22
mov ecx, ebx
mov eax, dword [esp + 0xc]
push 0xfffffffffffffff7
pop esi
sub ecx, eax
je 0x418cff
mov dword [esp + 0x40], 0x3fa3
mov dword [esp + 0xc], 0
jmp 0x418ce5
push edi
lea ecx, [esp + 0xb4]
call fcn.00416ef7
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x418c71
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xb0]
mov dword [ecx + edx*4], 0xb136
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x418c5b
mov dword [esp + 0x18], 0xfffffff5
jmp 0x418cc9
mov dword [esp + 0x10], eax
mov dword [esp + 0x10], eax
jmp 0x418c9e
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xac], 0x540f213e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x418c8b
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], eax
jl 0x418cbd
mov ecx, dword [esp + 0xb0]
inc dword [ecx]
dec dword [esp + 0x10]
jns 0x418cae
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jle 0x418c81
lea ecx, [esp + 0xb0]
cmp dword [esp + 0x18], eax
jne 0x418cf5
call fcn.00417267
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x2d
jle 0x418c46
jmp 0x418d9a
call fcn.00417267
jmp 0x418d9a
mov dword [esp + 0x24], 0xb2b0
mov dword [esp + 0x1c], esi
cmp dword [esp + 0xc], 0
je 0x418d4a
cmp dword [esp + 0x1c], 0
jne 0x418d38
mov eax, dword [esp + 0x18]
sub eax, 0xd71021f5
neg eax
sbb eax, eax
inc eax
sub eax, dword [esp + 0x24]
sub eax, 0xa
mov dword [esp + 0x18], eax
jne 0x418d38
xor ecx, ecx
jmp 0x418d3a
mov ecx, ebx
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, dword [esp + 0x1c]
jle 0x418d4a
mov edx, ebx
jmp 0x418d4c
xor edx, edx
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
cmp eax, edx
setg cl
cmp ecx, dword [esp + 0xc]
mov byte [esp + 0x17], 0
jne 0x418d8b
cmp byte [esp + 0x17], 0
je 0x418d9a
push 0x1cd9
call dword [sym.imp.USER32.dll_GetParent]
jmp 0x418d9a
cmp byte [esp + 0x17], 0
je 0x418d9a
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [esp + 0x30], 0
lea ecx, [esp + 0xc8]
push edi
call fcn.00416ef7
mov dword [esp + 0xc], ebx
xor eax, eax
mov dword [esp + 0x1c], 0xbc99
mov dword [esp + 0xc], eax
jmp 0x418dd6
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0xe8], 0x24a8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x418dc3
mov dword [esp + 0xc], eax
jmp 0x418df9
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc8]
mov dword [ecx + edx*4], 0x6ce125d1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x418de3
mov edi, dword [esp + 0xc8]
mov dword [edi + 4], eax
mov ecx, dword [edi + 4]
inc dword [edi + 4]
cmp dword [edi + 4], 3
mov dword [esp + ecx*4 + 0xe8], eax
jl 0x418e09
push 0xfffffffffffffffd
mov dword [esp + 0x10], 0x19
pop ecx
cmp dword [esp + 0xc], ecx
jl 0x418f47
mov dword [esp + 0x10], 4
mov dword [esp + 0x180], ecx
mov dword [esp + 0x184], ecx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], ecx
mov ecx, dword [esp + 0x10]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
imul ecx, dword [esp + 0x10]
imul edx, ecx, 0xde46
mov ecx, dword [esp + 0xc8]
cmp edx, dword [ecx]
jne 0x418e7e
mov ecx, ebx
cmp dword [esp + 0x10], eax
jne 0x418e80
mov ecx, eax
add ecx, dword [edi + 4]
xor ebx, ebx
cmp ecx, dword [edi + 4]
setle bl
sub ebx, 0x54981c58
neg ebx
sbb ebx, ebx
add ebx, 0x43dc315f
neg ebx
sbb ebx, ebx
inc ebx
add ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], ebx
xor ebx, ebx
cmp dword [esp + 0x20], ecx
setg bl
sub ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
cmp ebx, ecx
mov ecx, dword [esp + 0x1c]
setge dl
xor ebx, ebx
cmp ecx, edx
mov ecx, dword [esp + 0x10]
setg bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0xe8]
setle dl
imul ecx, dword [esp + 0xec]
cmp ecx, edx
jge 0x418eff
cmp dword [esp + 0x10], eax
je 0x418eff
xor ebx, ebx
inc ebx
mov edx, ebx
jmp 0x418f04
xor ebx, ebx
mov edx, eax
inc ebx
mov ecx, dword [esp + 0x10]
imul ecx, edx
xor edx, edx
push 0xfffffffffffffffd
cmp ecx, 0xae45
setg dl
lea esi, [edx - 0x264d9248]
xor edx, edx
imul esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp esi, ecx
pop ecx
setl dl
mov dword [esp + 0x184], edx
dec dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jge 0x418e31
push 0xfffffffffffffff7
pop esi
lea ecx, [esp + 0xc8]
call fcn.00417267
push dword [esp + 0xac]
movdqa xmm0, xmmword [0xaaf870]
lea ecx, [esp + 0x1b4]
push ecx
xor eax, eax
mov dword [esp + 0x40], 0x2b79dc86
lea ecx, [esp + 0x1a8]
mov dword [esp + 0x18], 0xffffffff
push ecx
push eax
lea ecx, [esp + 0xe4]
mov dword [esp + 0xe4], eax
movdqu xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
call fcn.0041793d
mov byte [esp + 0x17], 0
cmp byte [esp + 0x17], 0
je 0x418fc8
push 0
push 0x1225
call dword [sym.imp.USER32.dll_ClientToScreen]
push 3
mov dword [esp + 0x14], 0xffffffec
pop edi
cmp dword [esp + 0x10], 0xffffffe2
jle 0x419013
mov dword [esp + 0xc], esi
mov dword [esp + 0xc], edi
cmp dword [esp + 0xc], 0
jl 0x41900d
mov byte [esp + 0x17], 0
cmp byte [esp + 0x17], 0
je 0x419007
push 0
push 0x3ff
push 0x108c
call dword [sym.imp.GDI32.dll_CreatePen]
dec dword [esp + 0xc]
jns 0x418fe9
dec dword [esp + 0x10]
jmp 0x418fd3
lea ecx, [esp + 0xd4]
call fcn.00417267
mov dword [esp + 0x94], 0x4656e2e3
xor eax, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x40], 0x8f3c34ee
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], esi
push 2
mov dword [esp + 0x10], 0xf
pop esi
cmp dword [esp + 0xc], 0x14
jle 0x419083
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x10], eax
jmp 0x419073
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x1b0], 0x68c0aa39
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x419060
inc dword [esp + 0x1c]
inc dword [esp + 0xc]
jmp 0x41904b
mov dword [esp + 0x40], 5
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
cmp dword [esp + 0x170], eax
je 0x419101
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x20], 0xa6e6f7fb
mov dword [esp + 0x10], 0xffffffe4
jmp 0x4190e2
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x16
jne 0x4190ce
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x419164
push eax
push 0x181f
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
jmp 0x419164
push 4
lea ecx, [esp + 0x104]
call fcn.00416ef7
mov dword [esp + 0x10], 0
jmp 0x41912b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x100]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x419119
mov eax, dword [esp + 0x100]
mov dword [eax + 0xc], 0x15
mov dword [esp + 0x20], 0x249a
cmp dword [esp + 0x20], 0
jne 0x419158
dec dword [eax + 0xc]
cmp dword [eax + 0xc], 0xe
jne 0x419140
lea ecx, [esp + 0x100]
call fcn.00417267
mov dword [esp + 0x28], 0xffffffff
lea ecx, [esp + 0x50]
push edi
call fcn.00416ef7
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x20], 0x11f64db2
mov dword [esp + 0x10], 0
jmp 0x4191a3
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
mov dword [eax + ecx*4], 0xff0ea75c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x419190
mov byte [esp + 0x17], 0
cmp byte [esp + 0x17], 0
je 0x4191cc
push 0
push 0x175
push 0x22d4
push 0xd9e
call dword [sym.imp.GDI32.dll_SetViewportOrgEx]
mov dword [esp + 0xc], esi
cmp dword [esp + 0xc], 0
jl 0x4193ba
push ebx
lea ecx, [esp + 0x60]
call fcn.00416ef7
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x419200
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
mov dword [ecx + edx*4], 0xf72d4ea6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x4191ed
mov ecx, dword [esp + 0x5c]
mov dword [ecx], esi
mov dword [esp + 0x10], eax
jmp 0x41921e
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x2c], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x419212
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x419239
push eax
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
xor eax, eax
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], esi
jg 0x419307
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x50]
sub edx, dword [ecx + esi*4]
xor ecx, ecx
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x50]
add esi, edx
mov edx, dword [esp + 0x20]
imul esi, dword [edi + ebx*4]
mov edx, dword [edx + 8]
cmp esi, 9
setl cl
sub edx, ecx
mov ecx, dword [esp + 0x5c]
sub edx, dword [ecx]
mov ecx, dword [esp + 0x1c]
cmp edx, dword [edi + ecx*4]
jg 0x4192af
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
cmp dword [ecx + edx*4], eax
jne 0x4192af
mov esi, eax
jmp 0x4192b2
xor esi, esi
inc esi
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x1c], edx
xor edx, edx
push 9
cmp esi, dword [edi + ecx*4]
pop ecx
setge dl
cmp ecx, edx
mov ecx, dword [esp + 0x2c]
sbb esi, esi
xor edx, edx
neg esi
add esi, dword [edi + ebx*4]
cmp esi, ecx
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x1c]
setl dl
mov dword [ecx + esi*4], edx
mov ecx, dword [esp + 0x5c]
cmp dword [ecx], eax
jne 0x41930b
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 2
jle 0x41924f
mov ecx, dword [esp + 0x5c]
dec dword [ecx]
push 1
pop ebx
push 2
pop esi
jns 0x41920c
mov ecx, dword [esp + 0xc]
xor ebx, ebx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0x5c]
cmp ecx, dword [edx]
setne bl
mov dword [edx], ebx
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x20], ecx
lea ecx, [ebx - 0xd6ba]
xor ebx, ebx
cmp ecx, dword [edi + edx*4]
setg bl
xor edx, edx
cmp dword [edi + esi*4], ebx
mov esi, dword [esp + 0x20]
sete dl
xor ecx, ecx
cmp edx, dword [edi + esi*4]
setge cl
cmp ecx, dword [edi]
je 0x41937e
mov ecx, dword [esp + 0x5c]
cmp dword [ecx], eax
jne 0x41937e
xor ebx, ebx
mov esi, eax
inc ebx
jmp 0x419383
xor ebx, ebx
inc ebx
mov esi, ebx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + eax*4]
sub eax, esi
add eax, 0x1f0ef2ed
imul eax, dword [ecx + edx*4]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x20], eax
call fcn.00417267
dec dword [esp + 0xc]
push 2
pop esi
jns 0x4191db
push 3
pop edi
lea ecx, [esp + 0x50]
call fcn.00417267
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x4193db
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x68], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x4193cb
mov dword [esp + 0xc], 5
mov dword [esp + 0x10], eax
jmp 0x4193ff
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x1d4], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4193f0
mov dword [esp + 0xc], esi
cmp dword [esp + 0xc], eax
jl 0x419459
mov dword [esp + 0x10], 0xede0b407
mov dword [esp + 0x10], eax
jmp 0x41944d
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x419449
push 0x10c7
push 0x9e0
push 0x21e3
push 0x782
push 0x1b8a
call dword [sym.imp.GDI32.dll_Ellipse]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x41941d
dec dword [esp + 0xc]
jns 0x41940f
mov dword [esp + 0xc], 7
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], edi
jg 0x419f45
mov dword [esp + 0xc], 0x82062403
mov dword [esp + 0x10], 0xfffffff9
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0xfffffff1
jge 0x419646
mov dword [esp + 0x28], 0x60d2f38
mov dword [esp + 0x34], 5
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x20], 0xa277ebd0
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], 0xac77
mov dword [esp + 0x18], eax
jmp 0x4194ea
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x44], 0x9ab5c294
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x4194da
mov ecx, dword [esp + 0xc]
inc dword [esp + 0x24]
je 0x419538
mov ecx, dword [esp + 0x34]
xor edx, edx
cmp ecx, esi
setg dl
mov dword [esp + 0x78], edx
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x84]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
setg dl
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], 0x25f8
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x18], ecx
jl 0x4195f1
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x18], 0xfffffffe
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x34], 0x90c37c50
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x84]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
imul ecx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
imul ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4195d0
mov edx, ebx
cmp dword [esp + 0x7c], eax
jne 0x4195d2
mov edx, eax
mov ecx, dword [esp + 0x20]
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x10]
sete bl
xor edx, edx
cmp ebx, ecx
setge dl
xor ebx, ebx
mov dword [esp + 0x10], edx
inc ebx
jmp 0x419631
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x84]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], 0xffffffff
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x80], ecx
cmp dword [esp + 0x1c], eax
jne 0x419643
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff1
push 2
pop esi
jl 0x4194a8
push 2
pop esi
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x419663
push 0xf0a
push 0x1023
call dword [sym.imp.GDI32.dll_RestoreDC]
xor eax, eax
mov dword [esp + 0x10], 0xa772304b
mov dword [esp + 0x10], 0xfffffffd
mov dword [esp + 0x10], eax
jmp 0x41968c
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x1e0], 0x82062403
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x419679
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], eax
jl 0x4196b6
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x4196b0
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
xor eax, eax
dec dword [esp + 0x10]
jns 0x41969d
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], eax
jl 0x419b5c
mov dword [esp + 0x18], 0x13dd33a4
mov dword [esp + 0x18], 0xffffffe3
jmp 0x41972a
mov dword [esp + 0xc], ebx
mov dword [esp + 0xc], 0xfffffff3
jmp 0x41971f
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x419707
push eax
push eax
push eax
push 0x91e
call dword [sym.imp.GDI32.dll_CreateEnhMetaFileW]
xor eax, eax
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x41971b
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffed
jl 0x4196ec
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffff9
jle 0x4196de
push esi
lea ecx, [esp + 0x134]
call fcn.00416ef7
mov dword [esp + 0x28], 0xcedb7758
xor eax, eax
mov dword [esp + 0x18], 0xae97
inc dword [esp + 0x18]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], 0x2a
jge 0x419817
mov dword [esp + 0x24], 5
lea ecx, [esp + 0x13c]
push edi
call fcn.00416ef7
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x419792
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x13c]
mov dword [ecx + edx*4], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x419780
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x4197aa
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [esp + 0x24]
xor edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp ecx, eax
setl dl
xor ecx, ecx
cmp edx, ebx
setle cl
sub ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x13c]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x13c]
call fcn.00417267
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x2a
jl 0x419763
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x419833
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x130]
mov dword [ecx + edx*4], 0xc0272a72
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41981d
mov edi, dword [esp + 0x130]
mov dword [edi + 4], 3
mov dword [esp + 0x20], 0x2263126f
mov dword [esp + 0x24], 0x18e9
mov dword [esp + 0x1c], 0x89bdd777
mov dword [esp + 0x34], 4
mov dword [esp + 0x28], 0x5ab4d258
mov dword [esp + 0xc], eax
jmp 0x419888
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x88], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x419875
mov ecx, dword [esp + 0x20]
xor edx, edx
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x8c], ebx
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
sub esi, ecx
mov dword [esp + 0x8c], esi
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x1c]
cmp esi, ecx
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
setle dl
sub esi, edx
neg esi
sbb esi, esi
inc ecx
inc esi
add ecx, esi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + ecx*4 + 0x68]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + ecx*4 + 0x68]
cmp dword [edi + 4], eax
jne 0x419902
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
push 2
pop esi
mov ecx, dword [esp + ecx*4 + 0x68]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x70]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x70]
dec dword [edi + 4]
mov dword [esp + 0x28], ebx
jns 0x419847
mov dword [esp + 0x28], ebx
mov dword [esp + 0x28], 0xa876e6ba
mov dword [esp + 0x28], 0x444696a4
mov dword [esp + 0x28], 0xfffffffd
mov dword [esp + 0x28], 8
push 3
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x10], eax
pop edi
jmp 0x419976
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x1c8], 0xbeb7161a
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x419963
dec dword [esp + 0x20]
lea ecx, [esp + 0x38]
mov dword [esp + 0x28], eax
call fcn.00417c16
push 2
pop esi
push esi
lea ecx, [esp + 0xc0]
call fcn.00416ef7
mov dword [esp + 0x18], ebx
xor eax, eax
mov dword [esp + 0x20], 0xbc99
mov dword [esp + 0xc], eax
jmp 0x4199c4
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x148], 0x24a8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x4199b1
mov dword [esp + 0xc], eax
jmp 0x4199e6
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xbc]
mov dword [ecx + edx*4], 0x6ce125d1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x4199d0
mov edi, dword [esp + 0xbc]
mov dword [edi + 4], eax
mov ecx, dword [edi + 4]
inc dword [edi + 4]
cmp dword [edi + 4], 3
mov dword [esp + ecx*4 + 0x148], eax
jl 0x4199f6
push 0xfffffffffffffffd
mov dword [esp + 0x1c], 0x19
pop ecx
cmp dword [esp + 0x18], ecx
jl 0x419b34
mov dword [esp + 0xc], 4
mov dword [esp + 0x160], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0xc]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
imul ecx, dword [esp + 0xc]
imul edx, ecx, 0xde46
mov ecx, dword [esp + 0xbc]
cmp edx, dword [ecx]
jne 0x419a6b
mov ecx, ebx
cmp dword [esp + 0xc], eax
jne 0x419a6d
mov ecx, eax
add ecx, dword [edi + 4]
xor ebx, ebx
cmp ecx, dword [edi + 4]
setle bl
sub ebx, 0x54981c58
neg ebx
sbb ebx, ebx
add ebx, 0x43dc315f
neg ebx
sbb ebx, ebx
inc ebx
add ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], ebx
xor ebx, ebx
cmp dword [esp + 0x28], ecx
setg bl
sub ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
cmp ebx, ecx
mov ecx, dword [esp + 0x20]
setge dl
xor ebx, ebx
cmp ecx, edx
mov ecx, dword [esp + 0xc]
setg bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x148]
setle dl
imul ecx, dword [esp + 0x14c]
cmp ecx, edx
jge 0x419aec
cmp dword [esp + 0xc], eax
je 0x419aec
xor ebx, ebx
inc ebx
mov edx, ebx
jmp 0x419af1
xor ebx, ebx
mov edx, eax
inc ebx
mov ecx, dword [esp + 0xc]
imul ecx, edx
xor edx, edx
push 0xfffffffffffffffd
cmp ecx, 0xae45
setg dl
lea esi, [edx - 0x264d9248]
xor edx, edx
imul esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
cmp esi, ecx
pop ecx
setl dl
mov dword [esp + 0x164], edx
dec dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jge 0x419a1e
push 2
pop esi
lea ecx, [esp + 0xbc]
call fcn.00417267
lea ecx, [esp + 0x130]
call fcn.00417267
dec dword [esp + 0x10]
push 0
pop eax
push 3
pop edi
jns 0x4196cc
mov dword [esp + 0xc], 4
mov dword [esp + 0x28], 0x2466e9f0
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x419b80
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor eax, eax
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0xfffffffa
jle 0x419c48
push edi
lea ecx, [esp + 0x110]
call fcn.00416ef7
mov dword [esp + 0x20], 0x8cf4c59c
xor eax, eax
mov dword [esp + 0x1c], 0x7f4ea14c
mov dword [esp + 0x20], 0xe13f5e3
mov dword [esp + 0x18], eax
jmp 0x419bd2
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10c]
mov dword [ecx + edx*4], 0x64dc
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x419bbc
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x419bec
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
xor eax, eax
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], eax
mov ecx, dword [esp + 0x10c]
jne 0x419c0e
cmp dword [ecx + 4], eax
je 0x419c10
mov eax, ebx
xor edx, edx
cmp dword [ecx + 4], eax
mov eax, dword [esp + 0x1c]
setne dl
xor ecx, ecx
cmp edx, eax
setg cl
sub ecx, dword [esp + 0xc]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x10c]
call fcn.00417267
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffffa
jg 0x419b8f
xor eax, eax
push esi
cmp dword [esp + 0x14], eax
je 0x419e06
mov dword [esp + 0x20], 0x5546
lea ecx, [esp + 0xf8]
mov dword [esp + 0x24], ebx
call fcn.00416ef7
mov dword [esp + 0x20], 0x1162f630
lea ecx, [esp + 0x124]
push edi
call fcn.00416ef7
xor eax, eax
mov dword [esp + 0x28], 0x21c9b6cd
mov dword [esp + 0x18], eax
jmp 0x419ca3
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0xa0], 0xfffd
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x419c90
mov dword [esp + 0x18], eax
jmp 0x419cc5
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xf4]
mov dword [ecx + edx*4], 0x27359b50
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x419caf
mov dword [esp + 0x18], eax
jmp 0x419ce7
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x124]
mov dword [ecx + edx*4], 0xabb75da2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x419cd1
or edx, 0xffffffff
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
sub edx, ecx
add edx, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, 0x4c38b6b0
mov edx, 0xdc2a82a1
setg cl
xor ebx, ebx
sub edx, ecx
mov ecx, dword [esp + 0xf4]
cmp edx, dword [ecx]
setne bl
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], eax
je 0x419d2c
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xa0]
dec dword [esp + 0xa0]
mov eax, dword [esp + 0x124]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x124]
call fcn.00417267
lea ecx, [esp + 0xf4]
call fcn.00417267
xor eax, eax
xor ebx, ebx
mov byte [esp + 0x3f], al
inc ebx
mov dword [esp + 0x24], 0x5c8094a
mov dword [esp + 0x28], ebx
mov dword [esp + 0x28], 0x6f6dd8d1
mov dword [esp + 0x10], eax
jmp 0x419d9c
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x19c], 0x9b31
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x419d89
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], eax
jl 0x419df8
push edi
lea ecx, [esp + 0x158]
call fcn.00416ef7
mov dword [esp + 0x10], 0
jmp 0x419dd6
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x154]
and dword [eax + ecx*4], 0
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x419dc3
mov eax, dword [esp + 0x154]
lea ecx, [esp + 0x154]
inc dword [eax + 4]
call fcn.00417267
dec dword [esp + 0x24]
jns 0x419dac
lea ecx, [esp + 0x3f]
call fcn.0041817e
jmp 0x419f34
mov dword [esp + 0x14], 0xffffffff
lea ecx, [esp + 0x194]
mov dword [esp + 0x10], eax
call fcn.00416ef7
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x419e38
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x190]
mov dword [ecx + edx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x419e26
mov dword [esp + 0x10], 0xfffffff4
jmp 0x419ef9
mov dword [esp + 0x1c], eax
xor ebx, ebx
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
add edx, 0xf737
cmp ecx, edx
mov ecx, dword [esp + 0x10]
setl bl
xor edx, edx
cmp ecx, 0xcc2fdcb
setle dl
sub ebx, edx
je 0x419eb8
cmp dword [esp + 0x1c], eax
jne 0x419f04
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x419ef5
push 0x30a
push eax
push 0xa80
push 0x158
push eax
push 0x22c9
call dword [sym.imp.GDI32.dll_GetCharacterPlacementW]
xor eax, eax
jmp 0x419ef5
mov dword [esp + 0x20], 0x4ba8b35e
mov dword [esp + 0xc], eax
jmp 0x419ee8
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x419ede
push 0x232c
call dword [sym.imp.GDI32.dll_GetStockObject]
xor eax, eax
cmp dword [esp + 0x20], eax
jne 0x419f04
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jle 0x419ec6
cmp dword [esp + 0x20], eax
jne 0x419f04
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffa
je 0x419e4b
lea ecx, [esp + 0x190]
call fcn.00417267
lea eax, [esp + 0x30]
mov dword [esp + 0x9c], 5
push eax
lea edx, [esp + 0x3c]
lea ecx, [esp + 0xa0]
call fcn.0041836d
xor ebx, ebx
pop ecx
inc ebx
inc dword [esp + 0x30]
push 0
pop eax
cmp dword [esp + 0x30], edi
jle 0x41946f
mov dword [esp + 0xc], 0x7e2799ac
mov dword [esp + 0x20], 0x8872fa4
mov dword [esp + 0xc], eax
jmp 0x419fac
mov dword [esp + 0x28], 0x4d2edc75
mov dword [esp + 0x10], 0xffff
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x10], eax
jmp 0x419fa1
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x419f9d
push 0x24f3
push 0x24c5
push eax
push 0x1817
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x1f
jl 0x419f79
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0xa
jge 0x419f5b
dec dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
imul ecx, eax
mov eax, dword [esp + 0x6c]
sub ecx, eax
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov eax, dword [esp + 0x38]
sete dl
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x94]
dec eax
cmp eax, 6
sbb eax, eax
xor edx, edx
inc eax
imul ecx, eax, 0xffff
mov eax, dword [esp + 0x40]
cmp ecx, eax
mov eax, dword [esp + 0xa8]
mov ecx, 0x3e8
setge dl
mov dword [esp + 0x28], edx
cdq
idiv ecx
mov ecx, dword [esp + 0x98]
mov edi, edx
mov esi, eax
call fcn.00417ba0
add eax, esi
add eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret