Function at 0x406e2b
Capabilities:
Read file on windows
Write file on windows

Disassembly:
mov eax, 0x41ae40
call fcn.0041a140
mov eax, 0x139c
call fcn.0041a1e0
mov eax, dword [0x429080]
xor eax, dword [ebp + 4]
push ebx
push esi
push edi
push 0x41c2cc
push dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x10], eax
mov byte [ebp - 0x21], bl
call dword [sym.imp.MMVCR70.dll__wfopen]
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x14], eax
je 0x40796f
mov esi, dword [sym.imp.MMVCR70.dll_fseek]
push ebx
push 8
push eax
call esi
mov edi, 0x208
push edi
lea eax, [ebp - 0x358]
push ebx
push eax
call sub.MMVCR70.dll_memset
push 0x104
lea eax, [ebp - 0x358]
push eax
push dword [ebp - 0x14]
call fcn.00405cab
add esp, 0x24
test al, al
jne 0x406ed0
push dword [ebp - 0x14]
push str._VerifyFile__extract_from__s_failed
call fcn.00419ffe
push 0x10
push 0x7d
push 0x64
call fcn.00405740
push dword [ebp - 0x14]
call dword [sym.imp.MMVCR70.dll_fclose]
add esp, 0x18
jmp 0x40790b
lea eax, [ebp - 0x358]
push eax
call fcn.0040610d
cmp al, 1
pop ecx
jne 0x406f2b
push str._VerifyFile__credentials_expired
call fcn.00419ffe
push 0x10
push 0x83
push 0x64
call fcn.00405740
push dword [ebp - 0x14]
call dword [sym.imp.MMVCR70.dll_fclose]
lea eax, [ebp - 0x358]
push eax
call fcn.004059d7
add esp, 0x18
test eax, eax
je 0x40790b
lea eax, [ebp - 0x358]
push eax
call dword [0x4290d4]
jmp 0x40790b
lea eax, [ebp - 0x358]
push eax
call fcn.00406304
cmp eax, ebx
pop ecx
mov dword [ebp - 0x30], eax
jne 0x406f65
push str._VerifyFile__bad_level
call fcn.00419ffe
push 0x10
push 0x7d
push 0x64
call fcn.00405740
push dword [ebp - 0x14]
call dword [sym.imp.MMVCR70.dll_fclose]
add esp, 0x14
jmp 0x40790b
lea eax, [ebp - 0x358]
push eax
call fcn.00406768
cmp al, 1
pop ecx
jne 0x406f8f
push dword [ebp - 0x14]
call dword [sym.imp.MMVCR70.dll_fclose]
lea eax, [ebp - 0x358]
push eax
call fcn.004059d7
pop ecx
pop ecx
jmp 0x406f11
push edi
lea eax, [ebp - 0x11a0]
push ebx
push eax
call sub.MMVCR70.dll_memset
lea eax, [ebp - 0x358]
push 0x41c2cc
push eax
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.MMVCR70.dll__wfopen]
add esp, 0x14
cmp eax, ebx
mov dword [ebp - 0x18], eax
je 0x407082
push ebx
push 3
push eax
call esi
push 1
push 4
push dword [ebp - 0x18]
call esi
push dword [ebp - 0x18]
lea eax, [ebp - 0x20]
push 1
push 4
push eax
mov dword [ebp - 0x20], ebx
call dword [sym.imp.MMVCR70.dll_fread]
push 1
push dword [ebp - 0x20]
push dword [ebp - 0x18]
call esi
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x18]
add eax, 0xb
push 1
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push 4
push eax
mov dword [ebp - 0x20], ebx
call dword [sym.imp.MMVCR70.dll_fread]
add esp, 0x44
push 1
push dword [ebp - 0x20]
push dword [ebp - 0x18]
call esi
push 0x104
lea eax, [ebp - 0x11a0]
push eax
push dword [ebp - 0x18]
call fcn.00405cab
add esp, 0x18
test al, al
push dword [ebp - 0x18]
jne 0x40706e
mov esi, dword [sym.imp.MMVCR70.dll_fclose]
call esi
push dword [ebp - 0x14]
call esi
push dword [ebp - 0x18]
push str._VerifyFile__extract_from__s_failed
call fcn.00419ffe
push 0x10
push 0x7d
push 0x64
call fcn.00405740
lea eax, [ebp - 0x358]
push eax
call fcn.004059d7
add esp, 0x20
jmp 0x406f11
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
lea eax, [ecx + eax + 4]
mov dword [ebp - 0x1c], eax
call dword [sym.imp.MMVCR70.dll_fclose]
pop ecx
push edi
lea eax, [ebp - 0x970]
push ebx
push eax
call sub.MMVCR70.dll_memset
push edi
lea eax, [ebp - 0xb78]
push ebx
push eax
call sub.MMVCR70.dll_memset
add esp, 0x18
lea eax, [ebp - 0x970]
push eax
push 0x104
call dword [0x429100]
lea eax, [ebp - 0x358]
push 0x41c2cc
push eax
call dword [sym.imp.MMVCR70.dll__wfopen]
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x18], eax
je 0x40721a
lea eax, [ebp - 0xb78]
push eax
push ebx
push 0x41ca98
lea eax, [ebp - 0x970]
push eax
mov dword [ebp - 0x20], ebx
call dword [0x4290fc]
test eax, eax
je 0x4071fc
lea eax, [ebp - 0xb78]
push 0x41d994
push eax
call dword [sym.imp.MMVCR70.dll__wfopen]
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x2c], eax
je 0x40720f
cmp dword [ebp - 0x1c], ebx
jle 0x40717d
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
and eax, 0x10
cmp eax, ebx
jne 0x40717d
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
lea edx, [ecx + 0x1e]
cmp edx, eax
jle 0x407139
sub eax, ecx
jmp 0x40713c
push 0x1e
pop eax
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x50]
push 1
push eax
call dword [sym.imp.MMVCR70.dll_fread]
push dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0x50]
push 1
push eax
call dword [sym.imp.MMVCR70.dll_fwrite]
add dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
add esp, 0x20
and eax, 0x10
je 0x407175
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x1c]
jl 0x40718b
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x20], ecx
jl 0x407124
push dword [ebp - 0x2c]
call dword [sym.imp.MMVCR70.dll_fclose]
jmp 0x40720e
push dword [ebp - 0x2c]
mov esi, dword [sym.imp.MMVCR70.dll_fclose]
call esi
push dword [ebp - 0x14]
call esi
lea eax, [ebp - 0xb78]
push eax
push str._VerifyFile__error_writing_to_file__s
call fcn.00419ffe
push 0x10
push 0x7d
push 0x64
call fcn.00405740
lea eax, [ebp - 0xb78]
push eax
call fcn.004059d7
mov esi, dword [0x4290d4]
add esp, 0x20
test eax, eax
je 0x4071d9
lea eax, [ebp - 0xb78]
push eax
call esi
lea eax, [ebp - 0x358]
push eax
call fcn.004059d7
test eax, eax
pop ecx
je 0x40790b
lea eax, [ebp - 0x358]
push eax
call esi
jmp 0x40790b
lea eax, [ebp - 0x970]
push eax
push str._VerifyFile__GetTempFileName_failed__dir_s
call fcn.00419ffe
pop ecx
pop ecx
push dword [ebp - 0x18]
call dword [sym.imp.MMVCR70.dll_fclose]
jmp 0x40722c
lea eax, [ebp - 0x358]
push eax
push str._VerifyFile__Could_not_open__s
call fcn.00419ffe
pop ecx
pop ecx
lea eax, [ebp - 0x13a8]
push eax
push ebx
push 0x41ca98
lea eax, [ebp - 0x970]
push eax
mov byte [ebp - 0x22], bl
call dword [0x4290fc]
test eax, eax
je 0x4073c8
lea eax, [ebp - 0x13a8]
push 0x41d994
push eax
call dword [sym.imp.MMVCR70.dll__wfopen]
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x2c], eax
je 0x4073db
push eax
push str.305A300D06092A864886F70D010101050003490030460241009A4EB35E707A39229908D450C09BF349FD7F1D553DFB69D63BE1D2C0CEFC7D63C51A7CE95992E701BDA1B45E64D1BE756EA4C66831BA77C318EF6C77F43E130B020111
call sub.MMVCR70.dll_strlen
pop ecx
push eax
push 1
push str.305A300D06092A864886F70D010101050003490030460241009A4EB35E707A39229908D450C09BF349FD7F1D553DFB69D63BE1D2C0CEFC7D63C51A7CE95992E701BDA1B45E64D1BE756EA4C66831BA77C318EF6C77F43E130B020111
call dword [sym.imp.MMVCR70.dll_fwrite]
push dword [ebp - 0x2c]
call dword [sym.imp.MMVCR70.dll_fclose]
add esp, 0x14
lea eax, [ebp - 0x13a8]
push eax
lea ecx, [ebp - 0xa4]
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const__]
push ebx
push eax
lea eax, [ebp - 0x130]
push eax
mov dword [ebp - 4], ebx
call dword [sym.imp.CoreDll.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_mfConvertTToMBCS_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_int_]
add esp, 0xc
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 2
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea eax, [ebp - 0xb78]
push eax
lea ecx, [ebp - 0xdc]
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const__]
push ebx
push eax
lea eax, [ebp - 0xf8]
push eax
mov byte [ebp - 4], 3
call dword [sym.imp.CoreDll.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_mfConvertTToMBCS_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_int_]
add esp, 0xc
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 5
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea eax, [ebp - 0x11a0]
push eax
lea ecx, [ebp - 0x50]
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const__]
push ebx
push eax
lea eax, [ebp - 0x114]
push eax
mov byte [ebp - 4], 6
call dword [sym.imp.CoreDll.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_mfConvertTToMBCS_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_int_]
add esp, 0xc
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 8
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea ecx, [ebp - 0x114]
call dword [sym.imp.MMVCP70.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [ebp - 0xf8]
call dword [sym.imp.MMVCP70.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [ebp - 0x130]
call dword [sym.imp.MMVCP70.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
call fcn.00402826
add esp, 0xc
cmp al, 1
jne 0x40737e
push str.verified_credential_n
call fcn.004056fb
mov byte [ebp - 0x22], 1
jmp 0x407388
push str.invalid_credential_n
call fcn.004056fb
pop ecx
lea eax, [ebp - 0x13a8]
push eax
call dword [0x4290d4]
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 5
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 2
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x130]
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x4073db
lea eax, [ebp - 0x970]
push eax
push str._VerifyFile__GetTempFileName_failed__dir_s
call fcn.00419ffe
pop ecx
pop ecx
lea eax, [ebp - 0xb78]
push eax
call dword [0x4290d4]
lea eax, [ebp - 0x11a0]
push eax
call dword [0x4290d4]
cmp byte [ebp - 0x22], bl
jne 0x40743f
push dword [ebp - 0x14]
call dword [sym.imp.MMVCR70.dll_fclose]
lea eax, [ebp - 0x358]
push eax
call fcn.004059d7
test eax, eax
pop ecx
pop ecx
je 0x407422
lea eax, [ebp - 0x358]
push eax
call dword [0x4290d4]
push str._VerifyFile__bad_credential_2
call fcn.00419ffe
push 0x10
push 0x7e
push 0x64
call fcn.00405740
add esp, 0x10
jmp 0x40790b
push edi
lea eax, [ebp - 0x768]
push ebx
push eax
call sub.MMVCR70.dll_memset
lea eax, [ebp - 0x358]
push 0x41c2cc
push eax
call dword [sym.imp.MMVCR70.dll__wfopen]
add esp, 0x14
cmp eax, ebx
mov dword [ebp - 0x18], eax
je 0x407500
push ebx
push 3
push eax
call esi
push 1
push 4
push dword [ebp - 0x18]
call esi
push 0x104
lea eax, [ebp - 0x768]
push eax
push dword [ebp - 0x18]
call fcn.00405cab
add esp, 0x24
test al, al
jne 0x4074f6
push dword [ebp - 0x14]
mov esi, dword [sym.imp.MMVCR70.dll_fclose]
call esi
push dword [ebp - 0x18]
call esi
lea eax, [ebp - 0x768]
push eax
call fcn.004059d7
add esp, 0xc
test eax, eax
je 0x4074c7
lea eax, [ebp - 0x768]
push eax
call dword [0x4290d4]
lea eax, [ebp - 0x358]
push eax
call fcn.004059d7
test eax, eax
pop ecx
je 0x4074e5
lea eax, [ebp - 0x358]
push eax
call dword [0x4290d4]
lea eax, [ebp - 0x358]
push eax
push str._VerifyFile__extract_file__s_failed
jmp 0x4076e2
push dword [ebp - 0x18]
call dword [sym.imp.MMVCR70.dll_fclose]
pop ecx
push ebx
push 8
push dword [ebp - 0x14]
call esi
push dword [ebp - 0x14]
lea eax, [ebp - 0x28]
push 1
push 4
push eax
mov dword [ebp - 0x28], ebx
call dword [sym.imp.MMVCR70.dll_fread]
push 1
push dword [ebp - 0x28]
push dword [ebp - 0x14]
call esi
mov eax, dword [ebp - 0x28]
push dword [ebp - 0x14]
add eax, 0xc
push 1
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x28]
push 4
push eax
mov dword [ebp - 0x28], ebx
call dword [sym.imp.MMVCR70.dll_fread]
push 1
push dword [ebp - 0x28]
push dword [ebp - 0x14]
call esi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
add esp, 0x44
lea eax, [ecx + eax + 4]
push edi
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xd80]
push ebx
push eax
call sub.MMVCR70.dll_memset
push 0x104
lea eax, [ebp - 0xd80]
push eax
push dword [ebp - 0x14]
call fcn.00405cab
push edi
lea eax, [ebp - 0x560]
push ebx
push eax
call sub.MMVCR70.dll_memset
push ebx
push ebx
push dword [ebp - 0x14]
call esi
add esp, 0x30
lea eax, [ebp - 0x970]
push eax
push 0x104
xor esi, esi
call dword [0x429100]
lea eax, [ebp - 0x560]
push eax
push ebx
push 0x41ca98
lea eax, [ebp - 0x970]
push eax
call dword [0x4290fc]
test eax, eax
je 0x4076f7
lea eax, [ebp - 0x560]
push 0x41d994
push eax
call dword [sym.imp.MMVCR70.dll__wfopen]
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
je 0x40770a
cmp dword [ebp - 0x1c], ebx
jle 0x40764c
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
and eax, 0x10
cmp eax, ebx
jne 0x40764c
mov eax, dword [ebp - 0x1c]
lea ecx, [esi + 0x1e]
cmp ecx, eax
jle 0x40760b
sub eax, esi
jmp 0x40760e
push 0x1e
pop eax
push dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x150]
push 1
push eax
call dword [sym.imp.MMVCR70.dll_fread]
push edi
push eax
lea eax, [ebp - 0x150]
push 1
push eax
call dword [sym.imp.MMVCR70.dll_fwrite]
add esi, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
add esp, 0x20
and eax, 0x10
je 0x407647
cmp esi, dword [ebp - 0x1c]
jl 0x407658
cmp esi, dword [ebp - 0x1c]
jl 0x4075f9
push edi
call dword [sym.imp.MMVCR70.dll_fclose]
jmp 0x407709
push dword [ebp - 0x14]
mov esi, dword [sym.imp.MMVCR70.dll_fclose]
call esi
push edi
call esi
lea eax, [ebp - 0xd80]
push eax
call fcn.004059d7
mov esi, dword [0x4290d4]
add esp, 0xc
test eax, eax
je 0x407688
lea eax, [ebp - 0xd80]
push eax
call esi
lea eax, [ebp - 0x560]
push eax
call fcn.004059d7
test eax, eax
pop ecx
je 0x4076a2
lea eax, [ebp - 0x560]
push eax
call esi
lea eax, [ebp - 0x768]
push eax
call fcn.004059d7
test eax, eax
pop ecx
je 0x4076bc
lea eax, [ebp - 0x768]
push eax
call esi
lea eax, [ebp - 0x358]
push eax
call fcn.004059d7
test eax, eax
pop ecx
je 0x4076d6
lea eax, [ebp - 0x358]
push eax
call esi
lea eax, [ebp - 0x560]
push eax
push str._VerifyFile__write_to_file__s_failed
call fcn.00419ffe
push 0x10
push 0x7d
push 0x64
call fcn.00405740
jmp 0x406f5d
lea eax, [ebp - 0x970]
push eax
push str._VerifyFile__GetTempFileName_failed__dir_s
call fcn.00419ffe
pop ecx
pop ecx
lea eax, [ebp - 0x768]
push eax
lea ecx, [ebp - 0x50]
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const__]
mov esi, dword [sym.imp.CoreDll.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_mfConvertTToMBCS_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_int_]
push ebx
push eax
lea eax, [ebp - 0x6c]
push eax
mov dword [ebp - 4], 9
call esi
add esp, 0xc
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xb
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea eax, [ebp - 0x560]
push eax
lea ecx, [ebp - 0xdc]
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const__]
push ebx
push eax
lea eax, [ebp - 0x88]
push eax
mov byte [ebp - 4], 0xc
call esi
add esp, 0xc
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 0xe
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea eax, [ebp - 0xd80]
push eax
lea ecx, [ebp - 0xa4]
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const__]
push ebx
push eax
lea eax, [ebp - 0xc0]
push eax
mov byte [ebp - 4], 0xf
call esi
add esp, 0xc
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x11
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea ecx, [ebp - 0xc0]
call dword [sym.imp.MMVCP70.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [ebp - 0x88]
call dword [sym.imp.MMVCP70.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [ebp - 0x6c]
call dword [sym.imp.MMVCP70.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
call fcn.00402826
add esp, 0xc
cmp al, 1
jne 0x4077ea
push str.verified_mmz_n
call fcn.004056fb
pop ecx
mov byte [ebp - 0x21], 1
jmp 0x407802
push str._VerifyFile__RSA_failed
call fcn.00419ffe
push 0x10
push 0x7f
push 0x64
call fcn.00405740
add esp, 0x10
lea eax, [ebp - 0xd80]
push eax
call fcn.004059d7
test eax, eax
mov esi, dword [0x4290d4]
pop ecx
je 0x407822
lea eax, [ebp - 0xd80]
push eax
call esi
lea eax, [ebp - 0x560]
push eax
call fcn.004059d7
test eax, eax
pop ecx
je 0x40783c
lea eax, [ebp - 0x560]
push eax
call esi
lea eax, [ebp - 0x768]
push eax
call fcn.004059d7
test eax, eax
pop ecx
je 0x407856
lea eax, [ebp - 0x768]
push eax
call esi
cmp dword [ebp - 0x30], 1
je 0x40791e
cmp dword [ebp - 0x30], 2
je 0x40791e
lea ecx, [ebp - 0xf98]
call fcn.004014f3
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0xf8c]
push eax
mov byte [ebp - 4], 0x12
call dword [sym.imp.MMVCR70.dll_wcscpy]
pop ecx
pop ecx
push ebx
push 0xcd
push dword [0x429164]
lea ecx, [ebp - 0xf98]
call fcn.00402aab
cmp eax, 1
je 0x40790f
push dword [ebp - 0x14]
call dword [sym.imp.MMVCR70.dll_fclose]
lea eax, [ebp - 0x358]
push eax
call fcn.004059d7
test eax, eax
pop ecx
pop ecx
je 0x4078cf
lea eax, [ebp - 0x358]
push eax
call esi
lea ecx, [ebp - 0xf98]
mov byte [ebp - 4], 0x11
call fcn.0040151a
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0xe
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xb
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
xor al, al
jmp 0x407972
lea ecx, [ebp - 0xf98]
mov byte [ebp - 4], 0x11
call fcn.0040151a
lea eax, [ebp - 0x358]
push eax
call fcn.004059d7
test eax, eax
pop ecx
je 0x407938
lea eax, [ebp - 0x358]
push eax
call esi
push dword [ebp - 0x14]
call dword [sym.imp.MMVCR70.dll_fclose]
pop ecx
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0xe
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xb
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, byte [ebp - 0x21]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, dword [ebp + 4]
pop edi
pop esi
pop ebx
call fcn.0041a123
leave
ret