Function at 0x40d180
Capabilities:
Accept command line arguments
Encode data using base64
Print debug messages

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x447ab0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x6a0
mov eax, dword [0x463074]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
push str.sysRepairExtertips_in_n
mov dword [ebp - 0x694], eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov edx, eax
mov dword [ebp - 0x38], 0
mov ecx, edx
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d206
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x48]
call fcn.00401f20
cmp dword [ebp - 0x34], 0x10
lea edx, [ebp - 0x48]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x38]
cmovae edx, ecx
mov dword [ebp - 0x69c], edx
cmp eax, 7
jb 0x40dc08
add eax, 0xfffffffa
add eax, edx
mov dword [ebp - 0x698], eax
sub eax, edx
push eax
push 0x2d
push edx
call fcn.00415fa0
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x40dc05
nop dword [eax + eax]
mov edx, ecx
mov esi, str.__type
mov edi, 3
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x40d27b
add edx, 4
add esi, 4
or edi, 0xffffffff
mov al, byte [edx]
cmp al, byte [esi]
jne 0x40d2a2
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x40d2a2
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x40d2a2
cmp edi, 0xffffffff
je 0x40d29e
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
jne 0x40d2a2
xor eax, eax
jmp 0x40d2a7
sbb eax, eax
or eax, 1
test eax, eax
je 0x40d2cb
mov eax, dword [ebp - 0x698]
inc ecx
sub eax, ecx
push eax
push 0x2d
push ecx
call fcn.00415fa0
mov ecx, eax
add esp, 0xc
test ecx, ecx
jne 0x40d260
jmp 0x40dc05
sub ecx, dword [ebp - 0x69c]
cmp ecx, 0xffffffff
je 0x40dc05
mov eax, dword [ebp - 0x38]
lea edi, [ecx + 7]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
cmp eax, edi
jb 0x40dc9d
sub eax, edi
or esi, 0xffffffff
cmp eax, esi
mov ecx, esi
cmovb ecx, eax
cmp dword [ebp - 0x34], 0x10
lea eax, [ebp - 0x48]
cmovae eax, dword [ebp - 0x48]
push ecx
add eax, edi
lea ecx, [ebp - 0x30]
push eax
call fcn.00401f20
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x60]
call fcn.00401850
mov edx, dword [ebp - 0x1c]
cmp edx, 0x10
jb 0x40d35d
mov ecx, dword [ebp - 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40d353
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40dca2
push edx
push ecx
call fcn.004133f4
add esp, 8
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push dword [ebp - 0x694]
call dword [sym.imp.DuiLib.dll_public:_static_void___cdecl_DuiLib::CPaintManagerUI::SetInstance_struct_HINSTANCE____]
add esp, 4
call fcn.0040cef0
push 0
lea eax, [ebp - 0x6b0]
mov dword [ebp - 0x698], 0
push eax
lea eax, [ebp - 0x698]
mov dword [ebp - 0x6b0], 1
push eax
mov dword [ebp - 0x6ac], 0
mov dword [ebp - 0x6a8], 0
mov dword [ebp - 0x6a4], 0
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
test eax, eax
jne 0x40dc05
cmp dword [ebp - 0x50], eax
je 0x40dbee
call fcn.0040c170
push ecx
mov ecx, eax
call fcn.0040a820
lea ecx, [ebp - 0x690]
call fcn.0040c2c0
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax]
mov dword [ebp - 4], 0
mov edi, dword [ebp - 0x68c]
test edi, edi
je 0x40d420
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x40d420
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x40d420
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
lea edi, [ebp - 0x60]
cmp dword [ebp - 0x4c], 0x10
lea esi, [ebp - 0x60]
mov dword [ebp - 0x20], 0
cmovae edi, dword [ebp - 0x60]
add edi, dword [ebp - 0x50]
cmp dword [ebp - 0x4c], 0x10
mov dword [ebp - 0x1c], 0xf
cmovae esi, dword [ebp - 0x60]
mov byte [ebp - 0x30], 0
mov dword [ebp - 0x694], 0
mov dword [ebp - 0x69c], 0
cmp esi, edi
je 0x40d4ed
nop
movsx eax, byte [esi]
push eax
mov dword [ebp - 0x68c], eax
call fcn.0041d9d9
add esp, 4
test eax, eax
jne 0x40d4e8
mov eax, dword [ebp - 0x68c]
cmp eax, 0x3d
je 0x40d4e8
cmp eax, 0x7f
ja 0x40dcac
mov al, byte [eax + str.________________________________________________456789:_________]
cmp al, 0x3f
jg 0x40dcac
mov ecx, dword [ebp - 0x69c]
mov edx, dword [ebp - 0x694]
shl ecx, 6
add edx, 6
movsx eax, al
or ecx, eax
mov dword [ebp - 0x694], edx
mov dword [ebp - 0x69c], ecx
cmp edx, 8
jl 0x40d4e8
sub edx, 8
mov eax, ecx
mov ecx, edx
mov dword [ebp - 0x694], edx
shr eax, cl
lea ecx, [ebp - 0x30]
push eax
call fcn.004016f0
inc esi
cmp esi, edi
jne 0x40d470
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x60]
call fcn.00401850
mov edx, dword [ebp - 0x1c]
cmp edx, 0x10
jb 0x40d52d
mov ecx, dword [ebp - 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40d523
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40dca7
push edx
push ecx
call fcn.004133f4
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x80], 0
push 0x14
movups xmmword [ebp - 0xa8], xmm0
mov dword [ebp - 0x7c], 0x400
movups xmmword [ebp - 0x90], xmm0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.00413402
add esp, 4
lea ecx, [ebp - 0xa8]
mov dword [eax], 0
mov dword [eax + 4], 0x10000
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
cmp dword [ebp - 0x4c], 0x10
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x60]
cmovae eax, dword [ebp - 0x60]
mov dword [ebp - 0x690], eax
mov dword [ebp - 0x68c], eax
lea eax, [ebp - 0x690]
push eax
call fcn.0040e070
cmp dword [ebp - 0x78], 0
je 0x40d7fd
call fcn.0040a620
lea ecx, [ebp - 0x6a0]
push ecx
mov ecx, eax
call fcn.0040a720
mov esi, dword [eax]
mov dword [ebp - 0x68c], esi
mov dword [ebp - 4], 1
or edi, 0xffffffff
mov esi, dword [ebp - 0x69c]
test esi, esi
je 0x40d613
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x40d613
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x40d613
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x68c], 0
je 0x40db7a
call fcn.0040a620
lea ecx, [ebp - 0x6a0]
push ecx
mov ecx, eax
call fcn.0040a720
push 0x458294
lea ecx, [ebp - 0x30]
mov eax, dword [eax]
mov dword [ebp - 0x68c], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
call fcn.00401950
push 0x5c
push str.d:_svn_trunkdrvrepairtool_sysrepairextertipsdesktoptips.cpp
mov esi, eax
call fcn.00415110
add esp, 8
test eax, eax
je 0x40d688
push 0x5c
push str.d:_svn_trunkdrvrepairtool_sysrepairextertipsdesktoptips.cpp
call fcn.00415110
add esp, 8
inc eax
jmp 0x40d68d
mov eax, str.d:_svn_trunkdrvrepairtool_sysrepairextertipsdesktoptips.cpp
push eax
mov ecx, esi
call fcn.00401950
push 0x4582c8
mov ecx, eax
call fcn.00401950
push str.WinMain
mov ecx, eax
call fcn.00401950
push 0x458ba0
mov ecx, eax
call fcn.00401950
mov edx, 0x6e
lea ecx, [ebp - 0xc0]
mov esi, eax
call fcn.0040a4e0
push eax
mov ecx, esi
call fcn.004018d0
push 0x4582d4
mov ecx, eax
call fcn.00401950
push str.parse_error
mov ecx, eax
call fcn.00401950
cmp dword [eax + 0x14], 0x10
jb 0x40d6f3
mov eax, dword [eax]
mov ecx, dword [ebp - 0x68c]
push eax
sub esp, 0x10
mov dword [ebp - 0x6c], 0x457f60
mov eax, esp
mov dword [ebp - 0x68], 0
movq xmm0, qword [ebp - 0x6c]
movq qword [eax], xmm0
mov dword [eax + 8], 0x457f60
call fcn.0040fb90
mov edx, dword [ebp - 0xac]
cmp edx, 0x10
jb 0x40d75c
mov ecx, dword [ebp - 0xc0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40d752
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40dcc7
push edx
push ecx
call fcn.004133f4
add esp, 8
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0xf
mov byte [ebp - 0xc0], 0
cmp edx, 0x10
jb 0x40d7ab
mov ecx, dword [ebp - 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40d7a1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40dccc
push edx
push ecx
call fcn.004133f4
add esp, 8
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
mov dword [ebp - 4], 2
mov esi, dword [ebp - 0x69c]
test esi, esi
je 0x40db7a
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x40db7a
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x40db7a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x40db7a
xorps xmm0, xmm0
lea ecx, [ebp - 0xa8]
movups xmmword [ebp - 0x70], xmm0
mov eax, 0x405
mov dword [ebp - 0x68], str.hwnd
mov word [ebp - 0x62], ax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x68c]
mov dword [ebp - 0x70], 4
push eax
call fcn.0040ddf0
cmp word [ebp - 0x9a], 3
je 0x40d852
push 0x46a
push str.d:_svn_trunkcommon_rapidjsondocument.h
push str.IsObject__
call fcn.0041e140
add esp, 0xc
mov eax, dword [ebp - 0xa8]
shl eax, 5
add eax, dword [ebp - 0xa0]
cmp dword [ebp - 0x68c], eax
je 0x40db7a
push ecx
lea ecx, [ebp - 0xa8]
call fcn.0040dd30
mov ax, word [eax + 0xe]
shr ax, 0xa
test al, 1
je 0x40db7a
push ecx
lea ecx, [ebp - 0xa8]
call fcn.0040dd30
mov ecx, eax
call fcn.0040dcf0
push eax
lea ecx, [ebp - 0x30]
call fcn.00402050
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
call fcn.0041cd24
mov dword [ebp - 0x68c], edx
add esp, 4
mov edx, dword [ebp - 0x1c]
mov esi, eax
cmp edx, 0x10
jb 0x40d8f5
mov ecx, dword [ebp - 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40d8eb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40dcd1
push edx
push ecx
call fcn.004133f4
add esp, 8
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
test esi, esi
je 0x40db7a
lea ecx, [ebp - 0x688]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::WindowImplBase::constructor_void_]
xor eax, eax
mov dword [ebp - method.CTipsFrameWnd.5.virtual_0], vtable.CTipsFrameWnd.5.0
push str.Global6DFEEC14_5619_4B05_853F_38261C450ABD
push eax
push eax
push eax
mov dword [ebp - method.CTipsFrameWnd.4.virtual_0], vtable.CTipsFrameWnd.4.0
mov dword [ebp - method.CTipsFrameWnd.3.virtual_0], vtable.CTipsFrameWnd.3.0
mov dword [ebp - method.CTipsFrameWnd.2.virtual_0], vtable.CTipsFrameWnd.2.0
mov dword [ebp - method.CTipsFrameWnd.1.virtual_0], vtable.CTipsFrameWnd.1.0
mov dword [ebp - method.CTipsFrameWnd.virtual_0], vtable.CTipsFrameWnd.0
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 7
mov word [ebp - 0x140], ax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], 7
mov word [ebp - 0x128], ax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], 7
mov word [ebp - 0x110], ax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xc8], eax
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push esi
mov dword [ebp - 0xc8], eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40da36
push 0
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push 0x88
push 0x10cf0000
sub esp, 8
mov dword [ebp - 0xe0], esi
mov eax, esp
lea ecx, [ebp - 0x688]
push 0
mov dword [eax], 0x458270
mov dword [eax + 4], 6
call dword [sym.imp.DuiLib.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::Create_struct_HWND_____class_std::basic_string_view_wchar_t__struct_std::char_traits_wchar_t____unsigned_long_int__unsigned_long_int__int__int__int__int__struct_HMENU____]
call dword [sym.imp.DuiLib.dll_public:_static_void___cdecl_DuiLib::CPaintManagerUI::MessageLoop_void_]
lea ecx, [ebp - 0x690]
call fcn.0040c2c0
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 3
mov edi, dword [ebp - 0x68c]
test edi, edi
je 0x40da7a
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x40da7a
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x40da7a
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
call fcn.0040c170
mov esi, eax
mov ecx, esi
call fcn.00410900
mov eax, dword [esi + 0x12c]
test eax, eax
je 0x40daa0
push 0xc8
call eax
mov eax, dword [esi + 0x138]
test eax, eax
je 0x40dab1
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [ebp - 0x688]
mov dword [esi + 0x138], 0
mov dword [esi + 0xe8], 0
mov dword [esi + 0xec], 0
mov dword [esi + 0xf4], 0
mov dword [esi + 0xf8], 0
mov dword [esi + 0xfc], 0
mov dword [esi + 0x100], 0
mov dword [esi + 0x104], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x118], 0
mov dword [esi + 0x11c], 0
mov dword [esi + 0x120], 0
mov dword [esi + 0x128], 0
mov dword [esi + 0x12c], 0
mov dword [esi + 0x130], 0
mov dword [esi + 0x134], 0
call fcn.0040b4e0
mov edi, dword [ebp - 0x94]
test edi, edi
je 0x40dbd0
cmp dword [edi], 0
je 0x40dba9
mov esi, dword [edi]
nop dword [eax + eax]
mov eax, esi
cmp eax, dword [edi + 8]
je 0x40dba9
mov esi, dword [eax + 8]
push eax
call fcn.0041d91b
add esp, 4
mov dword [edi], esi
test esi, esi
jne 0x40db90
mov eax, dword [edi]
test eax, eax
je 0x40dbbb
cmp eax, dword [edi + 8]
jne 0x40dbbb
mov dword [eax + 4], 0
push 1
push dword [edi + 0x10]
call fcn.004133f4
push 0x14
push edi
call fcn.004133f4
add esp, 0x10
push dword [ebp - 0x88]
call fcn.0041d91b
add esp, 4
push 1
push dword [ebp - 0x8c]
call fcn.004133f4
add esp, 8
mov eax, dword [ebp - 0x698]
test eax, eax
je 0x40dbff
push eax
call dword [sym.imp.gdiplus.dll_GdiplusShutdown]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x34]
cmp edx, 0x10
jb 0x40dc39
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40dc2f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40dcd6
push edx
push ecx
call fcn.004133f4
add esp, 8
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], 0
cmp edx, 0x10
jb 0x40dc7b
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40dc71
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40dcdb
push edx
push ecx
call fcn.004133f4
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004133e3
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10
call fcn.00401840
call fcn.004186ec
call fcn.004186ec
push str.This_contains_characters_not_legal_in_a_base64_encoded_string.
lea ecx, [ebp - 0x6c]
call fcn.0040fec0
push 0x45ff68
lea eax, [ebp - 0x6c]
push eax
call fcn.004152c9
call fcn.004186ec
call fcn.004186ec
call fcn.004186ec
call fcn.004186ec
call fcn.004186ec
int3