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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x148], rbx
mov rax, qword [0x18008b590]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov r12, r8
mov rbp, rdx
mov r14, rcx
xor r13d, r13d
mov dword [rsp + 0x20], r13d
mov rax, qword [r8]
lea r9, [rsp + 0x20]
lea r8d, [r13 + 0xc]
lea rdx, [rsp + 0x68]
mov rcx, r12
call qword [rax + 0x18]
test eax, eax
jne 0x18004da36
cmp dword [rsp + 0x20], 0xc
jne 0x18004da31
mov r8d, 4
lea rdx, str.RIFF
lea rcx, [rsp + 0x68]
call fcn.180059b10
test eax, eax
jne 0x18004da31
lea r8d, [rax + 4]
lea rdx, str.WAVE
lea rcx, [rsp + 0x70]
call fcn.180059b10
test eax, eax
jne 0x18004da31
lea r9d, [rax + 0xc]
lea r8, [rsp + 0x68]
mov rdx, rbp
mov rcx, r14
call fcn.18004d1b0
test eax, eax
jne 0x18004da36
xor edx, edx
lea r8d, [rdx + 0x58]
lea rcx, [rsp + 0x80]
call fcn.18005ce60
mov r11d, dword [r14 + 0xc]
mov dword [rsp + 0x94], r11d
mov eax, dword [r14 + 0x10]
test eax, eax
je 0x18004d4e4
bts r11d, 0x19
mov dword [rsp + 0x94], r11d
mov dword [rsp + 0x98], eax
xor edx, edx
lea r8d, [rdx + 0x28]
lea rcx, [rsp + 0x40]
call fcn.18005ce60
mov dword [rsp + 0x20], r13d
mov rax, qword [r12]
lea r9, [rsp + 0x20]
mov r8d, 8
lea rdx, [rsp + 0x38]
mov rcx, r12
call qword [rax + 0x18]
test eax, eax
jne 0x18004da36
lea esi, [rax + 1]
mov r15d, 0x100
cmp dword [rsp + 0x20], 8
jne 0x18004da2a
test rbp, rbp
je 0x18004d578
mov rax, qword [rbp + 0x1c8]
test rax, rax
je 0x18004d548
mov eax, dword [rax + 0xb8]
jmp 0x18004d563
mov rax, qword [rbp + 0x1c0]
test rax, rax
je 0x18004d578
cmp qword [rax], 0
je 0x18004d578
mov rax, qword [rax]
mov eax, dword [rax + 0xc0]
test eax, eax
je 0x18004d578
cmp eax, 0xffffffff
je 0x18004d578
add dword [rbp + 0xf4], 8
mov r9b, 0x22
jmp 0x18004d581
mov dword [rbp + 0xf8], esi
mov r9b, 0x21
mov r8d, 8
lea rdx, [rsp + 0x38]
mov rcx, rbp
call fcn.180039400
test eax, eax
je 0x18004da23
add qword [r14 + 0x18], 8
lea rdi, [0x18007d0ac]
lea rbx, [rsp + 0x38]
nop dword [rax]
movzx ecx, byte [rdi]
mov al, cl
cmp cl, 0x4c
je 0x18004d5ec
cmp al, 0x53
je 0x18004d5d7
movsx ecx, cl
call fcn.1800599a0
test eax, eax
je 0x18004d610
movsx eax, byte [rdi]
sub eax, 0x30
cdqe
add rbx, rax
jmp 0x18004d610
movzx ecx, byte [rbx + 1]
shl ecx, 8
movzx eax, byte [rbx]
add ecx, eax
mov word [rbx], cx
add rbx, 2
jmp 0x18004d610
movzx ecx, byte [rbx + 3]
shl ecx, 8
movzx eax, byte [rbx + 2]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbx + 1]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbx]
add ecx, eax
mov dword [rbx], ecx
add rbx, 4
inc rdi
cmp byte [rdi], 0
jne 0x18004d5b0
mov r8d, 4
lea rdx, str.fmt
lea rcx, [rsp + 0x38]
call fcn.180059b10
test eax, eax
jne 0x18004d878
mov r8d, dword [rsp + 0x3c]
cmp r8d, 0x10
jb 0x18004d965
cmp r8d, 0x28
ja 0x18004d965
mov dword [rsp + 0x28], r13d
mov rax, qword [r12]
lea r9, [rsp + 0x28]
lea rdx, [rsp + 0x40]
mov rcx, r12
call qword [rax + 0x18]
test eax, eax
jne 0x18004da36
mov r9d, dword [rsp + 0x3c]
cmp dword [rsp + 0x28], r9d
jne 0x18004d95b
lea r8, [rsp + 0x40]
mov rdx, rbp
mov rcx, r14
call fcn.18004d1b0
test eax, eax
jne 0x18004da36
lea rdi, str.SSLLSSSSLS
lea rbx, [rsp + 0x40]
movzx ecx, byte [rdi]
mov al, cl
cmp cl, 0x4c
je 0x18004d6e4
cmp al, 0x53
je 0x18004d6cc
movsx ecx, cl
call fcn.1800599a0
test eax, eax
je 0x18004d708
movsx eax, byte [rdi]
sub eax, 0x30
cdqe
add rbx, rax
jmp 0x18004d708
movzx ecx, byte [rbx + 1]
imul cx, r15w
movzx eax, byte [rbx]
add cx, ax
mov word [rbx], cx
add rbx, 2
jmp 0x18004d708
movzx ecx, byte [rbx + 3]
shl ecx, 8
movzx eax, byte [rbx + 2]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbx + 1]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbx]
add ecx, eax
mov dword [rbx], ecx
add rbx, 4
inc rdi
cmp byte [rdi], 0
jne 0x18004d6a5
mov r10d, r13d
mov r9d, dword [rsp + 0x3c]
cmp r9d, 0x10
jbe 0x18004d728
cmp word [rsp + 0x50], 2
cmove r10d, esi
movzx eax, word [rsp + 0x40]
mov ecx, 0xfffe
cmp ax, cx
jne 0x18004d742
cmp r9d, 0x28
jne 0x18004d742
mov ax, word [rsp + 0x58]
movzx r11d, ax
cmp r11d, 1
je 0x18004d756
cmp r11d, 3
jne 0x18004d947
movzx eax, word [rsp + 0x4e]
cmp r9d, 0x28
cmove ax, word [rsp + 0x52]
movzx r8d, ax
mov dword [rsp + 0x88], r8d
cmp r8d, 1
jl 0x18004d951
cmp r8d, 0x20
jg 0x18004d951
movzx ecx, word [rsp + 0x42]
test cx, cx
je 0x18004d951
cmp cx, r15w
ja 0x18004d951
movzx eax, word [rsp + 0x4c]
movzx edi, cx
cdq
idiv edi
mov ebx, edx
mov esi, eax
lea eax, [r8 + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp esi, eax
jl 0x18004d951
cmp esi, 4
jg 0x18004d951
test ebx, ebx
jne 0x18004d951
cmp r9d, 0x28
jb 0x18004d7e5
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0xb0], eax
jmp 0x18004d820
cmp cx, 2
ja 0x18004d7fb
mov eax, 5
sub eax, edi
mov dword [rsp + 0xb0], eax
jmp 0x18004d820
cmp cx, 0x12
ja 0x18004d815
mov ecx, edi
mov eax, 1
shl eax, cl
dec eax
mov dword [rsp + 0xb0], eax
jmp 0x18004d820
mov dword [rsp + 0xb0], 0x3ffff
cmp r11d, 3
jne 0x18004d836
mov dword [rsp + 0xa0], 0x7f
jmp 0x18004d918
test r10d, r10d
je 0x18004d918
cmp esi, 4
jne 0x18004d918
cmp r8d, 0x18
jne 0x18004d85e
mov dword [rsp + 0xa0], 0x96
jmp 0x18004d918
cmp r8d, 0x20
jne 0x18004d918
mov dword [rsp + 0xa0], SysAllocStringByteLen
jmp 0x18004d918
mov r8d, 4
lea rdx, str.data
lea rcx, [rsp + 0x38]
call fcn.180059b10
test eax, eax
je 0x18004d9b3
mov edi, dword [rsp + 0x3c]
inc edi
and edi, 0xfffffffe
test edi, 0xf0000000
ja 0x18004d9a9
mov ecx, edi
lea rdx, [0x18008df40]
call fcn.180058a18
mov rbx, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x18004d99f
mov dword [rsp + 0x24], r13d
mov rax, qword [r12]
lea r9, [rsp + 0x24]
mov r8d, edi
mov rdx, rbx
mov rcx, r12
call qword [rax + 0x18]
mov esi, eax
test eax, eax
jne 0x18004d990
cmp dword [rsp + 0x24], edi
jne 0x18004d97e
mov r9d, edi
mov r8, rbx
mov rdx, rbp
mov rcx, r14
call fcn.18004d1b0
mov edi, eax
test eax, eax
jne 0x18004d96f
mov rcx, rbx
call fcn.180058a10
mov dword [rsp + 0x20], r13d
mov rax, qword [r12]
lea r9, [rsp + 0x20]
mov r8d, 8
lea rdx, [rsp + 0x38]
mov rcx, r12
call qword [rax + 0x18]
test eax, eax
jne 0x18004da36
lea esi, [rax + 1]
jmp 0x18004d524
mov eax, 0xe00f0001
jmp 0x18004da36
mov eax, 0xe00f0001
jmp 0x18004da36
mov eax, 0xe00f0001
jmp 0x18004da36
mov eax, 0xe00f0001
jmp 0x18004da36
mov rcx, rbx
call fcn.180058a10
mov eax, edi
jmp 0x18004da36
mov rcx, rbx
call fcn.180058a10
mov eax, 0x80004005
jmp 0x18004da36
mov rcx, rbx
call fcn.180058a10
mov eax, esi
jmp 0x18004da36
mov eax, 0x8007000e
jmp 0x18004da36
mov eax, 0xe00f0001
jmp 0x18004da36
movzx r10d, word [rsp + 0x4c]
xor edx, edx
mov eax, dword [rsp + 0x3c]
div r10d
mov r9d, eax
movzx eax, word [rsp + 0x42]
test ax, ax
je 0x18004da1c
test r9d, r9d
je 0x18004da1c
movzx r8d, ax
mov eax, r10d
cdq
idiv r8d
mov dword [rsp + 0x8c], eax
mov dword [rsp + 0x9c], r8d
mov edx, dword [rsp + 0x44]
mov dword [rsp + 0xac], edx
mov r8d, r9d
lea rdx, [rsp + 0x80]
mov rcx, rbp
call fcn.18004a8c0
mov ecx, 0xe00f0001
test eax, eax
cmove r13d, ecx
mov eax, r13d
jmp 0x18004da36
mov eax, 0xe00f0001
jmp 0x18004da36
mov eax, 0x80004005
jmp 0x18004da36
mov eax, 0xe00f0001
jmp 0x18004da36
mov eax, 0xe00f0001
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.180058240
mov rbx, qword [rsp + 0x148]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret