Function at 0x47f3f0
Capabilities:
Accept command line arguments
Check if file exists
Query or enumerate registry value
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d7ed7
mov eax, dword fs:[0]
push eax
sub esp, 0x524
mov eax, dword [0x510200]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x49c], ecx
push 0
lea eax, [ebp - 0x438]
push eax
call fcn.00401a40
add esp, 8
mov dword [ebp - 4], 0
push str.jiebangbang_screenmain.on
lea ecx, [ebp - 0x438]
push ecx
lea edx, [ebp - 0x498]
push edx
call fcn.00445c20
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x498]
call fcn.00402850
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x47f4ab
push str.jiebangbanglog
lea ecx, [ebp - 0x438]
call fcn.00414510
lea ecx, [ebp - 0x438]
call fcn.00402850
push eax
call fcn.00401d00
add esp, 4
lea ecx, [ebp - 0x438]
call fcn.00402850
push eax
push 0x4e0ecc
call fcn.00468ca0
add esp, 8
mov ecx, dword [ebp - 0x49c]
add ecx, 0xc
call fcn.0047d020
movzx eax, al
test eax, eax
jne 0x47f50b
mov dword [ebp - 0x4a8], 1
push str.configthread
lea ecx, [ebp - 0x4a8]
push ecx
lea edx, [ebp - 0x4f0]
push edx
call fcn.0047bdd0
add esp, 0xc
mov dword [ebp - 0x4ac], eax
mov eax, dword [ebp - 0x4ac]
push eax
mov ecx, dword [ebp - 0x49c]
add ecx, 0xc
call fcn.0047cfb0
lea ecx, [ebp - 0x4f0]
call fcn.0047ce40
mov ecx, dword [ebp - 0x49c]
add ecx, 0xc
call fcn.004618b0
mov ecx, eax
call fcn.0047fa70
movzx ecx, al
test ecx, ecx
jne 0x47f53c
mov ecx, dword [ebp - 0x49c]
add ecx, 0xc
call fcn.004618b0
mov ecx, eax
call fcn.00406e10
mov ecx, dword [ebp - 0x49c]
add ecx, 0x14
call fcn.0047d020
movzx edx, al
test edx, edx
jne 0x47f59c
mov dword [ebp - 0x4b0], 3
push str.runthread
lea eax, [ebp - 0x4b0]
push eax
lea ecx, [ebp - 0x4f8]
push ecx
call fcn.0047bdd0
add esp, 0xc
mov dword [ebp - 0x4b4], eax
mov edx, dword [ebp - 0x4b4]
push edx
mov ecx, dword [ebp - 0x49c]
add ecx, 0x14
call fcn.0047cfb0
lea ecx, [ebp - 0x4f8]
call fcn.0047ce40
mov ecx, dword [ebp - 0x49c]
add ecx, 0x14
call fcn.004618b0
mov ecx, eax
call fcn.0047fa70
movzx eax, al
test eax, eax
jne 0x47f5cd
mov ecx, dword [ebp - 0x49c]
add ecx, 0x14
call fcn.004618b0
mov ecx, eax
call fcn.00406e10
mov ecx, dword [ebp - 0x49c]
add ecx, 0x1c
call fcn.0047d020
movzx ecx, al
test ecx, ecx
jne 0x47f62d
mov dword [ebp - 0x4b8], 2
push str.ppConfigThread
lea edx, [ebp - 0x4b8]
push edx
lea eax, [ebp - 0x500]
push eax
call fcn.0047bdd0
add esp, 0xc
mov dword [ebp - 0x4bc], eax
mov ecx, dword [ebp - 0x4bc]
push ecx
mov ecx, dword [ebp - 0x49c]
add ecx, 0x1c
call fcn.0047cfb0
lea ecx, [ebp - 0x500]
call fcn.0047ce40
mov ecx, dword [ebp - 0x49c]
add ecx, 0x1c
call fcn.004618b0
mov ecx, eax
call fcn.0047fa70
movzx edx, al
test edx, edx
jne 0x47f65e
mov ecx, dword [ebp - 0x49c]
add ecx, 0x1c
call fcn.004618b0
mov ecx, eax
call fcn.00406e10
mov ecx, dword [ebp - 0x49c]
add ecx, 0x24
call fcn.0047d020
movzx eax, al
test eax, eax
jne 0x47f6be
mov dword [ebp - 0x4c0], 4
push str.ppRun
lea ecx, [ebp - 0x4c0]
push ecx
lea edx, [ebp - 0x508]
push edx
call fcn.0047bdd0
add esp, 0xc
mov dword [ebp - 0x4c4], eax
mov eax, dword [ebp - 0x4c4]
push eax
mov ecx, dword [ebp - 0x49c]
add ecx, 0x24
call fcn.0047cfb0
lea ecx, [ebp - 0x508]
call fcn.0047ce40
mov ecx, dword [ebp - 0x49c]
add ecx, 0x24
call fcn.004618b0
mov ecx, eax
call fcn.0047fa70
movzx ecx, al
test ecx, ecx
jne 0x47f6ef
mov ecx, dword [ebp - 0x49c]
add ecx, 0x24
call fcn.004618b0
mov ecx, eax
call fcn.00406e10
mov ecx, dword [ebp - 0x49c]
add ecx, 0x34
call fcn.0047d020
movzx edx, al
test edx, edx
jne 0x47f764
mov dword [ebp - 0x4dc], 5
push str.dllthread
lea eax, [ebp - 0x4dc]
push eax
lea ecx, [ebp - 0x510]
push ecx
call fcn.0047bdd0
add esp, 0xc
mov dword [ebp - 0x4d8], eax
mov edx, dword [ebp - 0x4d8]
push edx
mov ecx, dword [ebp - 0x49c]
add ecx, 0x34
call fcn.0047cfb0
lea ecx, [ebp - 0x510]
call fcn.0047ce40
mov ecx, dword [ebp - 0x49c]
add ecx, 0x34
call fcn.004618b0
mov ecx, eax
call fcn.00406e10
mov ecx, dword [ebp - 0x49c]
add ecx, 0x2c
call fcn.0047d020
movzx eax, al
test eax, eax
jne 0x47f7d9
mov dword [ebp - 0x4d4], 6
push str.desktop
lea ecx, [ebp - 0x4d4]
push ecx
lea edx, [ebp - 0x518]
push edx
call fcn.0047bdd0
add esp, 0xc
mov dword [ebp - 0x4d0], eax
mov eax, dword [ebp - 0x4d0]
push eax
mov ecx, dword [ebp - 0x49c]
add ecx, 0x2c
call fcn.0047cfb0
lea ecx, [ebp - 0x518]
call fcn.0047ce40
mov ecx, dword [ebp - 0x49c]
add ecx, 0x2c
call fcn.004618b0
mov ecx, eax
call fcn.00406e10
mov dword [ebp - 0x4a4], 1
push 0x208
push 0
lea ecx, [ebp - 0x420]
push ecx
call fcn.0049fbe0
add esp, 0xc
push 0x208
push 0
lea edx, [ebp - 0x218]
push edx
call fcn.0049fbe0
add esp, 0xc
mov dword [ebp - 0x4a0], 0x208
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0x420]
push ecx
lea edx, [ebp - 0x4a4]
push edx
push 0x4e0f2c
push 0x4e0f34
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
mov dword [ebp - 0x4a0], 0x208
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0x218]
push ecx
lea edx, [ebp - 0x4a4]
push edx
push 0x4e0f60
push 0x4e0f80
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
lea ecx, [ebp - 0x450]
call fcn.00402d10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x468]
call fcn.00402d10
mov byte [ebp - 4], 3
push 0
lea eax, [ebp - 0x468]
push eax
lea ecx, [ebp - 0x420]
push ecx
call fcn.00407740
add esp, 0xc
push 0
lea edx, [ebp - 0x450]
push edx
lea eax, [ebp - 0x218]
push eax
call fcn.00407740
add esp, 0xc
lea ecx, [ebp - 0x468]
push ecx
mov ecx, dword [ebp - 0x49c]
add ecx, 0x3f8
call fcn.0045e470
lea edx, [ebp - 0x450]
push edx
mov ecx, dword [ebp - 0x49c]
add ecx, 0x410
call fcn.0045e470
mov ecx, dword [ebp - 0x49c]
call fcn.004815d0
mov ecx, dword [ebp - 0x49c]
call fcn.0047f2a0
mov ecx, dword [ebp - 0x49c]
call fcn.0047f360
mov ecx, dword [ebp - 0x49c]
call fcn.0047f210
push 0
lea eax, [ebp - 0x480]
push eax
call fcn.00401a40
add esp, 8
mov byte [ebp - 4], 4
push str.jiebangbangdata.ini
lea ecx, [ebp - 0x480]
call fcn.00414510
lea ecx, [ebp - 0x480]
call fcn.00402850
push eax
push 0
push str.start
push str.upgrade
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x4cc], eax
cmp dword [ebp - 0x4cc], 0
je 0x47f97e
mov ecx, dword [ebp - 0x49c]
call fcn.004812e0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x530]
call fcn.004078d0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x49c]
push ecx
lea ecx, [ebp - 0x51c]
call fcn.004519c0
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x4e0]
push eax
lea ecx, [ebp - 0x52c]
call fcn.004627e0
mov ecx, dword [eax]
push ecx
lea edx, [ebp - 0x4e4]
push edx
lea ecx, [ebp - 0x52c]
call fcn.00462330
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x4e8]
push ecx
call fcn.0047bbc0
add esp, 0x10
mov dword [ebp - 0x4c8], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x530]
call fcn.00407b40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x480]
call fcn.00401ec0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x468]
call fcn.00402c40
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x450]
call fcn.00402c40
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x498]
call fcn.00401ec0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x438]
call fcn.00401ec0
mov eax, dword [ebp - 0x4c8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049da3c
mov esp, ebp
pop ebp
ret 0x10