Function at 0x424170
Capabilities:
Accept command line arguments
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5cf2b0
mov eax, dword fs:[0]
push eax
sub esp, 0x434
mov eax, dword [0x64f494]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x18]
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
push 0
mov dword [ebp - 0x438], esi
mov dword [ebp - 0x43c], eax
mov dword [0x658e2c], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0x430]
mov dword [ebp - 0x430], 8
push eax
mov dword [ebp - 0x42c], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.00435780
push 0x5e86d4
push 0
call fcn.0054efc5
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push 0x5e86d8
call fcn.00428e20
add esp, 8
mov ecx, 0x658e5c
push 0
push dword [0x658e2c]
push 0
call fcn.0041e820
lea ecx, [ebp - 0x440]
call fcn.0040a620
mov dword [ebp - 4], 0
call fcn.00423720
mov ecx, eax
call fcn.004601f0
mov eax, dword [0x658ecc]
test al, 1
jne 0x42427a
or eax, 1
mov dword [0x658ecc], eax
mov ecx, 0x658ec8
mov byte [ebp - 4], 1
call fcn.0042fec0
push 0x5e2150
call fcn.00465614
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x658ec8
call fcn.0042ff10
push esi
call fcn.0041ce50
mov ecx, eax
call fcn.00418b90
push esi
push str.lpstrCmdLine_s
call fcn.00428e20
add esp, 8
call fcn.00435780
mov edi, eax
lea eax, [ebp - 0x420]
push eax
push str.DLL_NETUL
push 0xcc
push dword [0x658e2c]
mov ecx, dword [edi]
push edi
call dword [ecx + 8]
test eax, eax
jne 0x4242d9
push str.InitCloudConfig_failed.
call fcn.00428e20
add esp, 4
jmp 0x424375
push str.InitCloudConfig_success.
call fcn.00428e20
mov esi, esp
mov dword [ebp - 0x42c], esp
mov dword [ebp - 0x428], esi
call fcn.00408aa0
mov ecx, eax
test ecx, ecx
je 0x424b46
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x420]
mov byte [ebp - 4], 2
push eax
mov ecx, esi
call fcn.00407e70
test al, al
jne 0x42434e
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x424330
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.00409260
mov byte [ebp - 4], 3
call fcn.0041ce50
mov ecx, eax
mov byte [ebp - 4], 0
call fcn.00418ab0
mov esi, dword [edi]
call fcn.0041ce50
mov ecx, eax
call fcn.0041ac10
push eax
push edi
call dword [esi + 0x54]
call fcn.0041ce50
mov ecx, eax
call fcn.0041ac10
push eax
call fcn.0042f8e0
push ebx
call fcn.0047e080
mov ecx, dword [0x656488]
add esp, 4
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor bl, bl
test ecx, ecx
jne 0x4243fd
push 0x64dd28
call edi
cmp dword [0x656488], 0
jne 0x4243ec
push 0x90
call fcn.004308d0
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x4243d6
mov ecx, eax
call fcn.00415180
jmp 0x4243d8
xor eax, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x656488], eax
push 0x64dd28
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x656488]
call fcn.0041a7e0
mov esi, dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test al, al
je 0x4244ae
lea eax, [ebp - 0x424]
mov dword [ebp - 0x428], 4
push eax
lea eax, [ebp - 0x42c]
mov dword [ebp - 0x424], 0x104
push eax
lea eax, [ebp - 0x428]
push eax
push str.em_lds
push str.SOFTWAREBiscuitZip
push reloc.OLEAUT32.dll_SysReAllocString
call esi
cmp dword [ebp - 0x42c], 1
je 0x4244ae
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x428], 1
push 0
push eax
mov dword [ebp - 0x42c], 0x104
call fcn.00520870
add esp, 0xc
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x428]
push eax
push str.Setup_Path
push str.SOFTWAREBiscuitZip
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x4244ae
mov bl, 1
jmp 0x4245c0
mov ecx, dword [0x656488]
test ecx, ecx
jne 0x424513
push 0x64dd28
call edi
cmp dword [0x656488], 0
jne 0x424502
push 0x90
call fcn.004308d0
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x4244ec
mov ecx, eax
call fcn.00415180
jmp 0x4244ee
xor eax, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x656488], eax
push 0x64dd28
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x656488]
call fcn.0041a7e0
test al, al
jne 0x4245c0
lea eax, [ebp - 0x42c]
mov dword [ebp - 0x428], 4
push eax
lea eax, [ebp - 0x424]
mov dword [ebp - 0x42c], 0x104
push eax
lea eax, [ebp - 0x428]
push eax
push str.em_lds
push str.SOFTWAREBiscuitZip
push reloc.OLEAUT32.dll_SysReAllocString
call esi
cmp dword [ebp - 0x424], 1
jne 0x4245c0
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x428], 1
push 0
push eax
mov dword [ebp - 0x42c], 0x104
call fcn.00520870
add esp, 0xc
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x428]
push eax
push str.Setup_Path
push str.SOFTWAREBiscuitZip
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
movzx ebx, bl
mov ecx, 1
cmove ebx, ecx
call fcn.00408aa0
mov ecx, eax
test ecx, ecx
je 0x424b50
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x434], eax
lea eax, [ebp - 0x434]
mov byte [ebp - 4], 6
push eax
call fcn.00422dc0
add esp, 4
test eax, eax
jle 0x42483f
test bl, bl
jne 0x42483f
call fcn.0041ce50
mov ecx, eax
call fcn.004188a0
push eax
call fcn.004237b0
mov ecx, eax
call fcn.0040cf40
push str.installpkg
call fcn.004237b0
mov ecx, eax
call fcn.0040cf50
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00520870
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push dword [0x658e2c]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call fcn.004237b0
mov ecx, eax
call fcn.0040ceb0
call fcn.0041ce50
mov ecx, eax
call fcn.0041a7e0
or edi, 0xffffffff
test al, al
je 0x4246fd
call fcn.00408aa0
mov ecx, eax
test ecx, ecx
je 0x424b5a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x424], eax
push str.in_dzip
lea ecx, [ebp - 0x424]
mov byte [ebp - 4], 8
call fcn.00407e70
test al, al
jne 0x4246c5
push 7
push str.in_dzip
lea ecx, [ebp - 0x424]
call fcn.00409260
lea eax, [ebp - 0x424]
mov byte [ebp - 4], 9
push eax
call fcn.004237b0
mov ecx, eax
call fcn.0040cea0
mov edx, dword [ebp - 0x424]
mov eax, edi
mov byte [ebp - 4], 6
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4246fd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x42c], esp
mov dword [eax + 0x24], 0
mov ecx, dword [0x658ec4]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0xa
test ecx, ecx
jne 0x42477b
push 0x64e10c
call esi
cmp dword [0x658ec4], 0
jne 0x42476a
push 0x20
call fcn.004308d0
add esp, 4
mov dword [ebp - 0x428], eax
mov byte [ebp - 4], 0xb
test eax, eax
je 0x424754
mov ecx, eax
call fcn.0040b4a0
jmp 0x424756
xor eax, eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x658ec4], eax
push 0x64e10c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x658ec4]
push 0
push 0
push 0x5e87b4
mov byte [ebp - 4], 6
call fcn.0040cb90
call fcn.00423b10
mov ebx, eax
test ebx, ebx
je 0x4247cb
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [ebp - 0x434]
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x424993
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x424993
call fcn.00423d80
test eax, eax
jne 0x4247fe
mov edx, dword [ebp - 0x434]
lea ebx, [eax + 0xe]
mov byte [ebp - 4], al
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x424993
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x424993
push dword [ebp + 0x14]
push dword [ebp - 0x43c]
push dword [ebp - 0x438]
call fcn.00426100
mov edx, dword [ebp - 0x434]
add esp, 0xc
mov ebx, eax
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x424993
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x424993
or edi, 0xffffffff
test eax, eax
jns 0x424859
push 0
push 0x5e8720
push 0
call fcn.0042f8f0
jmp 0x424969
lea eax, [ebp - 0x424]
push eax
call fcn.0041ce50
mov ecx, eax
call fcn.004188c0
mov byte [ebp - 4], 7
call fcn.00435780
lea ecx, [ebp - 0x434]
push ecx
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x58]
call fcn.00435780
push ecx
mov ecx, esp
mov esi, eax
push 0x5e873c
lea eax, [ebp - 0x434]
push eax
push ecx
call fcn.00422350
mov eax, dword [esi]
add esp, 0xc
mov ecx, esi
call dword [eax + 0x5c]
mov eax, dword [ebp - 0x424]
cmp dword [eax - 4], 1
jle 0x4248c9
push dword [eax - 0xc]
lea ecx, [ebp - 0x424]
call fcn.004089f0
mov eax, dword [ebp - 0x424]
push eax
push str.RunApp_cmdLine:__s
call fcn.00428e20
add esp, 8
call fcn.00435780
push eax
mov ecx, dword [eax]
call dword [ecx + 0x4c]
test eax, eax
je 0x424915
call fcn.00435780
mov ecx, dword [ebp - 0x424]
mov esi, eax
cmp dword [ecx - 4], 1
jle 0x42490d
push dword [ecx - 0xc]
lea ecx, [ebp - 0x424]
call fcn.004089f0
mov ecx, dword [ebp - 0x424]
push ecx
push str.BiscuitZip64.exe
jmp 0x424942
call fcn.00435780
mov ecx, dword [ebp - 0x424]
mov esi, eax
cmp dword [ecx - 4], 1
jle 0x42493c
push dword [ecx - 0xc]
lea ecx, [ebp - 0x424]
call fcn.004089f0
mov ecx, dword [ebp - 0x424]
push ecx
push str.BiscuitZip.exe
mov eax, dword [esi]
push esi
call dword [eax + 0x3c]
mov edx, dword [ebp - 0x424]
mov eax, edi
mov byte [ebp - 4], 6
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x424969
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x434]
mov ebx, 0x10
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x42498d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x658ecc]
test al, 1
jne 0x4249c3
or eax, 1
mov dword [0x658ecc], eax
mov ecx, 0x658ec8
mov byte [ebp - 4], 0xc
call fcn.0042fec0
push 0x5e2150
call fcn.00465614
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x658ec8
call fcn.00430330
call fcn.00423720
mov ecx, eax
call fcn.00460360
call fcn.004360b0
mov ecx, 0x658e98
call fcn.0040b370
push 0x5dc
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [0x658e28]
add edi, 0x10
push edi
call esi
mov esi, dword [0x658e94]
test esi, esi
je 0x424a51
cmp dword [esi + 4], 0
jle 0x424a1f
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x658e94]
test esi, esi
je 0x424a51
mov eax, dword [esi]
test eax, eax
je 0x424a38
push eax
call fcn.0054adb6
add esp, 4
mov dword [esi], 0
push 0xc
push esi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.00465219
add esp, 8
push edi
mov dword [0x658e94], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x658e90]
test esi, esi
je 0x424aaa
mov eax, dword [esi]
test eax, eax
je 0x424a81
push eax
call fcn.0054adb6
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x424a98
push eax
call fcn.0054adb6
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.00465219
add esp, 8
mov esi, dword [0x658e88]
test esi, esi
je 0x424ae3
cmp dword [esi], 0
je 0x424ae3
nop dword [eax]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x424acd
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esi + 0x20]
push 0
mov dword [esi + 0x10], 0
call eax
add esi, 0x24
cmp dword [esi], 0
jne 0x424ac0
mov esi, dword [0x64df70]
mov ecx, dword [0x64df74]
cmp esi, ecx
jae 0x424b0d
mov eax, dword [esi]
test eax, eax
je 0x424b06
mov eax, dword [eax + 0x1c]
push 0
call eax
mov ecx, dword [0x64df74]
add esi, 4
cmp esi, ecx
jb 0x424af3
mov ecx, 0x658e5c
call fcn.00426690
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0x440]
call fcn.0040a660
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00465208
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00407e50
push 0x80004005
call fcn.00407e50
push 0x80004005
call fcn.00407e50
int3