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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rbx, r9
mov rdi, r8
mov r14, rdx
mov rsi, rcx
mov r15, qword [rdx + 0x288]
mov rdx, qword [rdx + 0x2a8]
mov rax, r15
sub rax, rdx
cmp rax, r8
jae 0x140058106
lea r12, [r14 + 0x278]
lea r13, [rsp + 0x68]
jmp 0x140058065
mov byte [r14 + 0x254], 1
mov r15, qword [r14 + 0x288]
mov rdx, qword [r14 + 0x2a8]
mov rax, r15
sub rax, rdx
cmp rax, rdi
jae 0x140058106
cmp byte [r14 + 0x254], 0
jne 0x1400582b4
test rdx, rdx
je 0x1400580b5
mov rbp, r15
sub rbp, rdx
jb 0x14005863f
mov qword [r14 + 0x288], 0
je 0x1400580aa
mov rcx, qword [r14 + 0x278]
add rdx, rcx
mov r8, rbp
call sub.VCRUNTIME140.dll_memmove
mov qword [r14 + 0x288], rbp
mov qword [r14 + 0x2a8], 0
mov rcx, r13
mov rdx, r14
mov r8, r12
call fcn.140058be0
cmp dword [rsp + 0x68], 0
jne 0x1400583d9
movzx eax, byte [rsp + 0x85]
cmp eax, 0xa
je 0x140058040
cmp eax, 0xd
jne 0x140058048
cmp qword [r14 + 0x288], 0
mov eax, 0x1c
mov ecx, 3
cmove ecx, eax
mov byte [rsp + 0x68], cl
jmp 0x1400582b9
cmp r15, rdx
jb 0x140058653
mov r12, qword [r14 + 0x278]
add r12, rdx
lea rax, [rdx + rdi]
mov qword [r14 + 0x2a8], rax
sub r15, rdx
je 0x14005862d
movzx ecx, byte [r12]
call fcn.1400c2260
mov ebp, eax
movzx eax, byte [r12]
mov byte [rsp + 0x69], al
mov byte [rsp + 0x68], 0x18
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x68]
call fcn.1401216f0
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x48]
mov dword [rsp + 0x58], ecx
movzx ecx, byte [rsp + 0x4c]
mov byte [rsp + 0x5c], cl
cmp bpl, 5
jne 0x1400581a3
movzx edx, byte [rsp + 0x4d]
movzx r8d, word [rsp + 0x4e]
mov r9, qword [rsp + 0x50]
mov rcx, rax
shr rcx, 8
movzx r10d, byte [rsp + 0x5c]
mov byte [rsp + 0x3c], r10b
mov r10d, dword [rsp + 0x58]
mov dword [rsp + 0x38], r10d
jmp 0x140058308
test rdi, rdi
je 0x14005868a
mov rdx, qword [r14 + 0x270]
cmp rdx, rdi
jb 0x14005869f
cmp r15, rdi
jb 0x1400586a8
movzx edx, byte [r14 + 0x2c0]
mov r8, qword [r14 + 0x260]
inc r8
lea r9, [rdi - 1]
lea rax, [r12 + 1]
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x20], rax
mov ecx, ebp
call fcn.140129aa0
mov rdx, qword [r14 + 0x270]
cmp rdx, rdi
jb 0x1400586bc
mov rcx, qword [r14 + 0x260]
mov rdx, r12
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [r14 + 0x270]
cmp rdx, rdi
jb 0x140058667
mov r10, qword [r14]
cmp r10, 2
je 0x140058670
mov r15, qword [r14 + 0x260]
movzx ecx, byte [r14 + 0x13f]
movzx ebp, byte [r14 + 0x140]
test r10, r10
setne al
mov edx, dword [r14 + 0x2bc]
mov r9d, edx
shr r9d, 0x10
mov r8d, r9d
and r8d, 1
or r8b, al
and r9b, 1
test dl, 0x10
movzx r9d, r9b
mov eax, 1
cmove eax, r9d
cmp bpl, 0x10
sete r12b
movzx r9d, cl
mov byte [rsp + 0x58], bpl
test r10, r10
je 0x140058350
mov r13, qword [r14 + 8]
test r13, r13
jne 0x1400582a0
mov r13, qword [r14 + 0x10]
mov r10, qword [r14 + 0x18]
mov qword [rsp + 0x60], r10
mov r11d, 1
jmp 0x140058357
mov byte [rsp + 0x68], 0x1c
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x68]
call fcn.1401216f0
movzx eax, byte [rsp + 0x40]
movzx ecx, byte [rsp + 0x47]
shl ecx, 0x10
movzx edx, word [rsp + 0x45]
or edx, ecx
shl rdx, 0x20
mov ecx, dword [rsp + 0x41]
or rcx, rdx
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x38], edx
movzx edx, byte [rsp + 0x4c]
mov byte [rsp + 0x3c], dl
movzx edx, byte [rsp + 0x4d]
movzx r8d, word [rsp + 0x4e]
mov r9, qword [rsp + 0x50]
mov r10d, 1
movzx r11d, byte [rsp + 0x3c]
mov byte [rsi + 0x14], r11b
mov r11d, dword [rsp + 0x38]
mov dword [rsi + 0x10], r11d
mov qword [rsi], r10
mov byte [rsi + 8], al
mov rax, rcx
shr rax, 0x30
mov byte [rsi + 0xf], al
mov rax, rcx
shr rax, 0x20
mov word [rsi + 0xd], ax
mov dword [rsi + 9], ecx
mov byte [rsi + 0x15], dl
mov word [rsi + 0x16], r8w
mov qword [rsi + 0x18], r9
jmp 0x14005859c
xor r13d, r13d
movzx r11d, r8b
mov r10, qword [rsp + 0x100]
dec rdi
inc r15
test r9d, r9d
je 0x14005837e
cmp r9d, 3
je 0x140058442
cmp r9d, 4
jne 0x1400584c0
cmp bpl, 7
ja 0x1400584c0
test al, al
je 0x1400584c0
cmp rdi, r10
mov r12, r10
ja 0x1400586e1
mov rbp, r11
mov rcx, rbx
mov rdx, r15
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], r13
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x78], rax
lea r9, [rsp + 0x68]
mov rcx, rbx
mov rdx, r12
mov r8, r14
call fcn.140128c90
jmp 0x140058595
movzx edx, byte [rsp + 0x85]
movzx r8d, word [rsp + 0x86]
mov r9, qword [rsp + 0x88]
mov r10, qword [rsp + 0x70]
movzx eax, byte [rsp + 0x78]
movzx ebp, byte [rsp + 0x7f]
movzx r11d, word [rsp + 0x7d]
mov ecx, dword [rsp + 0x79]
mov r15d, dword [rsp + 0x80]
mov dword [rsp + 0x38], r15d
movzx r15d, byte [rsp + 0x84]
mov byte [rsp + 0x3c], r15b
cmp r10, 4
je 0x140058213
shl ebp, 0x10
or r11d, ebp
shl r11, 0x20
or rcx, r11
jmp 0x14005830e
test al, al
je 0x1400584c0
cmp rdi, r10
mov r12, r10
ja 0x1400586ea
mov rbp, r11
mov rcx, rbx
mov rdx, r15
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], r13
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x68]
mov rdx, rbx
mov r8, r12
mov r9, r14
call fcn.140127de0
mov rax, qword [rsp + 0x68]
cmp rax, 4
je 0x140058595
mov rcx, qword [rsp + 0x80]
mov qword [rsi + 0x18], rcx
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rsi + 8], xmm0
mov qword [rsi], rax
jmp 0x14005859c
and r12b, dl
test r8b, r8b
je 0x140058522
cmp r9d, 6
ja case.0x140058535.1
mov edx, r9d
lea r8, [0x14005874c]
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
test al, al
je case.0x140058535.0
mov r14, r10
call fcn.140121300
cmp bpl, 8
jne 0x1400585b0
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
mov rcx, r15
mov rdx, rdi
mov r8, rbx
mov r9, r14
call fcn.140121950
jmp 0x140058595
cmp cl, 6
ja case.0x140058535.1
lea rax, [0x140058730]
movsxd rcx, dword [rax + r9*4]
add rcx, rax
jmp rcx
test r12b, r12b
je case.0x140058535.1
cmp rdi, 2
jb 0x140058595
mov rax, rdi
shr rax, 1
neg rax
xor ecx, ecx
xor edx, edx
nop
cmp rcx, rdi
jae 0x140058608
mov r8, r10
add r8, rdx
je 0x140058619
movzx r8d, byte [r15 + rcx]
mov byte [rbx], r8b
inc rbx
dec rdx
add rcx, 2
cmp rax, rdx
jne 0x140058550
jmp 0x140058595
cmp rdi, r10
jne 0x1400586cd
mov rcx, rbx
mov rdx, r15
mov r8, r10
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi], 4
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test r12b, r12b
mov rcx, qword [rsp + 0x60]
je 0x1400585dc
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r13
mov rcx, r15
mov rdx, rdi
mov r8, rbx
mov r9, r14
call fcn.140121fc0
jmp 0x140058595
cmp bpl, 0x10
jne 0x1400586fe
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r13
mov rcx, r15
mov rdx, rdi
mov r8, rbx
mov r9, r14
call fcn.140121c20
jmp 0x140058595
lea r8, [0x140202500]
mov rdx, rdi
call fcn.1401fc170
ud2
lea r8, [0x140202518]
mov rcx, r10
mov rdx, r10
call fcn.1401fc170
ud2
lea r8, [0x140202438]
xor ecx, ecx
xor edx, edx
call fcn.1401fc170
ud2
lea r8, [0x140205768]
mov rcx, rdx
mov rdx, r15
call fcn.1401fc600
ud2
lea r8, [0x140202420]
mov rcx, rdx
mov rdx, r15
call fcn.1401fc580
ud2
lea r8, [0x140202498]
jmp 0x1400586c3
lea rcx, str.called__Option::unwrap____on_a__None__valueC:Usershp.cargo_registry_srcindex.crates.io_6f17d22bba15001fpng_0.17.10_srcdecodermod.rs
lea r8, [0x140202548]
mov edx, 0x2b
call fcn.1401fc0d0
ud2
lea r8, [0x140202450]
mov ecx, 1
xor edx, edx
call fcn.1401fc680
ud2
lea r8, [0x140202450]
jmp 0x1400586c3
lea r8, [0x140202468]
mov rcx, rdi
mov rdx, r15
call fcn.1401fc600
ud2
lea r8, [0x140202480]
mov rcx, rdi
call fcn.1401fc600
ud2
lea r8, [0x140202530]
mov rcx, r10
mov rdx, rdi
call fcn.1401fc740
ud2
lea r8, [0x1402024c8]
jmp 0x1400586f1
lea r8, [0x1402024b0]
mov rcx, rdi
mov rdx, r12
call fcn.1401fc600
ud2
mov qword [rsp + 0x68], 0
lea rax, [0x1402024e8]
mov qword [rsp + 0x20], rax
lea r8, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x58]
lea r9, [rsp + 0x68]
xor ecx, ecx
call fcn.1401f4c70
ud2