Function at 0x4d5970
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x58
cmp dword [esp + 0x64], 0
push ebx
push ebp
mov ebp, dword [esp + 0x64]
push esi
push edi
mov dword [esp + 0x14], str.archive_header
mov eax, dword [ebp + 0x440]
mov edi, dword [eax]
jne 0x4d599a
mov dword [esp + 0x14], str.file_content
mov dword [esp + 0x74], 0
lea esi, [edi + 0x4d18]
mov ebx, 3
lea ecx, [ecx]
push dword [esi]
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov dword [esi], 0
lea esi, [esi + 4]
dec ebx
jne 0x4d59b0
mov esi, dword [esp + 0x70]
mov eax, dword [esi + 0x20]
mov dword [edi + 0xd4], eax
mov eax, dword [esi + 0x58]
mov dword [edi + 0xd0], eax
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x10]
dec ecx
mov dword [esp + 0x10], ecx
js 0x4d5a37
lea ebx, [ebx]
xor esi, esi
test ebx, ebx
je 0x4d5a18
mov eax, ecx
mov ecx, dword [esp + 0x70]
cdq
mov ecx, dword [ecx + 0x18]
add ecx, 8
cmp dword [ecx], eax
jne 0x4d5a0c
cmp dword [ecx + 4], edx
je 0x4d5a28
inc esi
add ecx, 0x10
cmp esi, ebx
jb 0x4d5a03
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x70]
mov eax, dword [esi + 0x40]
mov edx, dword [eax + ecx*8]
mov eax, dword [eax + ecx*8 + 4]
jmp 0x4d5a3b
mov ecx, dword [esp + 0x10]
dec ecx
mov dword [esp + 0x10], ecx
jns 0x4d59f0
mov esi, dword [esp + 0x70]
xor edx, edx
xor eax, eax
mov dword [edi + 0xcc], eax
mov eax, dword [esp + 0x70]
mov dword [edi + 0xc8], edx
xor edx, edx
mov dword [edi + 0xb4], 0
mov esi, dword [esi]
mov ebx, dword [eax + 4]
test ebx, ebx
jb 0x4d5aa6
ja 0x4d5a66
test esi, esi
je 0x4d5aa6
mov ecx, dword [eax + 8]
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, 0x6f10303
ja 0x4d5a8f
je 0x4d5af4
cmp eax, 0x303011b
je 0x4d5a89
cmp eax, 0x6f10101
jmp 0x4d5a94
inc dword [esp + 0x74]
jmp 0x4d5a96
cmp eax, 0x6f10701
je 0x4d5af4
xor eax, eax
inc edx
add ecx, 0x28
cmp eax, ebx
jb 0x4d5a70
ja 0x4d5aa6
cmp edx, esi
jb 0x4d5a70
cmp dword [edi + 0x4fac], 0xffffffff
jne 0x4d5ab9
mov dword [edi + 0x4fac], 0
mov esi, dword [esp + 0x70]
mov ecx, dword [esi + 4]
mov eax, dword [esi]
test ecx, ecx
jne 0x4d5acb
cmp eax, 2
jbe 0x4d5b25
mov edx, dword [esp + 0x74]
test edx, edx
jne 0x4d5b29
push dword [esp + 0x14]
push str.The__s_is_encoded_with_many_filters__but_currently_not_supported
push 0xffffffffffffffff
push ebp
call fcn.004db810
add esp, 0x10
mov eax, 0xffffffe2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov dword [edi + 0x4fac], 1
mov eax, dword [ebp + 0x60]
test eax, eax
je 0x4d5b1a
push 1
push eax
call fcn.004d7860
push 1
push dword [ebp + 0x60]
call fcn.004d7880
add esp, 0x10
push dword [esp + 0x14]
push str.The__s_is_encrypted__but_currently_not_supported
jmp 0x4d5adc
mov edx, dword [esp + 0x74]
cmp edx, 1
jg 0x4d5ad3
mov ebx, dword [esi + 8]
mov dword [esp + 0x74], ebx
cmp eax, 2
jne 0x4d5b4b
test ecx, ecx
jne 0x4d5b4b
lea ebp, [ebx + 0x28]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x6c]
jmp 0x4d5b53
mov dword [esp + 0x10], 0
test edx, edx
je 0x4d6001
mov dword [esp + 0x44], 0x550920
mov dword [esp + 0x48], 0x550920
mov dword [esp + 0x4c], 0x550920
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], 2
cmp eax, 4
jne 0x4d5d0f
test ecx, ecx
jne 0x4d5d0f
cmp dword [ebx + 0x78], 0x303011b
lea edx, [ebx + 0x78]
jne 0x4d5d0f
cmp dword [esi + 0x30], 7
jne 0x4d5d0f
cmp dword [esi + 0x34], ecx
jne 0x4d5d0f
cmp dword [esi + 0x38], eax
jne 0x4d5d0f
cmp dword [esi + 0x3c], ecx
jne 0x4d5d0f
cmp dword [edi + 0xd4], eax
jne 0x4d5d0f
mov eax, dword [esi + 0x18]
cmp dword [eax], 5
jne 0x4d5c9c
cmp dword [eax + 4], ecx
jne 0x4d5c9c
mov dword [esp + 0x20], ecx
lea eax, [ebx + 0x28]
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
add ebx, 0x50
mov dword [esp + 0x18], 1
mov eax, dword [ecx + 8]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x5c], eax
mov eax, dword [ecx]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x64], eax
mov eax, ecx
mov dword [esp + 0x1c], 2
mov dword [esp + 0x74], ebx
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x10]
jmp 0x4d5d45
cmp dword [ebx], 0
jne 0x4d5cd6
cmp dword [ebx + 0x28], 0
jne 0x4d5cbd
mov eax, dword [esi + 0x40]
add ebx, 0x50
mov dword [esp + 0x74], ebx
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x10]
jmp 0x4d5d45
cmp dword [ebx + 0x50], 0
jne 0x4d5cd6
mov eax, dword [esi + 0x40]
add ebx, 0x28
mov dword [esp + 0x74], ebx
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x10]
jmp 0x4d5d45
cmp dword [ebx + 0x28], 0
jne 0x4d5cf2
cmp dword [ebx + 0x50], 0
jne 0x4d5cf2
mov eax, dword [esi + 0x40]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x10]
jmp 0x4d5d45
push str.Unsupported_form_of_BCJ2_streams
push 0xffffffffffffffff
push ebp
call fcn.004db810
add esp, 0xc
mov eax, 0xffffffe2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x4d5cf2
cmp dword [ebx], 0x303011b
jne 0x4d5cf2
cmp dword [edi + 0xd4], 4
jne 0x4d5cf2
cmp dword [esi + 0x30], 5
jne 0x4d5cf2
cmp dword [esi + 0x34], 0
jne 0x4d5cf2
cmp dword [esi + 0x38], 2
jne 0x4d5cf2
cmp dword [esi + 0x3c], 0
jne 0x4d5cf2
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
push ebp
mov dword [edi + 0x4d14], eax
call fcn.004d57e0
add esp, 4
test eax, eax
js 0x4d5aec
mov eax, dword [edi + 0xd8]
push ebp
mov dword [edi + 0xe0], eax
call fcn.004d55a0
add esp, 4
lea eax, [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x14], ebx
nop
push ebp
call fcn.004d57e0
mov esi, eax
add esp, 4
test esi, esi
js 0x4d60a1
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x4d5dbf
mov eax, dword [edi + 0xd8]
mov dword [edi + 0xc8], eax
mov eax, dword [edi + 0xdc]
mov dword [edi + 0xcc], eax
jmp 0x4d5dcb
mov dword [edi + 0xc8], ecx
mov dword [edi + 0xcc], edx
push 0
push dword [esp + ebx + 0x48]
push edi
push ebp
call fcn.004d33f0
add esp, 0x10
test eax, eax
jne 0x4d6079
push dword [edi + 0xc8]
mov esi, dword [sym.imp.MSVCRT.dll_malloc]
call esi
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + ebx + 0x2c], eax
test eax, eax
je 0x4d6044
cmp dword [edi + 0xdc], 0
ja 0x4d5e20
cmp dword [edi + 0xd8], 0
jbe 0x4d5ee2
lea ebx, [ebx]
push 0
push ebp
call fcn.004d2af0
mov esi, eax
add esp, 8
test esi, esi
js 0x4d60a1
push 0
push dword [edi + 0xb4]
lea eax, [esp + 0x2c]
push eax
push ebp
call fcn.004d3230
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x4d601f
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
push ebx
push dword [esp + 0x28]
mov esi, dword [esp + esi + 0x40]
add ecx, esi
push ecx
call sub.MSVCRT.dll_memcpy
lea eax, [esi + ebx]
add esp, 0xc
cmp dword [edi + 0xe0], 0
mov ebx, dword [esp + 0x14]
mov dword [esp + ebx + 0x38], eax
je 0x4d5ec0
mov eax, dword [ebp + 0x440]
mov esi, dword [eax]
mov eax, dword [esi + 0xe0]
test eax, eax
je 0x4d5ec0
push 0
push eax
push ebp
call fcn.004d90b0
mov eax, dword [esi + 0xe0]
add esp, 0xc
add dword [esi + 0xb8], eax
mov dword [esi + 0xe0], 0
adc dword [esi + 0xbc], 0
cmp dword [edi + 0xdc], 0
ja 0x4d5e20
jb 0x4d5edc
cmp dword [edi + 0xd8], 0
ja 0x4d5e20
mov esi, dword [sym.imp.MSVCRT.dll_malloc]
add dword [esp + 0x6c], 8
add ebx, 4
mov dword [esp + 0x14], ebx
cmp ebx, 0xc
jb 0x4d5d80
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + ecx*4 + 0x2c]
mov dword [edi + 0x4d18], eax
mov eax, dword [esp + ecx*4 + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0x4d24], eax
mov dword [edi + 0x4d30], eax
mov eax, dword [esp + ecx*4 + 0x2c]
mov dword [edi + 0x4d1c], eax
mov eax, dword [esp + ecx*4 + 0x38]
mov ecx, dword [esp + 0x20]
mov dword [edi + 0x4d28], eax
mov dword [edi + 0x4d34], eax
mov eax, dword [esp + ecx*4 + 0x2c]
mov dword [edi + 0x4d20], eax
mov eax, dword [esp + ecx*4 + 0x38]
mov dword [edi + 0x4d2c], eax
mov dword [edi + 0x4d38], eax
cmp dword [edi + 0x4d3c], 0
jne 0x4d5f95
push 0x8000
mov dword [edi + 0x4d40], 0x8000
call esi
add esp, 4
mov dword [edi + 0x4d3c], eax
test eax, eax
jne 0x4d5f95
push str.No_memory_for_7_Zip_decompression
push 0xc
push ebp
call fcn.004db810
add esp, 0xc
mov eax, 0xffffffe2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov ecx, dword [esp + 0x70]
mov dword [edi + 0x4d44], 0
mov dword [edi + 0x4d48], 0
mov dword [edi + 0x4d00], 0
mov dword [edi + 0x4f60], 0
mov dword [edi + 0x4f64], 0
mov dword [edi + 0xd4], 1
mov eax, dword [ecx + 0x58]
push ecx
mov dword [edi + 0xd0], eax
call fcn.004d2f00
mov ebx, dword [esp + 0x78]
add esp, 4
mov dword [edi + 0xc8], eax
mov dword [edi + 0xcc], edx
mov dword [edi + 0xb4], 0
push dword [esp + 0x10]
push ebx
push edi
push ebp
call fcn.004d33f0
add esp, 0x10
neg eax
sbb eax, eax
and eax, 0xffffffe2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
push dword [esp + 0x2c]
mov edi, dword [sym.imp.MSVCRT.dll_free]
call edi
push dword [esp + 0x34]
call edi
push dword [esp + 0x3c]
call edi
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
push dword [esp + 0x2c]
mov edi, dword [sym.imp.MSVCRT.dll_free]
call edi
push dword [esp + 0x34]
call edi
push dword [esp + 0x3c]
call edi
push str.No_memory_for_7_Zip_decompression
push 0xc
push ebp
call fcn.004db810
add esp, 0x18
mov eax, 0xffffffe2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
push dword [esp + 0x2c]
mov edi, dword [sym.imp.MSVCRT.dll_free]
call edi
push dword [esp + 0x34]
call edi
push dword [esp + 0x3c]
call edi
add esp, 0xc
mov eax, 0xffffffe2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
push dword [esp + 0x2c]
mov edi, dword [sym.imp.MSVCRT.dll_free]
call edi
push dword [esp + 0x34]
call edi
push dword [esp + 0x3c]
call edi
add esp, 0xc
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret