Function at 0x10019200
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x850
mov eax, dword [0x1002b014]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x20a
lea eax, [ebp - 0x218]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x5b8]
push 0x20a
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x7c8]
push 0x20a
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x105
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0
push 0
push 0
push 0
push 0x105
lea eax, [ebp - 0x7c8]
push eax
push 0x105
lea eax, [ebp - 0x5b8]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wsplitpath_s]
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
lea eax, [ebp - 0x7c8]
add esp, 0x24
push eax
lea eax, [ebp - 0x5b8]
push 0x105
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0x5b8]
push eax
lea eax, [ebp - 0x218]
push 0x105
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x10026ec8
push 0x105
push eax
call esi
add esp, 0xc
mov dword [ebp - 0x7ec], 0x10
xorps xmm0, xmm0
mov dword [ebp - 0x7e0], 0
lea eax, [ebp - 0x218]
movq qword [ebp - 0x7e8], xmm0
mov dword [ebp - 0x7e8], eax
lea eax, [ebp - 0x818]
push 0x2c
push 0
push eax
mov dword [ebp - 0x7d8], 0xaac56b
mov dword [ebp - 0x7d4], 0x11d0cd44
mov dword [ebp - 0x7d0], 0xc000c28c
mov dword [ebp - 0x7cc], 0xee95c24f
mov dword [ebp - 0x81c], 0x30
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x810], 2
mov dword [ebp - 0x80c], 0
mov dword [ebp - 0x808], 1
mov dword [ebp - 0x800], 1
mov edi, dword [sym.imp.WINTRUST.dll_WinVerifyTrust]
lea eax, [ebp - 0x7ec]
mov dword [ebp - 0x804], eax
lea eax, [ebp - 0x81c]
push eax
lea eax, [ebp - 0x7d8]
push eax
push 0
call edi
test eax, eax
jne 0x10019636
push dword [ebp - 0x7fc]
call dword [sym.imp.WINTRUST.dll_WTHelperProvDataFromStateData]
test eax, eax
je 0x10019636
push 0
push 0
push 0
push eax
call dword [sym.imp.WINTRUST.dll_WTHelperGetProvSignerFromChain]
test eax, eax
je 0x10019636
push 0
push eax
call dword [sym.imp.WINTRUST.dll_WTHelperGetProvCertFromChain]
mov esi, eax
test esi, esi
je 0x10019636
push 0x190
lea eax, [ebp - 0x3a8]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x7dc], 3
lea eax, [ebp - 0x3a8]
push 0xc8
push eax
lea eax, [ebp - 0x7dc]
push eax
push 0
push 4
push dword [esi + 4]
call dword [sym.imp.CRYPT32.dll_CertGetNameStringW]
cmp word [ebp - 0x3a8], 0
je 0x10019636
mov ecx, str.Gakuto_Matsumura
lea eax, [ebp - 0x3a8]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1001946a
test dx, dx
je 0x10019466
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1001946a
add eax, 4
add ecx, 4
test dx, dx
jne 0x10019444
xor eax, eax
jmp 0x1001946f
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10019636
lea eax, [ebp - 0x81c]
mov dword [ebp - 0x800], 2
push eax
lea eax, [ebp - 0x7d8]
push eax
push 0
call edi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x1002b594], eax
test eax, eax
je 0x10019652
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.AMD_RC2_Init
push eax
call esi
push str.AMD_RC2_GetStatus
push dword [0x1002b594]
mov dword [0x1002b590], eax
call esi
push str.AMD_RC2_GetDrives
push dword [0x1002b594]
mov dword [0x1002b584], eax
call esi
push str.AMD_RC2_Reload
push dword [0x1002b594]
mov dword [0x1002b588], eax
call esi
push str.AMD_RC2_GetIdentify
push dword [0x1002b594]
mov dword [0x1002b57c], eax
call esi
push str.AMD_RC2_GetSmartData
push dword [0x1002b594]
mov dword [0x1002b598], eax
call esi
mov ecx, dword [0x1002b590]
mov dword [0x1002b580], eax
test ecx, ecx
je 0x10019652
cmp dword [0x1002b584], 0
je 0x10019652
cmp dword [0x1002b588], 0
je 0x10019652
cmp dword [0x1002b57c], 0
je 0x10019652
cmp dword [0x1002b598], 0
je 0x10019652
test eax, eax
je 0x10019652
call ecx
xor ecx, ecx
cmp eax, 1
sete cl
mov dword [0x1002b58c], ecx
je 0x1001961a
mov ecx, 0xb
mov dword [ebp - 0x84c], str.AMD_RC2_uninitial
cmp eax, ecx
mov dword [ebp - 0x848], str.AMD_RC2_loaded
push ecx
cmova eax, ecx
mov dword [ebp - 0x844], str.AMD_RC2_unloaded
mov ecx, esp
mov dword [ebp - 0x840], str.AMD_RC2_failed_signature
mov dword [ebp - 0x83c], str.AMD_RC2_driver_not_found
mov dword [ebp - 0x838], str.AMD_RC2_cannot_open
mov dword [ebp - 0x834], str.AMD_RC2_failed_memory_alloc
mov dword [ebp - 0x830], str.AMD_RC2_offset_overflow
mov dword [ebp - 0x82c], str.AMD_RC2_driver_version_old
mov dword [ebp - 0x828], str.AMD_RC2_not_admin
mov dword [ebp - 0x824], str.AMD_RC2_name_failed
mov dword [ebp - 0x820], str.AMD_RC2_unknown
push dword [ebp + eax*4 - 0x84c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__1]
call fcn.1001d3f0
mov ecx, dword [0x1002b58c]
add esp, 4
mov dword [0x1002b59c], 1
mov eax, ecx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001d656
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x81c]
mov dword [ebp - 0x800], 2
push eax
lea eax, [ebp - 0x7d8]
push eax
push 0
call edi
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.1001d656
mov esp, ebp
pop ebp
ret