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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4f8
mov eax, dword [0x93d814]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 8]
or ebx, 0xffffffff
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x4f4], edi
mov dword [ebp - 0x4f0], eax
call fcn.004d05c0
test eax, eax
je 0x464b82
cmp dword [ebp + 0x18], 0xa
jg 0x464b82
mov eax, dword [0xc32c5c]
and edi, 0x3ffff
cmp dword [esi + 0xc], 0
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x4e0], 0
mov edi, dword [eax + edi*4]
jne 0x464aed
cmp dword [esi + 0x14], 0
jne 0x464aed
cmp dword [esi + 8], 0
mov eax, dword [ebp + 0x14]
jne 0x46486e
push eax
push dword [ebp - 0x4f0]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
call fcn.0045f800
mov dword [ebp - 0x34], eax
call fcn.0045f700
push dword [esi + 0x4c]
push dword [esi + 0x48]
movups xmm0, xmmword [eax]
push dword [esi + 0x44]
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x4dc]
movq qword [ebp - 0x3c], xmm0
push eax
call fcn.00498360
add esp, 0x1c
test eax, eax
jns 0x464782
push 0x6ba5a8
call fcn.00459c80
add esp, 4
jmp 0x464b43
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x4e0]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x4dc]
push eax
call fcn.00498b40
add esp, 0x10
test eax, eax
jns 0x4647b6
push 0x6ba5d4
call fcn.00459c80
add esp, 4
jmp 0x464b43
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x30]
jne 0x4647f3
mov eax, dword [esi + 0x24]
cmp eax, dword [esi + 0x34]
jne 0x4647f3
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x38]
jne 0x4647f3
mov eax, dword [esi + 0x2c]
cmp eax, dword [esi + 0x3c]
jne 0x4647f3
cmp dword [esi + 0x40], 0
jne 0x4647f3
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x4dc]
push eax
call fcn.00498030
add esp, 0xc
lea eax, [ebp - 0x4dc]
push eax
call fcn.00498c10
push dword [ebp - 0x34]
call fcn.0045e550
add esp, 8
mov dword [ebp - 0x34], 0
cmp dword [ebp - 0x10], 0
jl 0x4648aa
mov ecx, dword [ebp - 0x14]
jg 0x464828
test ecx, ecx
jb 0x4648aa
mov edx, dword [ebp - 0x18]
test edx, edx
jl 0x4648aa
mov eax, dword [ebp - 0x1c]
jg 0x464838
test eax, eax
jb 0x4648aa
mov dword [esi + 0x28], ecx
mov ecx, dword [ebp - 0x10]
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov eax, dword [ebp - 0x4e0]
test eax, eax
je 0x464864
push eax
call fcn.0045a740
mov dword [ebp - 0x4e0], 0
add esp, 4
mov eax, dword [ebp + 0x14]
mov dword [esi + 8], 2
push dword [ebp + 0x20]
mov edi, dword [ebp - 0x4f4]
push dword [ebp + 0x1c]
push dword [esi + 8]
push edi
push 0
push eax
push dword [ebp - 0x4f0]
push esi
call fcn.004602a0
add esp, 0x20
cmp eax, 0xffffffff
je 0x464b43
push dword [ebp + 0x20]
push edi
call fcn.00468480
add esp, 8
jmp 0x464a49
mov ecx, dword [ebp - 8]
xor edx, edx
mov eax, ecx
div dword [ebp - 0x28]
cmp eax, 0xb4
ja 0x464847
push dword [ebp + 0x20]
mov eax, dword [ebp + 0x18]
push 0xffffffffffffffff
push dword [ebp - 0x4f4]
push eax
push 0
push ecx
lea eax, [ebp - 0x30]
push eax
call fcn.00461c60
add esp, 0x1c
cmp eax, 0xffffffff
je 0x464847
mov eax, dword [ebp - 0x2c]
push 0x1284
push str...........SourceLibraryMainDxSound.cpp
push 4
mov dword [edi + 0x28e4], eax
call fcn.0045a440
mov ecx, eax
add esp, 0xc
mov dword [edi + 0x2838], ecx
test ecx, ecx
jne 0x46491d
push 0x6ba610
call fcn.00459c80
add esp, 4
jmp 0x464b43
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [edi + 0x1430], xmm0
mov ax, word [ebp - 0x20]
mov word [edi + 0x1440], ax
mov eax, dword [ebp - 0x4e0]
mov dword [edi + 0x2834], eax
mov eax, dword [ebp - 8]
mov dword [edi + 0x2830], eax
mov dword [ecx], 1
xor ecx, ecx
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4f0], ecx
cmp dword [edi + 0x78], ecx
jle 0x464a43
lea eax, [edi + 0x283c]
lea ebx, [edi + 0xd0]
mov dword [ebp - 0x4f8], eax
nop dword [eax + eax]
cmp dword [eax], 1
je 0x464a24
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x4e8]
push eax
lea eax, [ebp - 0x4e4]
push eax
lea eax, [ebp - 0x4ec]
push eax
push dword [ebp - 8]
push 0
push ebx
call fcn.00468cb0
add esp, 0x1c
test eax, eax
jne 0x464a9b
push dword [ebp - 0x4e4]
push dword [edi + 0x2834]
push dword [ebp - 0x4ec]
call fcn.00497210
mov ecx, dword [ebp - 0x4e8]
add esp, 0xc
test ecx, ecx
je 0x4649fb
push dword [ebp - 0xc]
mov eax, dword [edi + 0x2834]
add eax, dword [ebp - 0x4e4]
push eax
push ecx
call fcn.00497210
mov ecx, dword [ebp - 0x4e8]
add esp, 0xc
push dword [ebp - 0xc]
push ecx
push dword [ebp - 0x4e4]
push dword [ebp - 0x4ec]
push ebx
call fcn.00469da0
add esp, 0x14
test eax, eax
jne 0x464a86
mov eax, dword [ebp - 0x4f8]
mov ecx, dword [ebp - 0x4f0]
inc ecx
add eax, 4
add ebx, 0x1f0
mov dword [ebp - 0x4f0], ecx
mov dword [ebp - 0x4f8], eax
cmp ecx, dword [edi + 0x78]
jl 0x464980
mov edi, dword [ebp - 0x4f4]
mov ebx, dword [esi + 0x20]
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x34]
cmp ebx, edx
jne 0x464a5d
cmp ecx, eax
je 0x464ab0
cmp dword [esi + 0x40], 0
jne 0x464ab0
push dword [ebp + 0x20]
push edi
push eax
push edx
push ecx
push ebx
call fcn.00466e00
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005c33e1
mov esp, ebp
pop ebp
ret
push 0x6ba4ec
call fcn.00459730
add esp, 4
or ebx, 0xffffffff
jmp 0x464b43
push 0x6ba4c4
call fcn.00459730
add esp, 4
or ebx, 0xffffffff
jmp 0x464b43
mov ebx, dword [esi + 0x28]
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x3c]
cmp ebx, edx
jne 0x464ac4
cmp ecx, eax
je 0x464ada
cmp dword [esi + 0x40], 0
jne 0x464ada
push dword [ebp + 0x20]
push edi
push eax
push edx
push ecx
push ebx
call fcn.00466db0
add esp, 0x18
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005c33e1
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x20]
push edi
push dword [ebp + 0x14]
push dword [ebp - 0x4f0]
push 0
push esi
call fcn.00463940
mov ebx, eax
add esp, 0x14
test ebx, ebx
jns 0x464b1a
push str.LoadSoundMemByMemImageBase_Error_1
call fcn.00459d10
add esp, 4
jmp 0x464b43
mov eax, dword [ebp + 0x18]
push edi
push eax
push ebx
push esi
push dword [ebp - 0x4f4]
call fcn.00468060
add esp, 0x14
test eax, eax
jns 0x464b96
neg eax
push eax
push str.LoadSoundMemByMemImageBase_Error__d
call fcn.00459d10
add esp, 8
mov eax, dword [ebp - 0x4e0]
test eax, eax
je 0x464b56
push eax
call fcn.0045a740
add esp, 4
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x464b66
push eax
call fcn.0045e550
add esp, 4
test ebx, ebx
js 0x464b73
push ebx
call fcn.00462360
add esp, 4
lea eax, [ebp - 0x4dc]
push eax
call fcn.00498c10
add esp, 4
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005c33e1
mov esp, ebp
pop ebp
ret
push ebx
call fcn.00462360
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.005c33e1
mov esp, ebp
pop ebp
ret