Function at 0x43a1b0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4a7e4e
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x603c
call fcn.0048ed30
mov eax, dword [0x4c97a0]
xor eax, esp
mov dword [esp + 0x6038], eax
push ebx
push esi
push edi
mov eax, dword [0x4c97a0]
xor eax, esp
push eax
lea eax, [esp + 0x6050]
mov dword fs:[0], eax
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
push eax
mov ecx, str.Path
mov esi, 0x4d08dc
xor edi, edi
call fcn.0046c8c0
push ecx
mov ecx, esp
mov dword [esp + 0x6060], edi
mov dword [esp + 0x20], esp
push ecx
mov ecx, str.SOFTWAREMicrosoftWindowsCurrentVersionApp_Paths360safe.exe
call fcn.0046c8c0
push reloc.OLEAUT32.dll_SysReAllocString
lea edx, [esp + 0x40]
or ebx, 0xffffffff
push edx
mov ecx, edi
mov dword [esp + 0x6068], ebx
call fcn.0046a960
push eax
mov dword [esp + 0x605c], 1
call fcn.0046a8b0
mov esi, eax
mov dword [esp + 0x605c], ebx
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
mov edx, ebx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a27e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], ebx
dec ebx
test ebx, ebx
jg 0x43a29b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
je 0x43a2e4
mov edx, dword [0x4d08dc]
mov ecx, dword [edx - 0xc]
test ecx, ecx
je 0x43a362
lea eax, [ecx - 1]
test eax, eax
jl 0x43a2da
cmp eax, ecx
jg 0x43a2da
movzx eax, word [edx + eax*2]
cmp ax, 0x5c
je 0x43a362
push 0x5c
mov edi, 0x4d08dc
call fcn.00465b80
jmp 0x43a362
push 0x80070057
call fcn.004752e0
mov esi, dword [0x4d08dc]
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x43a313
mov ecx, 0x104
mov eax, 0x4d08dc
call fcn.0046c770
mov esi, dword [0x4d08dc]
mov ecx, dword [0x4ce640]
push 0x104
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x4b69a8
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [0x4d08dc]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0048c35c
add esp, 8
test eax, eax
jl 0x43a2da
mov ecx, dword [0x4d08dc]
cmp eax, dword [ecx - 8]
jg 0x43a2da
mov dword [ecx - 0xc], eax
mov ecx, dword [0x4d08dc]
xor edx, edx
mov word [ecx + eax*2], dx
lea edx, [esp + 0x24]
push edx
push 1
xor edi, edi
push edi
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x38], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x43a54d
push 0x1ffe
lea ecx, [esp + 0x4a]
push edi
push ecx
mov dword [esp + 0x20], 0x1000
mov word [esp + 0x50], ax
call fcn.0048dc10
add esp, 0xc
push 0x3fff
lea edx, [esp + 0x2049]
push edi
push edx
mov byte [esp + 0x2050], 0
call fcn.0048dc10
add esp, 0xc
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x2048]
push ecx
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x30]
push edi
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x58]
push ecx
push edi
push edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], 0x4000
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x43a540
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
call fcn.0046c8c0
mov dword [esp + 0x6058], 2
mov edx, dword [esp + 0x20]
mov edi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, edi
or eax, ecx
jge 0x43a445
mov ecx, edi
lea eax, [esp + 0x20]
call fcn.0046c770
mov edx, dword [esp + 0x20]
lea ecx, [edi + 1]
push ecx
push edx
call fcn.0048c079
add esp, 8
test edi, edi
jl 0x43a2da
mov eax, dword [esp + 0x20]
cmp edi, dword [eax - 8]
jg 0x43a2da
mov dword [eax - 0xc], edi
mov eax, dword [esp + 0x20]
xor edx, edx
mov word [eax + edi*2], dx
mov eax, dword [esp + 0x18]
cmp eax, 4
jne 0x43a497
lea ecx, [esp + 0x20]
push ecx
mov ebx, 0x4d0cf4
call fcn.0044f460
mov edx, dword [esp + 0x2044]
mov dword [eax], edx
jmp 0x43a4d2
cmp eax, 1
jne 0x43a4d2
lea ebx, [esp + 0x20]
mov edi, 0x4d0d14
call fcn.0044c130
lea ecx, [esp + 0x2044]
lea edi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x43a4b4
sub ecx, edi
sar ecx, 1
lea edx, [esp + 0x2044]
push edx
mov ebx, ecx
call fcn.0046c7e0
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a4fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x2048]
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x30]
push 0
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x58]
push edx
inc esi
push esi
push eax
mov dword [esp + 0x34], 0x1000
mov dword [esp + 0x48], 0x4000
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
je 0x43a405
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edi, edi
mov edx, dword [0x4d08dc]
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
push str.hotfix
push edx
push 0x4d0aec
call esi
mov eax, dword [0x4d08dc]
push str.pdown.dll
push eax
push 0x4d08e0
call esi
mov dword [esp + 0x14], edi
cmp dword [0x4d2004], edi
jne 0x43a5a4
push str.IsWow64Process
push str.kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4d2004], eax
cmp eax, edi
je 0x43a5b6
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [0x4d2004]
cmp dword [esp + 0x14], edi
je 0x43a5dc
mov edx, dword [0x4d08dc]
push str.libleak_64_dif.dat
push edx
push 0x4d04cc
call esi
mov eax, dword [0x4d08dc]
push str.libleak_64_dif.cab
push eax
jmp 0x43a5fb
mov ecx, dword [0x4d08dc]
push str.libleak_dif.dat
push ecx
push 0x4d04cc
call esi
mov edx, dword [0x4d08dc]
push str.libleak_dif.cab
push edx
push 0x4d06d4
call esi
lea eax, [esp + 0x14]
push eax
mov ecx, str.savepath
call fcn.0046c8c0
lea ebx, [esp + 0x14]
mov edi, 0x4d0d14
mov dword [esp + 0x6058], 3
call fcn.0044c130
mov ecx, dword [eax]
mov edi, dword [0x4d0ae8]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x43a685
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x43a677
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x43a677
call fcn.0046b5f0
mov ebx, eax
mov eax, esi
or esi, 0xffffffff
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a66c
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add ebx, 0x10
mov dword [0x4d0ae8], ebx
jmp 0x43a688
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, 0x4d0ae8
call fcn.0046c7e0
or esi, 0xffffffff
mov dword [esp + 0x6058], esi
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a6ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [0x4d0ae8]
cmp dword [ecx - 0xc], 0
jne 0x43a6e2
mov eax, 0x4d0aec
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43a6c2
sub eax, edx
sar eax, 1
mov ebx, eax
push 0x4d0aec
mov eax, 0x4d0ae8
call fcn.0046c7e0
fld1
lea edx, [esp + 0x14]
push edx
fstp qword [0x4d0d40]
mov ecx, str.popratestr
mov dword [0x4d0d38], 0
mov dword [0x4d0d34], 1
call fcn.0046c8c0
lea ebx, [esp + 0x14]
mov edi, 0x4d0d14
mov dword [esp + 0x6058], 4
call fcn.0044c130
mov eax, dword [eax]
cmp dword [eax - 0xc], 0
mov dword [esp + 0x6058], esi
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a755
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43a7b8
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.popratestr
call fcn.0046c8c0
lea ebx, [esp + 0x14]
mov edi, 0x4d0d14
mov dword [esp + 0x6058], 5
call fcn.0044c130
mov eax, dword [eax]
push eax
call fcn.0048cb7a
fstp qword [0x4d0d40]
mov dword [esp + 0x605c], esi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43a7b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
fld1
lea ecx, [esp + 0x14]
push ecx
fstp qword [0x4d0d48]
mov ecx, str.c_popratestr
call fcn.0046c8c0
lea ebx, [esp + 0x14]
mov edi, 0x4d0d14
mov dword [esp + 0x6058], 6
call fcn.0044c130
mov edx, dword [eax]
cmp dword [edx - 0xc], 0
mov dword [esp + 0x6058], esi
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a817
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43a878
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.c_popratestr
call fcn.0046c8c0
lea ebx, [esp + 0x14]
mov edi, 0x4d0d14
mov dword [esp + 0x6058], 7
call fcn.0044c130
mov eax, dword [eax]
push eax
call fcn.0048cb7a
fstp qword [0x4d0d48]
mov dword [esp + 0x605c], esi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
lock xadd dword [edx], esi
dec esi
test esi, esi
jg 0x43a878
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.silent
mov dword [0x4d0d88], 1
mov dword [0x4d0d8c], eax
mov dword [0x4d0d50], eax
mov dword [0x4d0d84], eax
call fcn.0046c8c0
mov edi, dword [0x4d0d0c]
mov ebx, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43a8ce
cmp eax, ebx
je 0x43a8d3
call fcn.0048b4bc
cmp dword [esi + 4], edi
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a8f9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43a975
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.silent
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 8
call fcn.0044f460
mov esi, dword [eax]
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a957
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, 2
jne 0x43a968
mov dword [0x4d0d88], 0
jmp 0x43a97f
cmp esi, 1
jne 0x43a97f
mov dword [0x4d0d8c], esi
jmp 0x43a97f
mov dword [0x4d0d84], 1
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.sendlevel
mov dword [0x4d0d54], 2
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43a9c4
cmp eax, edi
je 0x43a9c9
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a9ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43aa4e
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.sendlevel
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 9
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d54], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43aa4e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.autofixtip
mov dword [0x4d0d58], 0
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43aa93
cmp eax, edi
je 0x43aa98
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43aabe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43ab1d
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.autofixtip
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0xa
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d58], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ab1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.examinscan
mov dword [0x4d0d5c], 1
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43ab62
cmp eax, edi
je 0x43ab67
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ab8d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43abec
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.examinscan
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0xb
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d5c], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43abec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.competition
mov dword [0x4d0d90], 1
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43ac31
cmp eax, edi
je 0x43ac36
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ac5c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43acbb
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.competition
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0xc
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d90], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43acbb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.popwidth
mov dword [0x4d0d60], 0x189
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43ad00
cmp eax, edi
je 0x43ad05
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ad2b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43adab
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.popwidth
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0xd
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d60], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ad8e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [0x4d0d60]
cmp eax, 0x3e8
ja 0x43ada1
cmp eax, 0x17d
jae 0x43adab
mov dword [0x4d0d60], 0x189
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.popheight
mov dword [0x4d0d64], 0x1a9
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43adf0
cmp eax, edi
je 0x43adf5
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ae1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43ae9b
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.popheight
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0xe
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d64], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ae7e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [0x4d0d64]
cmp eax, 0x3e8
ja 0x43ae91
cmp eax, 0x1a9
jae 0x43ae9b
mov dword [0x4d0d64], 0x1a9
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.poppos
mov dword [0x4d0d68], 1
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43aee0
cmp eax, edi
je 0x43aee5
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43af0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43af87
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.poppos
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0xf
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d68], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43af6e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [0x4d0d68]
cmp eax, 1
jge 0x43af87
cmp eax, 5
jle 0x43af87
mov dword [0x4d0d68], 1
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.edgedistx
mov dword [0x4d0d6c], 5
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43afcc
cmp eax, edi
je 0x43afd1
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43aff7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43b069
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.edgedistx
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0x10
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d6c], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b056
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [0x4d0d6c], 0x32
jbe 0x43b069
mov dword [0x4d0d6c], 5
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.edgedisty
mov dword [0x4d0d70], 5
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43b0ae
cmp eax, edi
je 0x43b0b3
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b0d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43b14b
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.edgedisty
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0x11
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d70], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b138
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [0x4d0d70], 0x32
jbe 0x43b14b
mov dword [0x4d0d70], 5
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.allowairestore
mov dword [0x4d0d78], 1
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43b190
cmp eax, edi
je 0x43b195
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b1bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43b21a
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.allowairestore
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0x12
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d78], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b21a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.sortreverse
mov dword [0x4d0d7c], 0
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43b25f
cmp eax, edi
je 0x43b264
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b28a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43b2e9
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.sortreverse
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0x13
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d7c], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b2e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, 0x4b6b80
mov dword [0x4d0d80], 0
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43b32e
cmp eax, edi
je 0x43b333
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b359
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43b3b8
lea ecx, [esp + 0x14]
push ecx
mov ecx, 0x4b6b80
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0x14
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0d80], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b3b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.lastpopwndtime
mov dword [0x4d0da4], 0
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43b3fd
cmp eax, edi
je 0x43b402
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b428
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43b487
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.lastpopwndtime
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0x15
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0da4], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b487
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.lastnofixclosewndcount
mov dword [0x4d0db8], 0
call fcn.0046c8c0
mov ebx, dword [0x4d0d0c]
mov edi, dword [0x4d0cf4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
mov esi, 0x4d0cf4
call fcn.0044ed00
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x43b4cc
cmp eax, edi
je 0x43b4d1
call fcn.0048b4bc
cmp dword [esi + 4], ebx
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b4f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x43b556
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.lastnofixclosewndcount
call fcn.0046c8c0
lea edx, [esp + 0x14]
push edx
mov ebx, 0x4d0cf4
mov dword [esp + 0x605c], 0x16
call fcn.0044f460
mov eax, dword [eax]
mov dword [0x4d0db8], eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b556
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.lastscantime
call fcn.0046c8c0
lea ebx, [esp + 0x14]
mov edi, 0x4d0d14
mov dword [esp + 0x6058], 0x17
call fcn.0044c130
mov ecx, dword [eax]
mov esi, dword [0x4d0364]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x43b5d5
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x43b5c7
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x43b5c7
call fcn.0046b5f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x43b5bc
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [0x4d0364], ebx
jmp 0x43b5d5
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, 0x4d0364
call fcn.0046c7e0
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b600
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, str.topmostproc_s
call fcn.0046c8c0
lea ebx, [esp + 0x2c]
mov edi, 0x4d0d14
mov dword [esp + 0x6058], 0x18
call fcn.0044c130
mov eax, dword [eax]
lea edx, [esp + 0x30]
push edx
mov ecx, eax
call fcn.0044ae20
add esp, 4
mov byte [esp + 0x6058], 0x19
mov eax, dword [eax]
push eax
mov ecx, 0x4d02a0
call fcn.00448b80
mov byte [esp + 0x6058], 0x18
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b676
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x6058], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b6a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x6050]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x6038]
xor ecx, esp
call fcn.0048b133
mov esp, ebp
pop ebp
ret