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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x40
push ebx
push ebp
push esi
push edi
or edi, 0xffffffff
cmp eax, 0xbb8
mov esi, ecx
jg case.default.0x407b9f
je 0x407f64
add eax, 0xfffffc18
cmp eax, 0x1e
ja case.default.0x407b9f
jmp dword [eax*4 + 0x407f74]
mov edi, dword [esi + 0x20]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x24]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x28]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x3c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x40]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x44]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x38]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x48]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x2c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x4c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x54]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x50]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x58]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x5c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x60]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x64]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x68]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov ebx, dword [esp + 0x58]
xor edi, edi
push edi
push ebx
push 0x404
mov ecx, esi
call fcn.00407b70
push edi
push ebx
push 0x405
mov ecx, esi
mov ebp, eax
call fcn.00407b70
test ebp, ebp
jle case.default.0x407b9f
test eax, eax
jle case.default.0x407b9f
mov esi, dword [esi + 0x3c]
test esi, esi
jle case.default.0x407b9f
imul eax, eax, 0x3e8
cdq
idiv esi
mov ecx, eax
test ecx, ecx
je case.default.0x407b9f
lea eax, [ebp*8]
cdq
idiv ecx
mov edi, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x6c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
push 0
push 0
push 0x3e8
mov ecx, esi
call fcn.00407b70
cmp eax, 0xed8
jg 0x407dcc
mov eax, dword [esp + 0x58]
test eax, eax
jl 0x407dcc
cmp eax, dword [esi + 0x2c]
jge 0x407dcc
mov ecx, dword [esi + 0x84]
movzx edi, byte [ecx + eax]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov eax, dword [esp + 0x58]
test eax, eax
jl 0x407dcc
cmp eax, dword [esi + 0x2c]
jge 0x407dcc
mov edx, dword [esi + 0x78]
mov edi, dword [edx + eax*4]
add edi, dword [esi + 0x70]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
test byte [esi + 0x28], 0x20
mov eax, dword [esp + 0x5c]
je 0x407dda
cmp eax, 0x2c
jb case.0x407b9f.1021
push 0
lea eax, [esp + 0x14]
push eax
push 0x402
mov ecx, esi
call fcn.00407b70
mov ecx, dword [esi + 0x54]
mov eax, dword [esi + 0x50]
push ecx
lea edx, [esp + 0x14]
push edx
push eax
lea ecx, [esp + 0x30]
push ecx
call sym.MAC.exe__FillWaveHeader_16
mov edi, dword [esp + 0x58]
mov ecx, 0xb
lea esi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
xor edi, edi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov ecx, dword [esi + 0x4c]
cmp ecx, eax
jg case.0x407b9f.1021
mov esi, dword [esi + 0x90]
mov edi, dword [esp + 0x58]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edi, edi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov eax, dword [esi + 0x54]
cmp eax, dword [esp + 0x5c]
jle 0x407e1f
or edi, 0xffffffff
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
test eax, eax
jle 0x407e70
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 0x24]
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x5c], 0
mov ebp, dword [edi]
push 2
mov ebx, eax
call fcn.00404bb0
add eax, dword [esi + 0x54]
neg eax
push eax
mov ecx, edi
call dword [ebp + 0x14]
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esi + 0x54]
push eax
mov eax, dword [esp + 0x60]
push eax
call dword [edx + 0xc]
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
push 0
push ebx
call dword [edx + 0x14]
xor edi, edi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x3c]
push eax
mov eax, dword [esp + 0x5c]
push ecx
push edx
push eax
call sym.MAC.exe__FillWaveFormatEx_16
xor edi, edi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 8]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov ebx, dword [esp + 0x58]
test ebx, ebx
jl case.0x407b9f.1021
mov eax, dword [esi + 0x2c]
cmp ebx, eax
jge case.0x407b9f.1021
dec eax
cmp ebx, eax
je 0x407efe
push 0
lea ecx, [ebx + 1]
push ecx
push 0x3ff
mov ecx, esi
call fcn.00407b70
mov edi, eax
push 0
push ebx
push 0x3ff
mov ecx, esi
call fcn.00407b70
sub edi, eax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
mov ebp, dword [esi + 0x14]
call dword [edx + 0x28]
mov edx, dword [esi + 0x54]
mov edi, eax
mov ecx, ebp
sub edi, edx
call fcn.00404bb0
sub edi, eax
jmp 0x407ee1
mov ecx, dword [esp + 0x58]
test ecx, ecx
jl case.0x407b9f.1021
mov eax, dword [esi + 0x2c]
cmp ecx, eax
jge case.0x407b9f.1021
dec eax
cmp ecx, eax
je case.0x407b9f.1009
mov edi, dword [esi + 0x30]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x34]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
mov edi, dword [esi + 0x14]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
lea edi, [esi + 0x20]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc