Function at 0x4a5240
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 0x501ab8
mov eax, dword fs:[0]
push eax
sub esp, 0x574
mov eax, dword [0x53e200]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x4b4], ecx
push 0
lea eax, [ebp - 0x438]
push eax
call fcn.00405ec0
add esp, 8
mov dword [ebp - 4], 0
push str.jiebangbang_screenmain.on
lea ecx, [ebp - 0x438]
push ecx
lea edx, [ebp - 0x4b0]
push edx
call fcn.00465580
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4b0]
call fcn.004064a0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4a52fb
push str.jiebangbanglog
lea ecx, [ebp - 0x438]
call fcn.004506d0
lea ecx, [ebp - 0x438]
call fcn.004064a0
push eax
call fcn.00406180
add esp, 4
lea ecx, [ebp - 0x438]
call fcn.004064a0
push eax
push 0x50aa30
call fcn.0048e1c0
add esp, 8
mov ecx, dword [ebp - 0x4b4]
add ecx, 0xc
call fcn.0042bec0
movzx eax, al
test eax, eax
jne 0x4a535b
mov dword [ebp - 0x4f4], 1
push str.configthread
lea ecx, [ebp - 0x4f4]
push ecx
lea edx, [ebp - 0x554]
push edx
call fcn.004a1990
add esp, 0xc
mov dword [ebp - 0x4f0], eax
mov eax, dword [ebp - 0x4f0]
push eax
mov ecx, dword [ebp - 0x4b4]
add ecx, 0xc
call fcn.004a2a30
lea ecx, [ebp - 0x554]
call fcn.004a28c0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0xc
call fcn.004111c0
mov ecx, eax
call fcn.004a5a70
movzx ecx, al
test ecx, ecx
jne 0x4a538c
mov ecx, dword [ebp - 0x4b4]
add ecx, 0xc
call fcn.004111c0
mov ecx, eax
call fcn.00404ff0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x14
call fcn.0042bec0
movzx edx, al
test edx, edx
jne 0x4a53ec
mov dword [ebp - 0x4f8], 3
push str.runthread
lea eax, [ebp - 0x4f8]
push eax
lea ecx, [ebp - 0x55c]
push ecx
call fcn.004a1990
add esp, 0xc
mov dword [ebp - 0x4fc], eax
mov edx, dword [ebp - 0x4fc]
push edx
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x14
call fcn.004a2a30
lea ecx, [ebp - 0x55c]
call fcn.004a28c0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x14
call fcn.004111c0
mov ecx, eax
call fcn.004a5a70
movzx eax, al
test eax, eax
jne 0x4a541d
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x14
call fcn.004111c0
mov ecx, eax
call fcn.00404ff0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x1c
call fcn.0042bec0
movzx ecx, al
test ecx, ecx
jne 0x4a547d
mov dword [ebp - 0x500], 2
push str.ppConfigThread
lea edx, [ebp - 0x500]
push edx
lea eax, [ebp - 0x564]
push eax
call fcn.004a1990
add esp, 0xc
mov dword [ebp - 0x504], eax
mov ecx, dword [ebp - 0x504]
push ecx
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x1c
call fcn.004a2a30
lea ecx, [ebp - 0x564]
call fcn.004a28c0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x1c
call fcn.004111c0
mov ecx, eax
call fcn.004a5a70
movzx edx, al
test edx, edx
jne 0x4a54ae
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x1c
call fcn.004111c0
mov ecx, eax
call fcn.00404ff0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x24
call fcn.0042bec0
movzx eax, al
test eax, eax
jne 0x4a550e
mov dword [ebp - 0x508], 4
push str.ppRun
lea ecx, [ebp - 0x508]
push ecx
lea edx, [ebp - 0x51c]
push edx
call fcn.004a1990
add esp, 0xc
mov dword [ebp - 0x50c], eax
mov eax, dword [ebp - 0x50c]
push eax
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x24
call fcn.004a2a30
lea ecx, [ebp - 0x51c]
call fcn.004a28c0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x24
call fcn.004111c0
mov ecx, eax
call fcn.004a5a70
movzx ecx, al
test ecx, ecx
jne 0x4a553f
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x24
call fcn.004111c0
mov ecx, eax
call fcn.00404ff0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x34
call fcn.0042bec0
movzx edx, al
test edx, edx
jne 0x4a55b4
mov dword [ebp - 0x4c4], 5
push str.pprecommend
lea eax, [ebp - 0x4c4]
push eax
lea ecx, [ebp - 0x524]
push ecx
call fcn.004a1990
add esp, 0xc
mov dword [ebp - 0x4c8], eax
mov edx, dword [ebp - 0x4c8]
push edx
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x34
call fcn.004a2a30
lea ecx, [ebp - 0x524]
call fcn.004a28c0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x34
call fcn.004111c0
mov ecx, eax
call fcn.00404ff0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x2c
call fcn.0042bec0
movzx eax, al
test eax, eax
jne 0x4a5629
mov dword [ebp - 0x4cc], 6
push str.desktop
lea ecx, [ebp - 0x4cc]
push ecx
lea edx, [ebp - 0x52c]
push edx
call fcn.004a1990
add esp, 0xc
mov dword [ebp - 0x4d0], eax
mov eax, dword [ebp - 0x4d0]
push eax
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x2c
call fcn.004a2a30
lea ecx, [ebp - 0x52c]
call fcn.004a28c0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x2c
call fcn.004111c0
mov ecx, eax
call fcn.00404ff0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x3c
call fcn.0042bec0
movzx ecx, al
test ecx, ecx
jne 0x4a569e
mov dword [ebp - 0x4d4], 7
push str.leaddll
lea edx, [ebp - 0x4d4]
push edx
lea eax, [ebp - 0x534]
push eax
call fcn.004a1990
add esp, 0xc
mov dword [ebp - 0x4d8], eax
mov ecx, dword [ebp - 0x4d8]
push ecx
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x3c
call fcn.004a2a30
lea ecx, [ebp - 0x534]
call fcn.004a28c0
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x3c
call fcn.004111c0
mov ecx, eax
call fcn.00404ff0
mov dword [ebp - 0x4bc], 1
push 0x208
push 0
lea edx, [ebp - 0x420]
push edx
call fcn.004c8420
add esp, 0xc
push 0x208
push 0
lea eax, [ebp - 0x218]
push eax
call fcn.004c8420
add esp, 0xc
mov dword [ebp - 0x4b8], 0x208
lea ecx, [ebp - 0x4b8]
push ecx
lea edx, [ebp - 0x420]
push edx
lea eax, [ebp - 0x4bc]
push eax
push 0x50aa98
push 0x50aaa0
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
mov dword [ebp - 0x4b8], 0x208
lea ecx, [ebp - 0x4b8]
push ecx
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x4bc]
push eax
push 0x50aacc
push 0x50aaf0
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
lea ecx, [ebp - 0x480]
call fcn.004073b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x450]
call fcn.004073b0
mov byte [ebp - 4], 3
push 0
lea ecx, [ebp - 0x450]
push ecx
lea edx, [ebp - 0x420]
push edx
call fcn.00406a20
add esp, 0xc
push 0
lea eax, [ebp - 0x480]
push eax
lea ecx, [ebp - 0x218]
push ecx
call fcn.00406a20
add esp, 0xc
lea edx, [ebp - 0x450]
push edx
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x400
call fcn.00483a00
lea eax, [ebp - 0x480]
push eax
mov ecx, dword [ebp - 0x4b4]
add ecx, 0x418
call fcn.00483a00
mov ecx, dword [ebp - 0x4b4]
call fcn.004a80a0
mov ecx, dword [ebp - 0x4b4]
call fcn.004a5060
mov ecx, dword [ebp - 0x4b4]
call fcn.004a51b0
mov ecx, dword [ebp - 0x4b4]
call fcn.004a4fd0
push 0
lea ecx, [ebp - 0x468]
push ecx
call fcn.00405ec0
add esp, 8
mov byte [ebp - 4], 4
push str.jiebangbangdata.ini
lea ecx, [ebp - 0x468]
call fcn.0041ee00
lea ecx, [ebp - 0x468]
call fcn.004064a0
push eax
push 0
push str.start
push str.upgrade
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x4dc], eax
cmp dword [ebp - 0x4dc], 0
je 0x4a5843
mov ecx, dword [ebp - 0x4b4]
call fcn.004a7cc0
lea edx, [ebp - 0x540]
push edx
call sub.log4cplus.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getRoot_void_
add esp, 4
mov byte [ebp - 4], 5
push 0x50abb8
lea ecx, [ebp - 0x498]
call fcn.00406420
mov byte [ebp - 4], 6
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x56c]
push ecx
call sub.log4cplus.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getInstance_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__
add esp, 8
mov dword [ebp - 0x4e0], eax
mov edx, dword [ebp - 0x4e0]
push edx
lea ecx, [ebp - 0x514]
call sub.log4cplus.dll_public:_void___thiscall_log4cplus::Logger::constructor_class_log4cplus::Logger__
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x56c]
call sub.log4cplus.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x498]
call fcn.00406380
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x540]
call sub.log4cplus.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
lea eax, [ebp - 0x514]
push eax
call fcn.00401cb0
add esp, 4
mov dword [ebp - 0x4c0], eax
push 0x4e20
mov ecx, dword [ebp - 0x4c0]
call sub.log4cplus.dll_public:_bool___thiscall_log4cplus::Logger::isEnabledFor_int_const
movzx ecx, al
test ecx, ecx
je 0x4a5947
call sub.log4cplus.dll_class_log4cplus::helpers::snprintf_buf____cdecl_log4cplus::detail::get_macro_body_snprintf_buf_void_
mov dword [ebp - 0x4e4], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push str.l_params:_ls
mov edx, dword [ebp - 0x4e4]
push edx
call sub.log4cplus.dll_public:_wchar_t_const____cdecl_log4cplus::helpers::snprintf_buf::print_wchar_t_const__
add esp, 0xc
mov dword [ebp - 0x4e8], eax
push str.int___thiscall_APP::InitEnvironment_struct_HINSTANCE____struct_HINSTANCE____wchar_t__int_
push 0x26c
push 0x50ac50
mov eax, dword [ebp - 0x4e8]
push eax
push 0x4e20
mov ecx, dword [ebp - 0x4c0]
push ecx
call sub.log4cplus.dll_void___cdecl_log4cplus::detail::macro_forced_log_class_log4cplus::Logger_const___int__wchar_t_const___char_const___int__char_const__
add esp, 0x18
xor edx, edx
jne 0x4a58c5
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x514]
call sub.log4cplus.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x580]
call fcn.00407e20
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x4b4]
push eax
lea ecx, [ebp - 0x54c]
call fcn.00421df0
mov ecx, dword [eax]
push ecx
lea edx, [ebp - 0x538]
push edx
lea ecx, [ebp - 0x57c]
call fcn.004881f0
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x544]
push ecx
lea ecx, [ebp - 0x57c]
call fcn.00487d40
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x548]
push eax
call fcn.004a1730
add esp, 0x10
mov ecx, dword [ebp - 0x4b4]
call fcn.004a5120
mov ecx, dword [ebp - 0x4b4]
call fcn.004a6cc0
mov ecx, dword [ebp - 0x4b4]
call fcn.004a7e00
mov dword [ebp - 0x4ec], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x580]
call fcn.00408090
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x468]
call fcn.00406380
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x450]
call fcn.00405590
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x480]
call fcn.00405590
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4b0]
call fcn.00406380
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x438]
call fcn.00406380
mov eax, dword [ebp - 0x4ec]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c626c
mov esp, ebp
pop ebp
ret 0x10