Function at 0x70037290
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov dword [esp], 0xffc
mov ebx, dword [esp + 0x80]
lea esi, [esp + 0x20]
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
call sub.msvcrt.dll_malloc
mov ecx, 0x3ff
mov dword [ebx + 0x194], eax
mov edi, eax
mov dword [esp + 0xc], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x70]
mov dword [esp + 8], 0xc
mov dword [esp + 4], esi
mov edx, dword [ebx + 0x74]
mov dword [esp], edx
call dword [eax]
cmp eax, 0xc
je 0x70037350
test ebp, ebp
je 0x7003733d
mov eax, 0x21
mov dword [ebp], 0x20746f6e
mov dword [ebp + 4], 0x61762061
mov dword [ebp + 8], 0x2064696c
mov dword [ebp + 0xc], 0x50766157
mov dword [ebp + 0x10], 0x206b6361
mov dword [ebp + 0x14], 0x656c6966
mov word [ebp + 0x18], ax
mov dword [esp], ebx
call fcn.7002e520
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, str.RIFF
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
jne 0x70037306
lea esi, [esp + 0x28]
mov edi, str.WAVE
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
jne 0x70037306
test byte [ebx + 0x9c], 4
jne 0x70037492
lea eax, [esp + 0x18]
mov dword [esp + 0x84], ebp
mov ebp, eax
lea esi, [esi]
mov eax, dword [ebx + 0x70]
mov dword [esp + 8], 8
mov dword [esp + 4], ebp
mov edx, dword [ebx + 0x74]
mov dword [esp], edx
call dword [eax]
cmp eax, 8
jne 0x700374f6
test byte [ebx + 0x9c], 4
jne 0x70037510
mov dword [esp + 4], 0x70794ba6
mov edi, str.fmt
mov esi, ebp
mov dword [esp], ebp
call fcn.7002f4f0
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
jne 0x700374c5
cmp dword [esp + 0x1c], 0xf
jbe 0x700374f6
lea ecx, [esp + 0x2c]
mov eax, dword [ebx + 0x70]
mov dword [esp + 8], 0x10
mov dword [esp + 4], ecx
mov edx, dword [ebx + 0x74]
mov dword [esp], edx
call dword [eax]
cmp eax, 0x10
jne 0x700374f6
test byte [ebx + 0x9c], 4
jne 0x70037570
lea eax, [esp + 0x2c]
mov dword [esp + 4], str.SSLLSS
mov dword [esp], eax
call fcn.7002f4f0
mov esi, dword [esp + 0x1c]
cmp esi, 0x10
jbe 0x70037390
sub esi, 0xf
and esi, 0xfffffffe
cmp esi, 0x100000
ja 0x700374f6
test byte [ebx + 0x9c], 4
je 0x70037543
mov eax, dword [ebx + 0x60]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x5c]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edx, dword [ebx + 0x70]
mov dword [ebx + 0x5c], eax
mov dword [esp + 8], esi
add eax, dword [ebx + 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x74]
mov dword [esp], eax
call dword [edx]
add dword [ebx + 0x60], esi
jmp 0x70037390
mov dword [ebx + 0x60], 0xc
mov dword [esp], 0xc
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0x20]
mov dword [ebx + 0x5c], eax
mov dword [eax], edx
mov edx, dword [esp + 0x24]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + 8], edx
lea eax, [esp + 0x18]
jmp 0x70037381
mov edi, str.data
mov esi, ebp
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
je 0x700375b3
mov eax, dword [esp + 0x1c]
add eax, 1
and eax, 0xfffffffe
mov esi, eax
je 0x70037390
cmp eax, 0x100000
jbe 0x70037450
mov ebp, dword [esp + 0x84]
test ebp, ebp
jne 0x7003730a
jmp 0x7003733d
mov eax, dword [ebx + 0x60]
add eax, 8
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x5c]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edx, dword [ebx + 0x60]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov dword [ebx + 0x5c], eax
mov dword [eax + edx], esi
mov dword [eax + edx + 4], edi
add dword [ebx + 0x60], 8
jmp 0x700373bd
mov dword [esp], esi
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [ebx + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov edx, dword [ebx + 0x74]
mov dword [esp], edx
call dword [eax]
mov dword [esp], edi
call sub.msvcrt.dll_free
jmp 0x70037390
mov eax, dword [ebx + 0x60]
add eax, 0x10
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x5c]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edx, dword [ebx + 0x60]
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 0x5c], eax
mov dword [eax + edx], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + edx + 4], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + edx + 8], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + edx + 0xc], ecx
add dword [ebx + 0x60], 0x10
jmp 0x7003741d
cmp word [esp + 0x2c], 1
mov ebp, dword [esp + 0x84]
jne 0x70037306
movzx ecx, word [esp + 0x2e]
lea eax, [ecx - 1]
cmp ax, 1
ja 0x70037306
cmp dword [esp + 0x30], 0
je 0x70037306
movzx esi, word [esp + 0x3a]
lea eax, [esi - 0x10]
cmp ax, 8
ja 0x70037306
movzx eax, word [esp + 0x38]
xor edx, edx
div cx
cmp ax, 3
ja 0x70037306
test dx, dx
jne 0x70037306
movzx edx, ax
movzx eax, si
add eax, 7
sar eax, 3
cmp edx, eax
jl 0x70037306
mov eax, dword [esp + 0x1c]
xor edx, edx
div ecx
xor ecx, ecx
cmp si, 0x10
setne cl
add ecx, 2
xor edx, edx
lea esi, [esp + 0x3c]
div ecx
mov dword [ebx + 0x8c], eax
mov eax, dword [ebx + 0x70]
mov dword [esp + 8], 0xa
mov dword [esp + 4], esi
mov edx, dword [ebx + 0x74]
mov dword [esp], edx
call dword [eax]
cmp eax, 0xa
je 0x7003767f
test ebp, ebp
je 0x7003733d
mov esi, str.not_a_valid_WavPack_file_
mov ecx, 0x1a
mov edi, ebp
rep movsb byte es:[edi], byte [esi]
jmp 0x7003733d
cmp byte [esp + 0x44], 2
je 0x70037839
cmp byte [esp + 0x44], 3
je 0x70037810
mov dword [esp + 4], str.4LSSSSLLL4L
mov dword [esp], esi
call fcn.7002f4f0
mov dword [esp + 8], 4
mov dword [esp + 4], str.wvpk
mov dword [esp], esi
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x70037664
movzx edx, word [esp + 0x44]
lea eax, [edx - 1]
cmp ax, 2
ja 0x70037664
cmp dx, 3
je 0x700377a2
and word [esp + 0x48], 0xff7f
cmp dx, 2
jg 0x7003771c
mov eax, dword [ebx + 0x8c]
mov dword [esp + 0x4c], eax
xor eax, eax
cmp word [esp + 0x2e], 1
sete al
mov word [esp + 0x48], ax
mov eax, 0x10
sub ax, word [esp + 0x3a]
sub dx, 1
mov word [esp + 0x4a], ax
jne 0x7003771c
mov word [esp + 0x46], 0
mov eax, dword [esp + 0x30]
movzx edx, word [esp + 0x2e]
mov dword [ebx + 0x2c], eax
mov eax, 5
sub eax, edx
mov dword [ebx + 0x30], eax
movzx eax, word [esp + 0x48]
mov dword [ebx + 0x1c], edx
test al, 1
je 0x70037742
or dword [ebx + 0x14], 4
test ax, ax
jns 0x7003774e
or dword [ebx + 0x14], 0x800
cmp word [esp + 0x46], 0
je 0x70037862
test ah, 4
je 0x70037804
or dword [ebx + 0x14], 8
and eax, 0x20
mov edi, dword [esp + 0xc]
mov ecx, 9
cmp ax, 1
sbb eax, eax
add eax, 3
mov dword [ebx + 0xc], eax
movzx eax, word [esp + 0x3a]
mov dword [ebx + 8], eax
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xc]
mov dword [edi + 0x60], 0x100000
mov dword [edi + 0x34], 0x100000
jmp 0x70037345
movzx eax, word [esp + 0x48]
test ax, ax
js 0x70037876
and ah, 0xef
mov word [esp + 0x48], ax
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x700376d9
cmp word [esp + 0x46], 0
je 0x700376d9
test byte [esp + 0x49], 4
je 0x700376d9
mov edx, dword [ebx + 0x70]
mov dword [esp], eax
call dword [edx + 0x14]
movzx edx, word [esp + 0x44]
or word [esp + 0x48], 0x80
mov dword [ebx + 0x98], 1
mov dword [ebx + 0x80], eax
jmp 0x700376e0
or dword [ebx + 0x14], 0x1000000
jmp 0x70037767
lea edx, [esp + 0x46]
mov eax, dword [ebx + 0x70]
mov dword [esp + 8], 0x1a
mov dword [esp + 4], edx
mov edx, dword [ebx + 0x74]
mov dword [esp], edx
call dword [eax]
cmp eax, 0x1a
jne 0x70037664
jmp 0x70037695
lea edx, [esp + 0x46]
mov eax, dword [ebx + 0x70]
mov dword [esp + 8], 2
mov dword [esp + 4], edx
mov edx, dword [ebx + 0x74]
mov dword [esp], edx
call dword [eax]
cmp eax, 2
jne 0x70037664
jmp 0x7003768a
test al, 0x10
jne 0x70037767
or dword [ebx + 0x14], 0x200
jmp 0x70037767
test ax, 0x288
jne 0x70037664
cmp word [esp + 0x46], 0
je 0x7003789e
test ah, 4
je 0x70037895
test al, 0x12
jne 0x70037664
test ah, 0x10
jne 0x70037664
test ah, 8
je 0x700377b8
and ax, 0x77ff
mov word [esp + 0x48], ax
jmp 0x700377b8