Function at 0x10044d1a
Capabilities:
Set registry value

Disassembly:
mov eax, 0x1006912d
call fcn.10068648
sub esp, 0x84
push ebx
push edi
xor edi, edi
lea ecx, [ebp - 0x70]
inc edi
push edi
call fcn.10029e7b
xor ebx, ebx
mov dword [ebp - 0x14], ebx
jmp 0x10044d4f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], 0xffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10044d3f
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10044d63
push ebx
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
mov eax, dword [ebp - 0x70]
push eax
dec dword [eax]
call fcn.1004fee7
pop ecx
push edi
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
call fcn.10029e7b
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], ebx
jmp 0x10044d9c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov dword [eax + ecx*4], 0x97f6af11
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10044d8c
mov eax, dword [ebp - 0x40]
push esi
mov dword [eax], ebx
mov dword [ebp - 0x14], ebx
jmp 0x10044dbd
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x84], 0x8cd54673
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10044dac
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 9
mov eax, dword [ebp - 0x40]
setne cl
xor edx, edx
imul ecx, ecx, 0xfff8
cmp dword [eax], ecx
mov eax, dword [ebp - 0x84]
setge dl
xor ecx, ecx
sub edx, 0x92e6
cmp edx, eax
sete cl
cmp ecx, 0x684593f6
jne 0x10044e00
mov ecx, ebx
cmp dword [ebp - 0x80], ebx
je 0x10044e02
mov ecx, edi
mov eax, dword [ebp - 0x40]
xor edx, edx
mov esi, dword [eax]
mov eax, dword [ebp - 0x18]
imul eax, ecx
sub eax, dword [ebp - 0x18]
cmp eax, 0x68993dd6
mov eax, dword [ebp - 0x18]
setg dl
sub edx, 0xc0a9
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, esi
imul esi, esi
cmp esi, edx
setl cl
xor edx, edx
cmp ecx, eax
setle dl
inc edx
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x40]
inc dword [eax]
cmp dword [eax], 2
jl 0x10044da7
push eax
call fcn.1004fee7
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov byte [ebp - 0xd], bl
pop ecx
cmp byte [ebp - 0xd], bl
je 0x10045099
mov dword [ebp - 0x1c], 0x183a
cmp dword [ebp - 0x1c], 0xe1c
jge 0x10044fce
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x64]
push eax
push 0x100081b0
call fcn.1004f9f0
mov edx, dword [ebp - 0x78]
add esp, 0xc
mov ecx, dword [ebp - 0x64]
call fcn.10044d01
and dword [ebp - 0x2c], ebx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
and dword [ebp - 4], 0
mov esi, edi
mov dword [ebp - 0x24], esi
cmp eax, edi
jl 0x10044f0c
mov edi, eax
mov eax, edi
cdq
idiv esi
test edx, edx
jne 0x10044ef9
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x34]
call fcn.10029faa
mov esi, dword [ebp - 0x24]
mov eax, esi
imul eax, esi
cmp eax, edi
jge 0x10044ef9
mov eax, edi
lea ecx, [ebp - 0x34]
cdq
idiv esi
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x5c]
push eax
call fcn.10029faa
inc esi
mov eax, esi
mov dword [ebp - 0x24], esi
imul eax, esi
cmp eax, edi
jle 0x10044ec4
mov ebx, dword [ebp - 0x30]
xor edi, edi
inc edi
mov esi, dword [ebp - 0x34]
push ebx
push esi
call fcn.1002e188
lea eax, [ebp - 0x20]
push eax
push 0x10008114
call fcn.1004f9f0
mov eax, dword [ebp - 0x20]
add esp, 0x10
test eax, eax
je 0x10044fac
sub ebx, esi
sar ebx, 2
dec eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x60]
push eax
push 0x10008128
call fcn.1004f9f0
mov ecx, ebx
mov byte [ebp - 0x25], 0
add esp, 0xc
mov eax, esi
mov dword [ebp - 0x18], eax
test ecx, ecx
jle 0x10044f89
mov edi, dword [ebp - 0x74]
mov eax, ecx
cdq
sub eax, edx
mov edx, eax
sar edx, 1
lea eax, [esi + edx*4]
cmp edi, dword [eax]
jl 0x10044f7a
lea esi, [eax + 4]
or eax, 0xffffffff
sub eax, edx
add ecx, eax
jmp 0x10044f7c
mov ecx, edx
test ecx, ecx
jg 0x10044f5e
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax - 4]
or ecx, 0xffffffff
cmp eax, dword [ebp - 0x60]
cmovge ecx, eax
push ecx
push 0x10008130
call fcn.1004fd81
mov eax, dword [ebp - 0x20]
pop ecx
pop ecx
test eax, eax
jne 0x10044f33
xor edi, edi
inc edi
or dword [ebp - 4], 0xffffffff
dec eax
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10044fcc
push esi
call fcn.1004fee7
xor ebx, ebx
pop ecx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
jmp 0x10044fce
xor ebx, ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], 0x971867b8
mov dword [ebp - 0x18], ebx
jmp 0x10044fee
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x90], 0xfffb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10044fdd
mov dword [ebp - 0x14], 2
cmp dword [ebp - 0x14], ebx
jl 0x1004506c
push edi
lea ecx, [ebp - 0x58]
call fcn.10029e7b
mov dword [ebp - 0x18], ebx
jmp 0x1004501a
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x58]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x1004500e
mov eax, dword [ebp - 0x58]
mov dword [eax], 2
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x90]
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0x90]
cmp eax, 0xc370
setg cl
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x58]
jne 0x10045057
dec dword [eax]
jns 0x10045028
push eax
call fcn.1004fee7
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
dec dword [ebp - 0x14]
pop ecx
jns 0x10045000
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10045092
push ebx
push 0x1a9a
push 0x143c
push ebx
push 0xef6
push 0x1636
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push ebx
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
mov dword [ebp - 0x14], 0xb77278fa
mov dword [ebp - 0x1c], 0x7609fa85
mov dword [ebp - 0x18], ebx
pop esi
jmp 0x100450b7
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x4c], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x100450ad
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x4c], ebx
je 0x100450cc
mov eax, edi
cmp dword [ebp - 0x14], ebx
jne 0x100450ce
mov eax, ebx
cmp eax, 0x93d0b548
mov eax, dword [ebp - 0x48]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, ecx
setne dl
cmp edx, dword [ebp - 0x48]
jg 0x100450eb
cmp dword [ebp - 0x48], ebx
jne 0x100450ed
mov edi, ebx
cmp edi, 0xffffffff
sbb eax, eax
neg eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x48]
sub ecx, eax
sub edx, ecx
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0xe10e
setl al
imul eax, eax, 0x3494
test eax, eax
je 0x10045121
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x1c], ebx
je 0x10045147
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10045176
push ebx
push 0x6b3
push 0x20b6
push 0x146f
call dword [sym.imp.GDI32.dll_GetCharABCWidthsFloatA]
jmp 0x10045176
mov dword [ebp - 0x14], ebx
jmp 0x10045170
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x1004516d
push 0x17dc
push ebx
push 0x80
push 0xea1
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x17
jne 0x1004514c
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword [ebp - 0x48], eax
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret