Function at 0x4293c292
Capabilities:
Enumerate pe sections
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42984ce4
mov eax, dword fs:[0]
push eax
sub esp, 0x568
mov eax, dword [0x42a15140]
xor eax, esp
mov dword [esp + 0x560], eax
push ebx
push esi
push edi
mov eax, dword [0x42a15140]
xor eax, esp
push eax
lea eax, [esp + 0x578]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
call sym.cryptopp.dll_class_CryptoPP::SimpleKeyedTransformation_class_CryptoPP::HashTransformation_____cdecl_CryptoPP::NewIntegrityCheckingMAC_void_
mov dword [esp + 0x50], eax
xor ebx, ebx
mov dword [esp + 0x580], ebx
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x1c]
mov edi, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
cmp esi, ebx
mov byte [esp + 0x580], 2
je 0x4293c31c
mov dword [esp + 0x14], esi
jmp 0x4293c324
lea eax, [esp + 0x60]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x14]
call fcn.42905193
mov eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x4293c339
lea eax, [esp + 0x70]
push 0x38
mov dword [esp + 0x30], eax
mov dword [eax], ebx
call fcn.4291b32c
pop ecx
mov dword [esp + 0x28], eax
cmp eax, ebx
mov byte [esp + 0x580], 3
je 0x4293c3a3
push 0x20
call fcn.4291b32c
pop ecx
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x580], 4
je 0x4293c386
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
push ecx
mov ecx, dword [esp + 0x1c]
push eax
call sym.cryptopp.dll_public:_void___thiscall_CryptoPP::ArraySink::constructor_unsigned_char___unsigned_int_
jmp 0x4293c388
xor eax, eax
push 0xffffffffffffffff
push ebx
mov byte [esp + 0x588], 3
mov ecx, dword [esp + 0x30]
push eax
push dword [esp + 0x5c]
call sym.cryptopp.dll_public:_void___thiscall_CryptoPP::HashFilter::constructor_class_CryptoPP::HashTransformation___class_CryptoPP::BufferedTransformation___bool__int_
jmp 0x4293c3a5
xor eax, eax
push 1
push eax
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x588], 2
call sym.cryptopp.dll_public:_void___thiscall_CryptoPP::MeterFilter::constructor_class_CryptoPP::BufferedTransformation___bool_
lea eax, [esp + 0xd4]
push eax
mov byte [esp + 0x584], 5
call fcn.42936b04
push 0x103
lea eax, [esp + 0x261]
push ebx
mov byte [esp + 0x588], 6
push eax
mov byte [esp + 0x268], bl
call fcn.42963d50
add esp, 0xc
cmp dword [esp + 0x10], ebx
jne 0x4293c48f
mov esi, 0x104
push esi
lea eax, [esp + 0x368]
push eax
push dword [0x42a25158]
call dword [sym.imp.kernel32.dll_GetModuleFileNameW]
test eax, eax
jbe 0x4293c46f
lea eax, [esp + 0x364]
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.4293ce8a
test eax, eax
jne 0x4293c45f
mov eax, dword [esp + 0xd4]
mov edx, dword [eax + 4]
lea edx, [esp + edx + 0xd4]
mov eax, dword [edx + 8]
or eax, 2
cmp dword [edx + 0x28], ebx
jne 0x4293c456
or eax, 4
push ebx
push edx
mov ecx, eax
call fcn.4296b556
lea eax, [esp + 0x364]
push eax
call dword [sym.imp.kernel32.dll_GetModuleHandleW]
jmp 0x4293c4ac
push esi
lea eax, [esp + 0x260]
push eax
push dword [0x42a25158]
call dword [sym.imp.kernel32.dll_GetModuleFileNameA]
lea eax, [esp + 0x25c]
mov dword [esp + 0x10], eax
push dword [esp + 0x10]
lea esi, [esp + 0xd8]
push 0x21
pop eax
call fcn.42936bb0
push dword [esp + 0x10]
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xd4]
mov eax, dword [eax + 4]
test byte [esp + eax + 0xdc], 6
je 0x4293c55d
push str.Crypto_DLL_integrity_check_failed._Cannot_open_file_for_reading.
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
lea ecx, [esp + 0x12c]
mov byte [esp + 0x580], 5
call fcn.42936b71
lea eax, [esp + 0x12c]
push eax
mov dword [esp + method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::ios_base.0
call fcn.4295d896
pop ecx
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x580], 2
call sym.cryptopp.dll_public_virtual:_void___thiscall_CryptoPP::MeterFilter::destructor_void_
push dword [esp + 0x64]
lea ecx, [esp + 0x64]
push dword [esp + 0x6c]
call sym.cryptopp.dll_public:_void___thiscall_CryptoPP::AllocatorWithCleanup_unsigned_char_::deallocate_void___unsigned_int_
or dword [esp + 0x580], 0xffffffff
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx]
push 1
call dword [eax]
mov al, bl
mov ecx, dword [esp + 0x578]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x560]
xor ecx, esp
call fcn.4295e11e
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0x228]
call sym.cryptopp.dll_public:_void___thiscall_CryptoPP::FileStore::constructor_class_std::basic_istream_char__struct_std::char_traits_char____
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x580], 7
mov esi, dword [eax + 0x3c]
add esi, eax
movzx eax, word [esi + 0x14]
lea edi, [eax + esi + 0x18]
movzx eax, word [esi + 6]
mov dword [esp + 0x20], eax
mov eax, esi
sub eax, dword [esp + 0x1c]
push 1
lea ecx, [eax + 0x58]
add eax, 0x98
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x98]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x9c]
push ebx
push 4
mov dword [esp + 0x34], eax
xor eax, eax
push eax
push ecx
mov dword [esp + 0x80], ecx
push ebx
lea ecx, [esp + 0x1c4]
mov dword [esp + 0x58], ebx
call fcn.4296b556
push 1
push ebx
push 8
xor eax, eax
push eax
push dword [esp + 0x4c]
lea ecx, [esp + 0x1c0]
push ebx
call fcn.4296b556
push 1
xor eax, eax
push eax
push dword [esp + 0x30]
xor ecx, ecx
push ecx
push dword [esp + 0x28]
lea ecx, [esp + 0x1c0]
push ebx
call fcn.4296b556
cmp dword [esp + 0x20], ebx
je 0x4293c7bd
lea ecx, [edi + 8]
mov dword [esp + 0x54], ecx
mov eax, dword [ecx + 0x1c]
dec dword [esp + 0x20]
cmp eax, 0x40000040
je 0x4293c639
cmp eax, 0x60000020
jne 0x4293c7ac
mov edx, dword [ecx]
lea eax, [ecx + 8]
cmp edx, dword [eax]
jae 0x4293c644
mov eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x74], eax
mov eax, dword [ecx + 4]
add eax, dword [esp + 0x1c]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x4c], eax
xor ecx, ecx
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], 0xc
jmp 0x4293c674
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x5c]
add edi, ecx
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x74]
lea edx, [ecx + eax]
mov dword [esp + 0x10], edx
sub edi, ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
jmp 0x4293c699
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + ecx*4 + 0x78]
lea ecx, [esi + ecx*8 + 0x78]
mov dword [esp + 0x58], ecx
mov ecx, dword [ecx]
add ecx, dword [esp + 0x1c]
cmp edx, ecx
ja 0x4293c6ce
add edx, edi
cmp ecx, edx
jae 0x4293c6ce
mov edx, dword [esp + 0x58]
mov edx, dword [edx + 4]
mov edi, ecx
sub edi, dword [esp + 0x10]
sub edx, eax
add edx, ecx
mov dword [esp + 0x34], edx
inc dword [esp + 0x30]
cmp dword [esp + 0x30], 2
jb 0x4293c695
call dword [sym.imp.kernel32.dll_IsDebuggerPresent]
test eax, eax
mov ecx, dword [esp + 0x10]
je 0x4293c704
mov eax, fcn.4295f9fc
cmp ecx, eax
ja 0x4293c704
lea edx, [edi + ecx]
cmp edx, eax
jbe 0x4293c704
mov edi, eax
sub eax, dword [esp + 0x4c]
sub edi, ecx
inc eax
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0xc]
cmp ecx, eax
ja 0x4293c736
lea edx, [edi + ecx]
cmp eax, edx
jae 0x4293c736
mov edx, dword [esp + 0x38]
push 1
push ebx
push dword [esp + 0x2c]
sub edx, ecx
mov ecx, dword [esp + 0x38]
add eax, edx
push ebx
push eax
mov dword [ecx], eax
push ebx
lea ecx, [esp + 0x1c4]
call fcn.4296b556
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x40]
push 1
mov dword [esp + 0x48], eax
push sym.cryptopp.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const_CryptoPP::BufferedTransformation::NULL_CHANNEL
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x1b8]
push eax
mov eax, dword [esp + 0x234]
lea ecx, [esp + 0x234]
mov dword [esp + 0x58], ebx
call dword [eax + 0x7c]
mov eax, dword [esp + 0x1ac]
push 1
push ebx
push edi
push dword [esp + 0x1c]
lea ecx, [esp + 0x1bc]
call dword [eax + 0x14]
push ebx
push edi
lea ecx, [esp + 0x22c]
call fcn.4296b556
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
add edi, eax
cmp ecx, ebx
mov dword [esp + 0x40], edi
jne 0x4293c670
mov ecx, dword [esp + 0x54]
add ecx, 0x28
cmp dword [esp + 0x20], ebx
mov dword [esp + 0x54], ecx
jne 0x4293c620
push 1
push sym.cryptopp.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const_CryptoPP::BufferedTransformation::NULL_CHANNEL
lea eax, [esp + 0x1b4]
push eax
lea ecx, [esp + 0x230]
call fcn.4296b556
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 8]
mov ecx, dword [esp + 0x24]
mov esi, dword [ebp + 0xc]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x4293c942
push str.In_memory_integrity_check_failed._This_may_be_caused_by_debug_breakpoints_or_DLL_relocation._n
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
mov eax, dword [esp + 0xd4]
mov eax, dword [eax + 4]
lea eax, [esp + eax + 0xd4]
mov ecx, dword [eax + 0x28]
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffc
push ebx
add ecx, 4
push eax
call fcn.4296b556
sub esp, 0x18
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
lea eax, [esp + 0xec]
mov dword [esp + 0x70], esp
push eax
call fcn.4296b556
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
push str.OutputBuffer
lea ecx, [esp + 0x48]
lea eax, [esp + 0x84]
call fcn.4293cf2c
pop ecx
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x588], 8
call sym.cryptopp.dll_public_virtual:_void___thiscall_CryptoPP::Filter::Initialize_class_CryptoPP::NameValuePairs_const___int_
lea ecx, [esp + 0x80]
mov byte [esp + 0x580], 7
call fcn.4296b556
xor edi, edi
inc edi
push edi
push ebx
push 4
xor eax, eax
push eax
push dword [esp + 0x7c]
lea ecx, [esp + 0x1c0]
push ebx
call fcn.4296b556
push edi
push ebx
push 8
xor eax, eax
push eax
push dword [esp + 0x4c]
lea ecx, [esp + 0x1c0]
push ebx
call fcn.4296b556
push edi
xor eax, eax
push eax
push dword [esp + 0x30]
lea ecx, [esp + 0x1b8]
push eax
push dword [esp + 0x28]
push ebx
call fcn.4296b556
mov eax, dword [esp + 0x2c]
push edi
push ebx
push dword [esp + 0x2c]
lea ecx, [esp + 0x1b8]
push ebx
push dword [eax]
push ebx
call fcn.4296b556
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0xa0]
call sym.cryptopp.dll_public:_void___thiscall_CryptoPP::FileStore::constructor_class_std::basic_istream_char__struct_std::char_traits_char____
push edi
push sym.cryptopp.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const_CryptoPP::BufferedTransformation::NULL_CHANNEL
lea ecx, [esp + 0x1b4]
push ecx
mov ecx, eax
mov byte [esp + 0x58c], 9
call fcn.4296b556
lea ecx, [esp + 0x9c]
mov byte [esp + 0x580], 7
call sym.cryptopp.dll_public_virtual:_void___thiscall_CryptoPP::FileStore::destructor_void_
jmp 0x4293c946
mov esi, dword [esp + 0x14]
mov esi, dword [esi + 8]
mov ecx, dword [esp + 0x24]
mov edi, esi
mov esi, dword [ebp + 0xc]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4293c973
lea ecx, [esp + 0x224]
mov byte [esp + 0x580], 6
call sym.cryptopp.dll_public_virtual:_void___thiscall_CryptoPP::FileStore::destructor_void_
mov bl, 1
jmp 0x4293c4d3
push ebx
lea ecx, [esp + 0x20c]
mov dword [esp + 0x224], 0xf
call fcn.429015aa
push 0x42992258
lea ecx, [esp + 0xa0]
mov byte [esp + 0x584], 0xa
call fcn.42901848
push 0x429933b8
lea ecx, [esp + 0x84]
mov byte [esp + 0x584], 0xb
call fcn.42901848
push 0x10
mov byte [esp + 0x584], 0xc
call fcn.4291b32c
pop ecx
mov dword [esp + 0x70], eax
cmp eax, ebx
mov byte [esp + 0x580], 0xd
je 0x4293c9ee
lea ecx, [esp + 0x208]
push ecx
mov ecx, eax
call sym.cryptopp.dll_public:_void___thiscall_CryptoPP::StringSinkTemplate_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____
jmp 0x4293c9f0
xor eax, eax
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0x84]
push ecx
push ebx
xor esi, esi
inc esi
push esi
push eax
lea ecx, [esp + 0x178]
mov byte [esp + 0x594], 0xc
call sym.cryptopp.dll_public:_void___thiscall_CryptoPP::HexEncoder::constructor_class_CryptoPP::BufferedTransformation___bool__int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
mov ecx, dword [esp + 0x14]
push esi
mov byte [esp + 0x584], 0xe
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov edi, dword [eax]
push 0xffffffffffffffff
push edx
push ecx
mov ecx, eax
call dword [edi + 0x14]
lea ecx, [esp + 0x164]
mov byte [esp + 0x580], 0xc
call sym.cryptopp.dll_public_virtual:_void___thiscall_CryptoPP::ProxyFilter::destructor_void_
push ebx
push esi
lea ecx, [esp + 0x88]
call fcn.429013cb
push ebx
push esi
lea ecx, [esp + 0xa4]
mov byte [esp + 0x588], 0xa
call fcn.429013cb
lea eax, [esp + 0x208]
push eax
lea eax, [esp + 0x84]
push str.Crypto_DLL_integrity_check_failed._Actual_MAC_is:
push eax
call fcn.42902016
add esp, 0xc
push 0x42998fd0
push eax
lea eax, [esp + 0xa4]
push eax
mov byte [esp + 0x58c], 0xf
call fcn.429020d3
add esp, 0xc
cmp dword [eax + 0x18], 0x10
jb 0x4293cab6
mov eax, dword [eax + 4]
jmp 0x4293cab9
add eax, 4
push eax
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
push ebx
push esi
lea ecx, [esp + 0xa4]
call fcn.429013cb
push ebx
push esi
lea ecx, [esp + 0x88]
call fcn.429013cb
push ebx
push esi
lea ecx, [esp + 0x210]
call fcn.429013cb
lea ecx, [esp + 0x224]
mov byte [esp + 0x580], 6
call sym.cryptopp.dll_public_virtual:_void___thiscall_CryptoPP::FileStore::destructor_void_
jmp 0x4293c4d3