Function at 0x10041c73
Capabilities:
Delete registry value
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1007ed1c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x390
push ebx
or eax, 0xffffffff
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x20c]
mov dword [esp + 0x18], 1
push esi
mov dword [esp + 0x1c], 0x3cdf98a5
mov dword [esp + 0x1c], 0xc07e17f7
push edi
mov dword [esp + 0x20], 9
mov dword [esp + 0x20], eax
push 3
mov dword [esp + 0x24], eax
pop edi
mov dword [esp + 0x20], 4
mov dword [esp + 0x20], 0x79e672ca
mov dword [esp + 0x20], 0xfffffff8
push edi
mov dword [esp + 0x140], edx
call fcn.100166d2
xor ebx, ebx
mov dword [esp + 0x14], ebx
jmp 0x10041d17
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x214]
mov dword [eax + ecx*4], 0xf1ad
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10041d01
mov eax, dword [esp + 0x214]
lea ecx, [esp + 0x214]
inc dword [eax]
call fcn.10016ec3
xor esi, esi
mov dword [esp + 0xc], 8
inc esi
mov dword [esp + 0x1c], 0x2bfb
mov dword [esp + 0x2c], 0xfffffffc
lea ecx, [esp + 0x1d8]
push esi
call fcn.100166d2
or esi, 0xffffffff
mov dword [esp + 0x28], 0x43b8a277
xor edx, edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
inc edx
jmp 0x10041d88
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1d8]
mov dword [eax + ecx*4], 0x1de6fc60
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10041d72
cmp dword [esp + 0xc], ebx
je 0x10041ddb
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
sub edx, eax
mov eax, dword [esp + 0xc]
neg edx
push 6
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
pop eax
setne cl
cmp eax, ecx
mov ecx, dword [esp + 0xc]
sbb eax, eax
neg eax
sub ecx, eax
add ecx, dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jle 0x10041dd1
cmp dword [esp + 0xc], ebx
je 0x10041ddb
cmp dword [esp + 0x1c], ebx
je 0x10041ddb
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1d8]
mov dword [eax], ecx
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x1d8]
dec dword [esp + 0x18]
call fcn.10016ec3
mov dword [esp + 0x38], 0x3d1bca9d
lea ecx, [esp + 0x2d4]
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], 0x5378470e
mov dword [esp + 0x28], 0xb8e136dc
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x14], ebx
push eax
call fcn.100166d2
mov dword [esp + 0x20], 0xa320
xor edx, edx
mov dword [esp + 0x20], 0x8c458a92
inc edx
mov dword [esp + 0x1c], 0xbf2b8319
mov dword [esp + 0x34], ebx
mov dword [esp + 0x14], ebx
jmp 0x10041e7b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2d4]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10041e69
dec dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
sub ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
cmp edx, eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, ecx
setle dl
xor ecx, ecx
imul edx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
cmp eax, edx
mov eax, dword [esp + 0xc]
setne cl
xor edx, edx
cmp ecx, eax
setl dl
sub edx, 0xa94fe87
neg edx
sbb edx, edx
xor eax, eax
xor esi, esi
inc edx
inc esi
cmp edx, esi
setge al
sub eax, dword [esp + 0xc]
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
cmp eax, ecx
setle dl
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc]
inc eax
je 0x10041f04
mov eax, esi
cmp dword [esp + 0x1c], ebx
jne 0x10041f06
mov eax, ebx
mov dword [esp + 0x1c], eax
xor edx, edx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
sub ecx, 0x2c64
cmp ecx, eax
mov eax, dword [esp + 0x30]
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x2d4]
call fcn.10016ec3
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x18], ebx
jmp 0x10041f67
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x370], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x10041f58
mov dword [esp + 0x18], ebx
jmp 0x10041f82
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x9c], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x10041f73
mov dword [esp + 0x9c], ebx
jmp 0x10041faa
mov eax, dword [esp + 0x9c]
mov dword [esp + eax*4 + 0x370], 0xd16df251
inc dword [esp + 0x9c]
cmp dword [esp + 0x9c], edi
jl 0x10041f91
mov dword [esp + 0x9c], 0x88a137b1
xor ecx, ecx
inc ecx
mov eax, 0x19f8c517
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], 0x57fd5464
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x2c], 0xf2fe
mov dword [esp + 0x30], 0x25d8bac8
mov dword [esp + 0x34], 0x665fec6b
mov dword [esp + 0x18], 0x17
cmp dword [esp + 0x18], 0x11
jg 0x100420ea
xor esi, esi
mov dword [esp + 0xc], 5
xor edx, edx
mov dword [esp + 0x24], 0x49dcb7be
mov dword [esp + 0x24], 9
mov dword [esp + 0x24], 0x274cb070
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp ecx, eax
setl dl
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xfc]
mov eax, dword [esp + 0xf8]
mov eax, dword [esp + 0xf8]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x100]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
imul eax, dword [esp + 0x2c], 0xffff
test eax, eax
je 0x100420aa
lea ecx, [esi + 1]
cmp dword [esp + 0xfc], ebx
jne 0x100420ac
mov ecx, ebx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], 2
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0x11
jle 0x1004201b
xor ecx, ecx
inc ecx
mov dword [esp + 0x20], 0x3cdf98a5
mov dword [esp + 0xc], 0xfffffff7
mov dword [esp + 0x24], 0xfffffff9
mov dword [esp + 0x30], 9
mov dword [esp + 0x24], 0xfffffffb
mov dword [esp + 0x34], 0xffffffff
mov eax, dword [esp + 0xc]
cmp dword [esp + 0xc], 0xe649
jne 0x10042130
mov eax, ebx
cmp dword [esp + 0xc], ebx
je 0x10042132
mov eax, ecx
mov dword [esp + 0x24], eax
xor ecx, ecx
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0xc]
push 5
pop edx
sub edx, eax
mov eax, dword [esp + 0x30]
cmp edx, eax
setne cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0xc]
test eax, eax
jne 0x1004216d
cmp dword [esp + 0xc], ebx
jne 0x1004216d
xor esi, esi
mov eax, ebx
inc esi
jmp 0x10042172
xor esi, esi
inc esi
mov eax, esi
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x34], eax
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x10042196
push ebx
push ebx
push 0x85
call edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItemInt]
push dword [esp + 0x3c]
movdqa xmm0, xmmword [0x10007c30]
lea ecx, [esp + 0x144]
mov dword [esp + 0x24], 0xc07e17f7
mov eax, 0x38299fa9
mov dword [esp + 0x10], 0x477862fd
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
lea eax, [esp + 0x308]
push eax
lea eax, [esp + 0x2fc]
mov dword [esp + 0x2c], 0xffffffff
push eax
mov dword [esp + 0x30], 0xd7f285f4
push ebx
movdqu xmmword [esp + 0x304], xmm0
mov dword [esp + 0x150], ebx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x158], ebx
call fcn.10017c1b
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], 0x2e882408
mov dword [esp + 0x14], ebx
jmp 0x10042243
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x124], 5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10042230
mov dword [esp + 0xc], 0x17
jmp 0x1004237f
mov dword [esp + 0x14], ebx
jmp 0x1004226d
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x44], 0xc62e0897
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1004225d
cmp dword [esp + 0x4c], ebx
je 0x1004236d
mov eax, dword [esp + 0x50]
xor edx, edx
mov eax, dword [esp + 0xa8]
imul ecx, eax, 0xe26b
mov eax, dword [esp + 0x50]
cmp ecx, eax
mov eax, dword [esp + 0xc]
setge dl
xor ecx, ecx
add edx, 9
cmp eax, edx
setge cl
add ecx, dword [esp + 0x44]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
sub eax, 0xfffb
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
cmp ecx, eax
mov eax, dword [esp + 0x4c]
setne dl
sub eax, edx
cmp dword [esp + 0xc], eax
je 0x100422e5
mov ecx, ebx
cmp dword [esp + 0x48], ebx
je 0x100422e7
mov ecx, esi
mov eax, dword [esp + 0x44]
xor edx, edx
cmp eax, ecx
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xb0]
setg dl
imul ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x140]
sete dl
mov dword [eax + 4], edx
xor eax, eax
test edx, edx
setne al
xor ecx, ecx
test eax, eax
mov eax, dword [esp + 0xa8]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x128]
setne dl
imul eax, edx
cmp eax, dword [esp + 0xb0]
jge 0x10042347
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0xa8]
mov eax, dword [esp + 0x128]
mov eax, dword [esp + 0x128]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
inc eax
mov eax, esi
jne 0x1004236f
mov eax, ebx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
sub dword [esp + 0x4c], eax
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffffc
jge 0x10042257
lea ecx, [esp + 0x140]
call fcn.10016ec3
mov dword [esp + 0x20], 9
lea ecx, [esp + 0x25c]
push 3
mov dword [esp + 0x20], 0x942a
pop esi
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0xc], 0xfffffffc
mov dword [esp + 0x24], ebx
push esi
call fcn.100166d2
mov dword [esp + 0x30], 0x3589fe57
mov dword [esp + 0x18], ebx
jmp 0x100423ee
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x25c]
mov dword [eax + ecx*4], 0x1af7f3e7
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x100423d8
xor ecx, ecx
mov dword [esp + 0x18], ebx
inc ecx
jmp 0x10042410
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x114], 0x1aa08ecb
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x100423fd
mov eax, dword [esp + 0x1c]
mov edx, ebx
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], ebx
je 0x10042428
mov edx, ecx
push 6
pop eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
cmp edx, eax
sete cl
sub ecx, 0xc9ca
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0xc], 0xfffffff5
jmp 0x1004247e
mov dword [esp + 0x30], ebx
cmp dword [esp + 0x30], ebx
jne 0x10042485
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 7
jg 0x10042470
lea ecx, [esp + 0x25c]
call fcn.10016ec3
mov dword [esp + 0x20], 0xffffffff
lea ecx, [esp + 0x1f0]
push esi
call fcn.100166d2
mov dword [esp + 0xc], 0xfffffffc
mov dword [esp + 0x14], ebx
jmp 0x100424ca
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1f0]
mov dword [eax + ecx*4], 0xfffc
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100424b4
mov dword [esp + 0xc], ebx
jmp 0x10042545
mov dword [esp + 0x14], 0x69f7fd1e
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1f0]
cmp dword [eax + ecx*4], ebx
jne 0x1004254c
mov dword [esp + 0x14], ebx
jmp 0x1004253a
mov dword [esp + 0x1c], 8
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x1004250c
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
mov dword [esp + 0x1c], 2
cmp dword [esp + 0x1c], ebx
jl 0x10042536
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x10042530
push ebx
push 0x192e
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec dword [esp + 0x1c]
jns 0x1004251a
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x100424f4
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jle 0x100424d6
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x1004255e
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCommState]
lea ecx, [esp + 0x1f0]
call fcn.10016ec3
push dword [esp + 0x3c]
lea eax, [esp + 0x338]
mov dword [esp + 0x24], 0xffffffff
push eax
lea eax, [esp + 0x32c]
mov dword [esp + 0x28], 4
push eax
xorps xmm0, xmm0
mov dword [esp + 0x1b0], ebx
push ebx
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x1b8], ebx
movdqu xmmword [esp + 0x334], xmm0
mov dword [esp + 0x1bc], ebx
call fcn.10017c1b
mov dword [esp + 0x3a4], ebx
lea ecx, [esp + 0x244]
mov dword [esp + 0xc], 0xfffffff6
mov dword [esp + 0x20], 0x9dfcf09c
mov dword [esp + 0x20], 0x87f6fb80
push 4
call fcn.100166d2
xor eax, eax
inc eax
mov byte [esp + 0x3a4], al
mov dword [esp + 0x14], ebx
jmp 0x1004260f
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x244]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x100425f9
mov dword [esp + 0xc], ebx
jmp 0x1004269b
mov dword [esp + 0x14], 8
lea ecx, [esp + 0x2bc]
push esi
call fcn.100166d2
xor ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], esi
jge 0x10042661
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx*4], 0xef9d7865
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10042642
xor ecx, ecx
inc ecx
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], esi
jg 0x1004268b
mov eax, dword [esp + 0x244]
dec dword [eax + 8]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x20], 0xfffffff7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x10042672
lea ecx, [esp + 0x2bc]
call fcn.10016ec3
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jle 0x1004261c
lea ecx, [esp + 0x244]
call fcn.10016ec3
or dword [esp + 0x3a4], 0xffffffff
lea ecx, [esp + 0x1a4]
call fcn.10016ec3
push dword [esp + 0x3c]
movdqa xmm0, xmmword [0x10007c30]
lea ecx, [esp + 0x158]
mov dword [esp + 0x24], 0x79e672ca
mov eax, 0x38299fa9
mov dword [esp + 0x24], 0xfffffff8
mov dword [esp + 0x10], 0x477862fd
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x318]
push eax
lea eax, [esp + 0x30c]
mov dword [esp + 0x2c], 0xffffffff
push eax
mov dword [esp + 0x30], 0xd7f285f4
push ebx
movdqu xmmword [esp + 0x314], xmm0
mov dword [esp + 0x164], ebx
mov dword [esp + 0x168], ebx
mov dword [esp + 0x16c], ebx
call fcn.10017c1b
xor eax, eax
inc eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0x2e882408
mov dword [esp + 0x14], ebx
jmp 0x1004277d
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x12c], 5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1004276a
mov dword [esp + 0xc], 0x17
jmp 0x100428c1
mov dword [esp + 0x14], ebx
jmp 0x100427a7
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x54], 0xc62e0897
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x10042797
cmp dword [esp + 0x5c], ebx
je 0x100428af
mov eax, dword [esp + 0x60]
xor edx, edx
mov eax, dword [esp + 0xb8]
imul ecx, eax, 0xe26b
mov eax, dword [esp + 0x60]
cmp ecx, eax
mov eax, dword [esp + 0xc]
setge dl
xor ecx, ecx
add edx, 9
cmp eax, edx
setge cl
add ecx, dword [esp + 0x54]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
sub eax, 0xfffb
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x5c]
cmp ecx, eax
mov eax, dword [esp + 0x5c]
setne dl
sub eax, edx
cmp dword [esp + 0xc], eax
je 0x10042821
cmp dword [esp + 0x58], ebx
jne 0x10042821
mov ecx, ebx
jmp 0x10042826
xor eax, eax
lea ecx, [eax + 1]
mov eax, dword [esp + 0x54]
xor edx, edx
cmp eax, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xc0]
setg dl
imul ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x154]
sete dl
mov dword [eax + 4], edx
xor eax, eax
test edx, edx
setne al
xor ecx, ecx
test eax, eax
mov eax, dword [esp + 0xb8]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x130]
setne dl
imul eax, edx
cmp eax, dword [esp + 0xc0]
jge 0x10042886
mov eax, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov eax, dword [esp + 0xb8]
mov eax, dword [esp + 0x130]
mov eax, dword [esp + 0x130]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x5c]
inc eax
je 0x100428af
xor eax, eax
inc eax
jmp 0x100428b1
mov eax, ebx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x34]
sub dword [esp + 0x5c], eax
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffffc
jge 0x10042791
lea ecx, [esp + 0x154]
call fcn.10016ec3
push esi
lea ecx, [esp + 0x1d0]
call fcn.100166d2
mov dword [esp + 0x14], 0xdf75dcec
mov dword [esp + 0x20], 0x4a2a4f40
mov dword [esp + 0x14], 0x1b
jmp 0x10042921
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1004291d
push ebx
push ebx
push 0x1899
xor eax, eax
push ebx
inc eax
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0x11
jne 0x100428ff
mov dword [esp + 0x14], ebx
jmp 0x10042944
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1cc]
mov dword [eax + ecx*4], 0xf1ad
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x1004292e
xor ecx, ecx
inc ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], 0xd8987f2f
mov dword [esp + 0x24], 0xfa20bd03
mov dword [esp + 0x24], 0x5e4b7834
mov dword [esp + 0x30], 0xfffffff9
mov dword [esp + 0x1c], 4
mov dword [esp + 0x18], ebx
jmp 0x10042992
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x2e0], 0xb2ab76d6
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1004297f
mov dword [esp + 0x18], ebx
jmp 0x100429b2
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x164], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x1004299f
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x1c]
test eax, eax
je 0x10042a2e
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], ebx
jne 0x10042a10
mov eax, dword [esp + 0x2e0]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x168]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
neg eax
push 0
sbb eax, eax
neg eax
pop eax
sete al
cmp eax, dword [esp + 0x168]
jl 0x10042a05
mov eax, dword [esp + 0x14]
mov eax, ebx
cmp dword [esp + 0x168], ebx
je 0x10042a12
mov eax, ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], ebx
je 0x10042a23
mov eax, dword [esp + 0x168]
mov eax, ecx
cmp dword [esp + 0x168], ebx
jne 0x10042a30
mov eax, ebx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
dec ecx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, eax
mov eax, dword [esp + 0x1cc]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x1cc]
inc dword [eax]
call fcn.10016ec3
push esi
lea ecx, [esp + 0x2a8]
call fcn.100166d2
mov dword [esp + 0xc], 0x667a876e
mov dword [esp + 0x14], ebx
jmp 0x10042a8e
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2a4]
mov dword [eax + ecx*4], 0x9ff6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10042a78
mov dword [esp + 0xc], 2
cmp dword [esp + 0xc], ebx
jl 0x10042b1a
mov dword [esp + 0x14], 0xfffffffd
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], ebx
jl 0x10042b01
xor eax, eax
inc eax
mov dword [esp + 0x1c], eax
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10042ad1
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esp + 0x1c], 2
cmp dword [esp + 0x1c], ebx
jl 0x10042afb
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10042af5
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetThreadTimes]
dec dword [esp + 0x1c]
jns 0x10042adf
dec dword [esp + 0x14]
jns 0x10042ab8
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10042b14
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
dec dword [esp + 0xc]
jns 0x10042aa2
lea ecx, [esp + 0x2a4]
call fcn.10016ec3
mov dword [esp + 0x18], 0xb5934215
lea ecx, [esp + 0x180]
push esi
call fcn.100166d2
push 2
pop ecx
mov dword [esp + 0x3a4], ecx
xor eax, eax
mov dword [esp + 0xc], 0x83afd470
inc eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x20], 0xfffffffd
mov dword [esp + 0x20], 0xfefd5227
push ecx
mov dword [esp + 0x24], 0x2d0b182b
lea ecx, [esp + 0x2ec]
mov dword [esp + 0x24], 4
call fcn.100166d2
mov dword [esp + 0x20], 0x31915e30
mov dword [esp + 0x24], 0xdf500c33
mov dword [esp + 0xc], ebx
jmp 0x10042bb5
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x180]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10042ba3
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], 2
jge 0x10042be2
xor esi, esi
inc esi
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x2e8]
mov dword [eax + ecx*4], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10042bc9
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 esi, dword [esp + 0x180]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 4]
sub eax, 0x228a7d46
add ecx, eax
mov eax, dword [esp + 0x180]
sub ecx, dword [esi + 8]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, dword [eax]
mov eax, dword [esp + 0x18]
setle dl
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [esp + 0xc], ecx
xor ecx, ecx
mov eax, dword [esp + 0xc]
add eax, dword [esi + 8]
mov edx, dword [esp + 0x18]
add edx, eax
mov eax, dword [esp + 0x18]
imul edx, dword [esi + 8]
cmp edx, eax
setne cl
add ecx, dword [esi + 8]
mov esi, 0xb6a69eed
cmp ecx, dword [esp + 0x18]
jl 0x10042ce6
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x18]
neg ecx
cmp eax, ecx
mov eax, dword [esp + 0x18]
setge dl
xor ecx, ecx
cmp eax, edx
setg cl
cmp esi, ecx
sbb eax, eax
neg eax
cmp eax, 0x481d
jne 0x10042cce
mov dword [esp + 0x18], ebx
jmp 0x10042cc5
mov dword [esp + 0xc], 2
cmp dword [esp + 0xc], ebx
jl 0x10042cc1
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10042cbb
push ebx
push ebx
push 0x24dc
push 0x1758
call edi
push eax
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
dec dword [esp + 0xc]
jns 0x10042c9b
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jle 0x10042c8d
jmp 0x10042cfd
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10042cfd
push 0x379
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
jmp 0x10042cfd
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10042cfd
push 0x197d
push ebx
call dword [sym.imp.USER32.dll_CharLowerBuffW]
inc dword [esp + 0x24]
lea ecx, [esp + 0x2e8]
call fcn.10016ec3
or esi, 0xffffffff
lea ecx, [esp + 0x180]
mov dword [esp + 0x3a4], esi
call fcn.10016ec3
xor eax, eax
mov dword [esp + 0xc], 0x8a61928c
inc eax
lea ecx, [esp + 0x1fc]
push eax
call fcn.100166d2
xor edx, edx
mov dword [esp + 0x14], ebx
inc edx
jmp 0x10042d5a
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1fc]
mov dword [eax + ecx*4], 0x29edca8f
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10042d44
mov dword [esp + 0xc], edx
jmp 0x10042dd7
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], 0xaa05d762
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1fc]
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
test eax, eax
setle cl
imul ecx, dword [esp + 0x18]
test ecx, ecx
je 0x10042da5
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
jmp 0x10042dd3
mov dword [esp + 0x14], ebx
jmp 0x10042dbe
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x160], 0x1db6084e
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10042dab
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x160], eax
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe4
jle 0x10042d66
mov dword [esp + 0xc], ebx
jmp 0x10042e08
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10042e04
push 0xee1
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetLayout]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x1d
jge 0x10042de4
lea ecx, [esp + 0x1fc]
call fcn.10016ec3
xor eax, eax
mov dword [esp + 0x20], esi
inc eax
lea ecx, [esp + 0x84]
push eax
call fcn.100166d2
push 3
pop edi
mov dword [esp + 0x3a4], edi
lea ecx, [esp + 0x208]
mov dword [esp + 0x14], 0x473eb905
push 2
call fcn.100166d2
mov byte [esp + 0x3a4], 4
xor edx, edx
mov dword [esp + 0x18], 4
inc edx
mov dword [esp + 0x30], esi
mov dword [esp + 0xc], ebx
jmp 0x10042e82
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], 0x504c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x10042e6c
mov dword [esp + 0xc], ebx
jmp 0x10042ea4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x208]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10042e8e
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x208]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx]
mov esi, dword [ecx]
sub edx, eax
mov eax, dword [esp + 0x18]
sub edx, 0x7c2
xor ecx, ecx
add eax, esi
cmp eax, edx
mov eax, dword [esp + 0x14]
setg cl
xor edx, edx
dec ecx
cmp ecx, esi
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [edi + 4], ecx
cmp dword [esp + 0x14], ecx
je 0x10042fb2
xor ecx, ecx
mov dword [esp + 0x24], 0xa565
mov dword [esp + 0xc], ebx
inc ecx
jmp 0x10042f38
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x40], 0x1307
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x10042f28
mov dword [esp + 0xc], ebx
jmp 0x10042f57
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x388], 0xb15d3e99
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x10042f44
mov dword [esp + 0x18], ebx
jmp 0x10042fa9
push 4
lea ecx, [esp + 0x2cc]
call fcn.100166d2
mov dword [esp + 0x14], ebx
jmp 0x10042f8e
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c8]
mov dword [eax + ecx*4], 0x457023
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x10042f78
inc dword [esp + 0x24]
lea ecx, [esp + 0x2c8]
call fcn.10016ec3
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x14
jg 0x10042f64
jmp 0x10042fe2
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jl 0x10042fe2
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x84]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
mov dword [esp + 0x30], eax
dec dword [esp + 0x18]
jns 0x10042fbc
lea ecx, [esp + 0x208]
call fcn.10016ec3
or esi, 0xffffffff
lea ecx, [esp + 0x84]
mov dword [esp + 0x3a4], esi
call fcn.10016ec3
xor eax, eax
mov dword [esp + 0xc], 8
inc eax
mov dword [esp + 0x1c], 0x2bfb
mov dword [esp + 0x24], 0xfffffffc
lea ecx, [esp + 0x220]
push eax
call fcn.100166d2
mov dword [esp + 0x30], 0x43b8a277
xor edx, edx
mov dword [esp + 0x38], esi
inc edx
mov dword [esp + 0x14], ebx
jmp 0x10043057
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x220]
mov dword [eax + ecx*4], 0x1de6fc60
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10043041
cmp dword [esp + 0xc], ebx
je 0x100430aa
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
sub edx, eax
mov eax, dword [esp + 0xc]
neg edx
push 6
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
pop eax
setne cl
cmp eax, ecx
mov ecx, dword [esp + 0xc]
sbb eax, eax
neg eax
sub ecx, eax
add ecx, dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jle 0x100430a0
cmp dword [esp + 0xc], ebx
je 0x100430aa
cmp dword [esp + 0x1c], ebx
je 0x100430aa
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x220]
mov dword [eax], ecx
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x220]
dec dword [esp + 0x38]
call fcn.10016ec3
xor eax, eax
lea ecx, [esp + 0x28c]
inc eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], 0x3d1bca9d
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], 0x5378470e
mov dword [esp + 0x30], 0xb8e136dc
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
push eax
call fcn.100166d2
mov dword [esp + 0x34], 0xa320
xor edx, edx
mov dword [esp + 0x34], 0x8c458a92
inc edx
mov dword [esp + 0x1c], 0xbf2b8319
mov dword [esp + 0x34], ebx
mov dword [esp + 0x14], ebx
jmp 0x1004314e
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x28c]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1004313c
dec dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
cmp edx, eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, ecx
setle dl
xor ecx, ecx
imul edx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
cmp eax, edx
mov eax, dword [esp + 0xc]
setne cl
xor edx, edx
cmp ecx, eax
setl dl
sub edx, 0xa94fe87
neg edx
sbb edx, edx
xor eax, eax
xor esi, esi
inc edx
inc esi
cmp edx, esi
setge al
sub eax, dword [esp + 0xc]
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
cmp eax, ecx
setle dl
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc]
inc eax
je 0x100431da
cmp dword [esp + 0x1c], ebx
je 0x100431da
xor eax, eax
inc eax
jmp 0x100431dc
mov eax, ebx
mov dword [esp + 0x24], eax
xor edx, edx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
sub ecx, 0x2c64
cmp ecx, eax
mov eax, dword [esp + 0x20]
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x28c]
call fcn.10016ec3
push 3
mov dword [esp + 0x24], 0x3cdf98a5
mov dword [esp + 0x10], ebx
pop esi
jmp 0x10043240
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x364], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10043231
mov dword [esp + 0xc], ebx
jmp 0x1004325b
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x90], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x1004324c
mov dword [esp + 0x90], ebx
jmp 0x10043283