Function at 0x42e650
Capabilities:
Encode data using xor
Hash data using murmur2

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call fcn.0042f8e0
mov ebp, eax
add eax, 0xffffffea
mov ecx, edx
mov ebx, edx
mov esi, 0xfffffffd
adc ecx, 0xffffffff
xor edi, edi
mov edx, ecx
shld ecx, eax, 0x1f
mov eax, 0x7ffffff4
shr edx, 1
cmp eax, ecx
mov ecx, 0
sbb ecx, edx
jb 0x42e117
cmp ebp, 0x10016
mov eax, ebx
mov esi, 0x10015
sbb eax, 0
cmovl esi, ebp
test esi, esi
je 0x42e020
push esi
call fcn.0040bb60
add esp, 4
mov edi, eax
push esi
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], ebp
sub ebp, esi
mov ecx, ebx
mov dword [esp + 4], ebx
sbb ecx, 0
cmp byte [edx], 0
je 0x42e071
mov eax, dword [edx + 4]
mov ebx, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
push ecx
push ebp
push esi
push edi
push eax
call fcn.004127e0
add esp, 0x14
test al, al
jne 0x42e099
push ebx
push ebp
push str.Zip:_failed_to_read_at_offset__lld_n
push str.ziparchive
push 6
call fcn.0044e140
add esp, 0x14
jmp 0x42e0ec
test ecx, ecx
mov ebx, ecx
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
js 0x42e0d4
cmp eax, ebp
mov edx, ecx
sbb edx, ebx
jl 0x42e0d4
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
add eax, ebp
push esi
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, 0xffffffea
js 0x42e0b6
nop
cmp byte [edi + esi], 0x50
jne 0x42e0af
cmp dword [edi + esi], 0x6054b50
je 0x42e121
test esi, esi
lea esi, [esi - 1]
jg 0x42e0a0
push dword [esp]
push str.Zip:_EOCD_not_found___s_is_not_zip
push str.ziparchive
push 3
call fcn.0044e140
add esp, 0x10
mov esi, 0xfffffffd
jmp 0x42e10a
push ecx
push eax
push ebx
push ebp
push str.Zip:_invalid_offset:__lld__data_length:__lld_n
push str.ziparchive
push 6
call fcn.0044e140
add esp, 0x1c
push ebx
push ebp
push 0
push esi
push str.Zip:_read__lld_from_offset__lld_failed
push str.ziparchive
push 6
call fcn.0044e140
add esp, 0x1c
mov esi, 0xfffffff5
test edi, edi
je 0x42e117
push edi
call fcn.0040bd10
add esp, 4
mov eax, esi
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, esi
mov edx, dword [esp + 4]
sar eax, 0x1f
add ebp, esi
adc ebx, eax
movzx eax, word [edi + esi + 0x14]
mov dword [esp + 8], ebp
mov ecx, ebx
mov dword [esp], ebx
add eax, ebp
mov ebp, dword [esp + 0x14]
adc ecx, 0
add eax, 0x16
adc ecx, 0
xor edx, ecx
mov ebx, ebp
xor ebx, eax
or ebx, edx
jne 0x42e197
mov edx, dword [edi + esi + 0xc]
mov eax, dword [edi + esi + 0x10]
mov ebp, dword [esp + 8]
xor ecx, ecx
mov ebx, edx
add ebx, eax
setb cl
cmp ebp, ebx
mov ebx, dword [esp]
sbb ebx, ecx
jge 0x42e1bf
push dword [esp]
push ebp
push edx
push eax
push str.Zip:_bad_offsets__dir__u__size__u__eocd__lld_
push str.ziparchive
push 5
call fcn.0044e140
add esp, 0x1c
mov esi, 0xfffffff8
jmp 0x42e10e
sub ebp, eax
mov eax, dword [esp + 4]
sbb eax, ecx
push eax
push ebp
push str.Zip:__lld_extraneous_bytes_at_the_end_of_the_central_directory
push str.ziparchive
push 5
call fcn.0044e140
add esp, 0x14
mov esi, 0xfffffffd
jmp 0x42e10e
cmp word [edi + esi + 0xa], 0
je 0x42e4b8
mov ebx, dword [esp + 0xc]
mov ecx, ebx
push edx
push 0
push eax
call fcn.0042fa20
test al, al
je 0x42e4c2
movzx eax, word [edi + esi + 0xa]
mov word [ebx + 0x34], ax
mov eax, dword [edi + esi + 0x10]
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], eax
push edi
call fcn.0040bd10
add esp, 4
mov eax, dword [ebx + 0x28]
movzx edi, word [ebx + 0x34]
mov ecx, 0xaaaaaaab
mov ebp, dword [ebx + 0x2c]
mov dword [esp + 0x14], eax
lea eax, [edi*4]
mul ecx
mov eax, edx
shr edx, 2
shr eax, 1
or edx, eax
mov eax, edx
shr eax, 2
or eax, edx
mov ecx, eax
shr ecx, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or eax, ecx
mov esi, eax
shr esi, 0x10
or esi, eax
inc esi
mov dword [ebx + 0x38], esi
push 8
push esi
call sub.msvcrt.dll_calloc
add esp, 8
test eax, eax
mov dword [ebx + 0x3c], eax
je 0x42e4e0
test di, di
mov dword [esp + 0x34], edi
je 0x42e519
mov edi, dword [esp + 0x14]
xor edx, edx
lea eax, [edi + ebp]
mov dword [esp + 0x38], eax
lea eax, [eax - 0x2e]
mov dword [esp + 0x28], eax
cmp edi, eax
ja 0x42e5f4
cmp dword [edi], 0x2014b50
jne 0x42e5ff
mov eax, dword [edi + 0x2a]
mov ecx, 0
cmp eax, dword [ebx + 0x20]
sbb ecx, dword [ebx + 0x24]
jge 0x42e60a
mov dword [esp + 0x10], edx
movzx edx, word [edi + 0x1c]
movzx eax, dx
mov dword [esp], eax
lea eax, [edi + eax + 0x2e]
cmp eax, dword [esp + 0x38]
ja 0x42e615
movzx eax, word [edi + 0x1e]
movzx esi, word [edi + 0x20]
lea ecx, [edi + 0x2e]
test dx, dx
mov word [esp + 8], dx
mov dword [esp + 4], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], esi
je 0x42e351
mov eax, dword [esp]
xor ecx, ecx
dec eax
mov edx, dword [esp + 4]
movzx edx, byte [edx + ecx]
test edx, edx
je 0x42e4fc
test dl, dl
js 0x42e308
inc ecx
cmp ecx, dword [esp]
jb 0x42e2e9
jmp 0x42e412
mov ebx, edx
and ebx, 0xffffffc0
cmp ebx, 0x80
je 0x42e4fc
mov ebx, edx
and ebx, 0xfffffffe
cmp ebx, 0xfe
mov ebx, dword [esp + 0xc]
je 0x42e4fc
add dl, dl
jns 0x42e2fd
cmp eax, ecx
je 0x42e4fc
movzx ebx, byte [edi + ecx + 0x2f]
inc ecx
and bl, 0xc0
cmp bl, 0x80
mov ebx, dword [esp + 0xc]
je 0x42e32e
jmp 0x42e4fc
mov eax, ebx
mov ebx, dword [ebx + 0x3c]
mov dword [esp + 0x20], ebp
mov ecx, dword [eax + 0x28]
mov esi, dword [eax + 0x38]
xor eax, eax
mov dword [esp + 0x18], ecx
mov ecx, eax
dec esi
shr ecx, 0xd
xor ecx, eax
imul eax, ecx, 0x5bd1e995
mov ebp, eax
shr ebp, 0xf
xor ebp, eax
jmp 0x42e37e
inc ebp
and ebp, esi
mov eax, dword [ebx + ebp*8]
test eax, eax
je 0x42e3b9
cmp word [ebx + ebp*8 + 4], dx
jne 0x42e37d
test dx, dx
je 0x42e586
add eax, dword [esp + 0x18]
push dword [esp]
push dword [esp + 8]
push eax
call sub.msvcrt.dll_memcmp
movzx edx, word [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x42e37d
jmp 0x42e586
mov eax, dword [esp + 4]
sub eax, dword [esp + 0x18]
mov dword [ebx + ebp*8], eax
mov eax, dword [esp]
mov word [ebx + ebp*8 + 4], dx
mov ebp, dword [esp + 0x20]
mov edx, 0
add eax, dword [esp + 0x2c]
add eax, dword [esp + 0x30]
lea edi, [edi + eax + 0x2e]
mov eax, edi
sub eax, dword [esp + 0x14]
mov ecx, eax
sar ecx, 0x1f
cmp ebp, eax
sbb edx, ecx
jl 0x42e625
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
inc edx
cmp edx, dword [esp + 0x34]
jb 0x42e27e
jmp 0x42e519
mov eax, ebx
mov edx, dword [esp]
mov ebx, dword [ebx + 0x3c]
cmp word [esp + 8], 4
mov dword [esp + 0x20], ebp
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x1c], eax
mov eax, edx
jb 0x42e47e
mov eax, dword [esp]
mov edx, dword [esp + 4]
mov ecx, eax
imul esi, dword [edx], 0x5bd1e995
imul eax, eax, 0x5bd1e995
add ecx, 0xfffffffc
add edx, 4
mov ebp, esi
shr ebp, 0x18
xor ebp, esi
imul esi, ebp, 0x5bd1e995
xor eax, esi
cmp ecx, 3
ja 0x42e443
mov ecx, dword [esp]
lea edx, [ecx - 4]
mov ecx, dword [esp + 4]
mov esi, edx
and esi, 0xfffffffc
sub edx, esi
lea ecx, [ecx + esi + 4]
cmp edx, 1
je 0x42e49f
cmp edx, 2
je 0x42e496
cmp edx, 3
jne 0x42e4aa
movzx edx, byte [ecx + 2]
shl edx, 0x10
xor eax, edx
movzx edx, byte [ecx + 1]
shl edx, 8
xor eax, edx
movzx ecx, byte [ecx]
xor ecx, eax
imul eax, ecx, 0x5bd1e995
movzx edx, word [esp + 8]
mov esi, dword [esp + 0x1c]
jmp 0x42e366
mov esi, 0xfffffffa
jmp 0x42e10e
push str.Zip:_failed_to_intialize_central_directory._n
push str.ziparchive
push 6
call fcn.0044e140
add esp, 0xc
mov esi, 0xfffffff4
jmp 0x42e10e
push 8
push esi
push str.Zip:_unable_to_allocate_the__u_entry_hash_table__entry_size:__zu
push str.ziparchive
push 5
call fcn.0044e140
add esp, 0x14
jmp 0x42e63f
push dword [esp + 0x10]
push str.Zip:_invalid_file_name_at_entry__u
push str.ziparchive
push 5
call fcn.0044e140
add esp, 0x10
jmp 0x42e63f
cmp byte [ebx], 0
je 0x42e547
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
push 0
push 0
push 4
push ecx
push eax
call fcn.004127e0
add esp, 0x14
test al, al
je 0x42e56c
mov eax, dword [esp + 0x24]
jmp 0x42e557
mov eax, dword [ebx + 0x14]
test eax, eax
js 0x42e5c2
mov eax, dword [ebx + 8]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
xor esi, esi
cmp eax, 0x4034b50
je 0x42e117
push eax
push str.Zip:_Entry_at_offset_zero_has_invalid_LFH_signature__x
jmp 0x42e505
push 0
push 0
push str.Zip:_failed_to_read_at_offset__lld_n
push str.ziparchive
push 6
call fcn.0044e140
add esp, 0x14
jmp 0x42e5de
push dword [esp + 4]
push dword [esp + 4]
push str.Zip:_Found_duplicate_entry__.s
push str.ziparchive
push 5
call fcn.0044e140
add esp, 0x14
push 0xfffffffffffffffb
push str.Zip:_Error_adding_entry_to_hash_table__d
push str.ziparchive
push 5
call fcn.0044e140
add esp, 0x10
mov esi, 0xfffffffb
jmp 0x42e117
push eax
push dword [ebx + 0x10]
push 0
push 0
push str.Zip:_invalid_offset:__lld__data_length:__lld_n
push str.ziparchive
push 6
call fcn.0044e140
add esp, 0x1c
push str.Zip:_Unable_to_read_header_for_entry_at_offset__0.
push str.ziparchive
push 5
call fcn.0044e140
add esp, 0xc
jmp 0x42e63f
push edx
push str.Zip:_ran_off_the_end__at__u_
jmp 0x42e505
push edx
push str.Zip:_missed_a_central_dir_sig__at__u_
jmp 0x42e505
push edx
push 0
push eax
push str.Zip:_bad_LFH_offset__lld_at_entry__u
jmp 0x42e630
push ebp
push dword [esp + 4]
push dword [esp + 0x18]
push str.Zip:_file_name_for_entry__u_exceeds_the_central_directory_range__file_name_length:__u__cd_length:__zu
jmp 0x42e630
push dword [esp + 0x10]
push ebp
push eax
push str.Zip:_bad_CD_advance___tu_vs__zu__at_entry__u
push str.ziparchive
push 5
call fcn.0044e140
add esp, 0x18
mov esi, 0xffffffff
jmp 0x42e117
push ebx
push edi
push esi
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
push 0
push 0x8080
push esi
call fcn.00445010
add esp, 0xc
mov edi, eax
push 0x40
call fcn.0040bb60
add esp, 4
test edi, edi
mov byte [eax], 1
mov dword [eax + 4], edi
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov byte [eax + 0x18], 1
mov dword [eax + 0x38], 0
mov dword [eax + 0x3c], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x32], 0
mov dword [eax + 0x2e], 0
mov dword [ebx], eax
js 0x42e6e0
mov ecx, eax
mov edx, esi
pop esi
pop edi
pop ebx
jmp 0x42dfb0
call dword [sym.imp.msvcrt.dll__errno]
push dword [eax]
call sub.msvcrt.dll_strerror
add esp, 4
push eax
push esi
push str.Unable_to_open__s:__s
push str.ziparchive
push 5
call fcn.0044e140
add esp, 0x14
mov eax, 0xfffffff5
pop esi
pop edi
pop ebx
ret