Function at 0x462960
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.00463be0
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 0x46249e
cmp ebp, 0x10016
mov eax, ebx
mov esi, 0x10015
sbb eax, 0
cmovl esi, ebp
test esi, esi
je 0x462310
push esi
call fcn.00416880
add esp, 4
mov edi, eax
push esi
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.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 0x462354
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.00422130
add esp, 0x14
test al, al
je 0x462443
add esi, 0xffffffea
jns 0x46239b
jmp 0x462425
test ecx, ecx
mov ebx, ecx
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
js 0x46245b
cmp eax, ebp
mov edx, ecx
sbb edx, ebx
jl 0x46245b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
add eax, ebp
push esi
push eax
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add esi, 0xffffffea
jns 0x46239b
jmp 0x462425
test esi, esi
lea esi, [esi - 1]
jle 0x462425
cmp byte [edi + esi], 0x50
jne 0x462390
cmp dword [edi + esi], 0x6054b50
jne 0x462390
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 0x4624a8
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 0x4624cd
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.004932d0
add esp, 0x1c
mov esi, 0xfffffff8
jmp 0x462495
push dword [esp]
push str.Zip:_EOCD_not_found___s_is_not_zip
push str.ziparchive
push 3
call fcn.004932d0
add esp, 0x10
mov esi, 0xfffffffd
jmp 0x462491
push ebx
push ebp
push str.Zip:_failed_to_read_at_offset__lld_n
push str.ziparchive
push 6
call fcn.004932d0
add esp, 0x14
jmp 0x462473
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.004932d0
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.004932d0
add esp, 0x1c
mov esi, 0xfffffff5
test edi, edi
je 0x46249e
push edi
call fcn.00416a20
add esp, 4
mov eax, esi
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret
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.004932d0
add esp, 0x14
mov esi, 0xfffffffd
jmp 0x462495
cmp word [edi + esi + 0xa], 0
je 0x4627c7
mov ebx, dword [esp + 0xc]
mov ecx, ebx
push edx
push 0
push eax
call fcn.00463d20
test al, al
je 0x4627d1
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.00416a20
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.api_ms_win_crt_heap_l1_1_0.dll_calloc
add esp, 8
test eax, eax
mov dword [ebx + 0x3c], eax
je 0x4627ef
test di, di
mov dword [esp + 0x34], edi
je 0x462828
mov edi, dword [esp + 0x14]
xor edx, edx
lea eax, [edi + ebp]
mov dword [esp + 0x38], eax
add eax, 0xffffffd2
mov dword [esp + 0x28], eax
cmp edi, eax
ja 0x462903
cmp dword [edi], 0x2014b50
jne 0x46290e
mov eax, dword [edi + 0x2a]
mov ecx, 0
cmp eax, dword [ebx + 0x20]
sbb ecx, dword [ebx + 0x24]
jge 0x462919
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 0x462924
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 0x462660
mov eax, dword [esp]
xor ecx, ecx
dec eax
jmp 0x462603
inc ecx
cmp ecx, dword [esp]
jae 0x462721
mov edx, dword [esp + 4]
movzx edx, byte [edx + ecx]
test edx, edx
je 0x46280b
test dl, dl
jns 0x4625f9
mov ebx, edx
and ebx, 0xffffffc0
cmp ebx, 0x80
je 0x46280b
mov ebx, edx
and ebx, 0xfffffffe
cmp ebx, 0xfe
mov ebx, dword [esp + 0xc]
je 0x46280b
add dl, dl
jns 0x4625f9
cmp eax, ecx
je 0x46280b
movzx ebx, byte [edi + ecx + 0x2f]
inc ecx
and bl, 0xc0
cmp bl, 0x80
mov ebx, dword [esp + 0xc]
je 0x46263d
jmp 0x46280b
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 0x46268d
inc ebp
and ebp, esi
mov eax, dword [ebx + ebp*8]
test eax, eax
je 0x4626c8
cmp word [ebx + ebp*8 + 4], dx
jne 0x46268c
test dx, dx
je 0x462895
add eax, dword [esp + 0x18]
push dword [esp]
push dword [esp + 8]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
movzx edx, word [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x46268c
jmp 0x462895
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 0x462934
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
inc edx
cmp edx, dword [esp + 0x34]
jne 0x46258c
jmp 0x462828
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 0x46278d
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 0x462752
mov ecx, dword [esp]
lea edx, [ecx - 4]
mov ecx, dword [esp + 4]
mov esi, edx
and esi, 0xfffffffc
sub edx, esi
lea ecx, [esi + ecx + 4]
cmp edx, 1
je 0x4627ae
cmp edx, 2
je 0x4627a5
cmp edx, 3
jne 0x4627b9
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 0x462675
mov esi, 0xfffffffa
jmp 0x462495
push str.Zip:_failed_to_intialize_central_directory._n
push str.ziparchive
push 6
call fcn.004932d0
add esp, 0xc
mov esi, 0xfffffff4
jmp 0x462495
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.004932d0
add esp, 0x14
jmp 0x46294e
push dword [esp + 0x10]
push str.Zip:_invalid_file_name_at_entry__u
push str.ziparchive
push 5
call fcn.004932d0
add esp, 0x10
jmp 0x46294e
cmp byte [ebx], 0
je 0x462856
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.00422130
add esp, 0x14
test al, al
je 0x46287b
mov eax, dword [esp + 0x24]
jmp 0x462866
mov eax, dword [ebx + 0x14]
test eax, eax
js 0x4628d1
mov eax, dword [ebx + 8]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
xor esi, esi
cmp eax, 0x4034b50
je 0x46249e
push eax
push str.Zip:_Entry_at_offset_zero_has_invalid_LFH_signature__x
jmp 0x462814
push 0
push 0
push str.Zip:_failed_to_read_at_offset__lld_n
push str.ziparchive
push 6
call fcn.004932d0
add esp, 0x14
jmp 0x4628ed
push dword [esp + 4]
push dword [esp + 4]
push str.Zip:_Found_duplicate_entry__.s
push str.ziparchive
push 5
call fcn.004932d0
add esp, 0x14
push 0xfffffffffffffffb
push str.Zip:_Error_adding_entry_to_hash_table__d
push str.ziparchive
push 5
call fcn.004932d0
add esp, 0x10
mov esi, 0xfffffffb
jmp 0x46249e
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.004932d0
add esp, 0x1c
push str.Zip:_Unable_to_read_header_for_entry_at_offset__0.
push str.ziparchive
push 5
call fcn.004932d0
add esp, 0xc
jmp 0x46294e
push edx
push str.Zip:_ran_off_the_end__at__u_
jmp 0x462814
push edx
push str.Zip:_missed_a_central_dir_sig__at__u_
jmp 0x462814
push edx
push 0
push eax
push str.Zip:_bad_LFH_offset__lld_at_entry__u
jmp 0x46293f
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 0x46293f
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.004932d0
add esp, 0x18
mov esi, 0xffffffff
jmp 0x46249e
push ebx
push edi
push esi
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
push 0
push 0x8080
push esi
call fcn.004785a0
add esp, 0xc
mov edi, eax
push 0x40
call fcn.00416880
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 0x4629f0
mov ecx, eax
mov edx, esi
pop esi
pop edi
pop ebx
jmp 0x4622a0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
push dword [eax]
call sub.api_ms_win_crt_runtime_l1_1_0.dll_strerror
add esp, 4
push eax
push esi
push str.Unable_to_open__s:__s
push str.ziparchive
push 5
call fcn.004932d0
add esp, 0x14
mov eax, 0xfffffff5
pop esi
pop edi
pop ebx
ret