Function at 0x1002d120
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10087607
mov eax, dword fs:[0]
push eax
sub esp, 0x2c8
mov eax, dword [0x10163034]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x4c], ecx
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x84], eax
mov eax, dword [esi + 0x8c]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x78], 0xffffffff
test ecx, ecx
je 0x1002d193
cmp dword [ecx], 0
jne 0x1002d1bf
cmp dword [esi + 8], 2
jne 0x1002d1bf
cmp dword [0x10162a28], 2
jl 0x1002d1b5
push str.AL_lib:__WW__Missing_attributes_for_loopback_device_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 8
mov eax, 0xa004
jmp 0x1002eb1d
test ecx, ecx
je 0x1002d818
mov edx, dword [ecx]
test edx, edx
je 0x1002d818
mov ecx, dword [esi + 0x84]
xor eax, eax
mov dword [ebp - 0x54], eax
xor edi, edi
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x5c], eax
mov eax, dword [esi + 0x88]
mov dword [ebp - 0x40], edi
mov edi, dword [ebp - 0x4c]
mov esi, edi
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x64], ecx
mov ecx, dword [0x10162a28]
mov dword [ebp - 0x48], eax
mov eax, edx
cmp eax, 0x1990
jg 0x1002d2fd
je 0x1002d2e6
sub eax, 0x1007
je 0x1002d2b9
sub eax, 9
je 0x1002d27c
sub eax, 1
jne case.0x1002d31c.6547
mov esi, dword [edi + 4]
cmp ecx, 3
jl 0x1002d266
push esi
push str.ALC_STEREO_SOURCES
push str.AL_lib:__II___s___d_n
push dword [0x10164d18]
call fcn.100012cb
mov ecx, dword [0x10162a28]
add esp, 0x10
xor eax, eax
cmp esi, 0x7fffffff
cmovbe eax, esi
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x58], eax
jmp 0x1002d47a
mov esi, dword [edi + 4]
cmp ecx, 3
jl 0x1002d2a3
push esi
push str.ALC_MONO_SOURCES
push str.AL_lib:__II___s___d_n
push dword [0x10164d18]
call fcn.100012cb
mov ecx, dword [0x10162a28]
add esp, 0x10
xor eax, eax
cmp esi, 0x7fffffff
cmovbe eax, esi
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x64], eax
jmp 0x1002d47a
mov eax, dword [edi + 4]
mov dword [ebp - 0x40], eax
cmp ecx, 3
jl 0x1002d47d
push eax
push str.ALC_FREQUENCY
push str.AL_lib:__II___s___d_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0x10
jmp 0x1002d474
mov eax, dword [edi + 4]
mov dword [ebp - 0x7c], eax
cmp ecx, 3
jl 0x1002d47a
push eax
push str.ALC_FORMAT_CHANNELS_SOFT
jmp 0x1002d2ce
cmp eax, 0x20003
jg case.0x1002d31c.6547
je 0x1002d408
sub eax, 0x1991
cmp eax, 9
ja case.0x1002d31c.6547
jmp dword [eax*4 + 0x1002ec58]
mov eax, dword [edi + 4]
mov dword [ebp - 0x50], eax
cmp ecx, 3
jl 0x1002d47a
push eax
push str.ALC_FORMAT_TYPE_SOFT
jmp 0x1002d2ce
mov eax, dword [edi + 4]
mov dword [ebp - 0x54], eax
cmp ecx, 3
jl 0x1002d47a
push eax
push str.ALC_AMBISONIC_LAYOUT_SOFT
jmp 0x1002d2ce
mov eax, dword [edi + 4]
mov dword [ebp - 0x80], eax
cmp ecx, 3
jl 0x1002d47a
push eax
push str.ALC_AMBISONIC_SCALING_SOFT
jmp 0x1002d2ce
mov eax, dword [edi + 4]
mov dword [ebp - 0x5c], eax
cmp ecx, 3
jl 0x1002d47a
push eax
push str.ALC_AMBISONIC_ORDER_SOFT
jmp 0x1002d2ce
cmp ecx, 3
jl 0x1002d3ae
push dword [edi + 4]
push str.ALC_HRTF_SOFT
push str.AL_lib:__II___s___d_n
push dword [0x10164d18]
call fcn.100012cb
mov ecx, dword [0x10162a28]
add esp, 0x10
mov eax, dword [edi + 4]
test eax, eax
jne 0x1002d3c1
mov dword [ebp - 0x70], 2
jmp 0x1002d47a
xor edx, edx
cmp eax, 1
sete dl
mov dword [ebp - 0x70], edx
jmp 0x1002d47a
mov eax, dword [edi + 4]
mov dword [ebp - 0x78], eax
cmp ecx, 3
jl 0x1002d47a
push eax
push str.ALC_HRTF_ID_SOFT
jmp 0x1002d2ce
mov eax, dword [edi + 4]
mov dword [ebp - 0x84], eax
cmp ecx, 3
jl 0x1002d47a
push eax
push str.ALC_OUTPUT_LIMITER_SOFT
jmp 0x1002d2ce
mov esi, dword [edi + 4]
cmp ecx, 3
jl 0x1002d42f
push esi
push str.ALC_MAX_AUXILIARY_SENDS
push str.AL_lib:__II___s___d_n
push dword [0x10164d18]
call fcn.100012cb
mov ecx, dword [0x10162a28]
add esp, 0x10
cmp esi, 0x7fffffff
jbe 0x1002d443
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], 0
jmp 0x1002d47a
cmp esi, 0x10
mov eax, 0x10
cmova esi, eax
mov dword [ebp - 0x48], esi
mov esi, dword [ebp - 0x4c]
jmp 0x1002d47a
cmp ecx, 3
jl 0x1002d47a
mov eax, dword [edi + 4]
push eax
push eax
push edx
push str.AL_lib:__II__0x_04X___d__0x_x__n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0x14
mov ecx, dword [0x10162a28]
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x88]
add edx, 2
mov dword [ebp - 0x88], edx
lea edi, [esi + edx*4]
mov edx, dword [edi]
test edx, edx
jne 0x1002d213
mov esi, dword [ebp - 0x60]
mov edx, dword [esi + 8]
mov dword [ebp - 0x6c], edx
cmp edx, 2
jne 0x1002d571
mov edx, dword [ebp - 0x7c]
test edx, edx
je 0x1002d55e
mov edi, dword [ebp - 0x50]
test edi, edi
je 0x1002d55e
test eax, eax
je 0x1002d55e
push edx
call fcn.1002c7d0
add esp, 4
test al, al
je 0x1002d1b5
push edi
call fcn.1002c820
add esp, 4
test al, al
je 0x1002d1b5
mov edi, dword [ebp - 0x40]
cmp edi, 0x1f40
jb 0x1002d1b5
cmp edx, 0x1508
jne 0x1002d574
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x1002d54b
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x1002d54b
cmp dword [ebp - 0x5c], 0
je 0x1002d54b
push eax
call fcn.1002c840
add esp, 4
test al, al
je 0x1002d1b5
push edx
call fcn.1002c850
add esp, 4
test al, al
je 0x1002d1b5
mov eax, dword [ebp - 0x5c]
dec eax
cmp eax, 2
jbe 0x1002d574
mov eax, 0xa004
jmp 0x1002eb1d
cmp ecx, 2
jl 0x1002d1b5
push str.AL_lib:__WW__Missing_ambisonic_info_for_loopback_device_n
jmp 0x1002d1a7
cmp ecx, 2
jl 0x1002d1b5
push str.AL_lib:__WW__Missing_format_for_loopback_device_n
jmp 0x1002d1a7
mov edi, dword [ebp - 0x40]
test byte [esi + 0x4c], 0x10
je 0x1002d585
mov ecx, dword [esi + 0x6984]
mov eax, dword [ecx]
call dword [eax + 0xc]
and byte [esi + 0x4c], 0xef
push esi
call fcn.1002d0b0
add esp, 4
mov dword [ebp - 0x4c], 0
cmp dword [ebp - 0x6c], 2
je 0x1002d6eb
cmp dword [esi + 0x48], 0x10
lea edi, [esi + 0x34]
mov dword [ebp - 0x4c], edi
jb 0x1002d5b4
mov edi, dword [edi]
mov dword [ebp - 0x4c], edi
push str.frequency
push 0
lea eax, [ebp - 0x1c0]
mov dword [esi + 0x14], 0xa56
push edi
push eax
mov dword [esi + 0x10], 0x372
mov dword [esi + 0xc], 0xac44
call fcn.10002315
add esp, 0x10
cmp byte [eax], 0
je 0x1002d5ed
mov eax, dword [eax + 4]
mov dword [ebp - 0x40], eax
jmp 0x1002d5f0
mov eax, dword [ebp - 0x40]
cmp eax, 1
jae 0x1002d5fb
and byte [esi + 0x4c], 0xfe
jmp 0x1002d640
mov esi, dword [esi + 0xc]
mov edi, 0x1f40
cmp eax, edi
mov ecx, esi
cmova edi, eax
mov eax, dword [ebp - 0x60]
shr ecx, 1
xor edx, edx
mov dword [ebp - 0x40], edi
mov eax, dword [eax + 0x10]
imul eax, edi
add eax, ecx
div esi
mov edx, dword [ebp - 0x60]
mov dword [edx + 0x10], eax
mov eax, dword [edx + 0x14]
xor edx, edx
imul eax, edi
add eax, ecx
div esi
mov esi, dword [ebp - 0x60]
mov dword [esi + 0xc], edi
mov edi, dword [ebp - 0x4c]
mov dword [esi + 0x14], eax
or byte [esi + 0x4c], 1
push str.period_size
push 0
lea eax, [ebp - 0x1c8]
push edi
push eax
call fcn.10002315
add esp, 0x10
lea ecx, [ebp - 0xec]
push eax
call fcn.10001848
cmp byte [ebp - 0xec], 0
je 0x1002d689
mov ecx, dword [ebp - 0xe8]
mov eax, 0x40
cmp ecx, eax
cmovb ecx, eax
mov eax, 0x2000
cmp ecx, eax
cmovb eax, ecx
mov dword [esi + 0x10], eax
push str.periods
push 0
lea eax, [ebp - 0x1d0]
push edi
push eax
call fcn.10002315
add esp, 0x10
lea ecx, [ebp - 0xf4]
push eax
call fcn.10001848
cmp byte [ebp - 0xf4], 0
je 0x1002d6da
mov eax, dword [ebp - 0xf0]
mov ecx, 2
cmp eax, ecx
cmovb eax, ecx
mov ecx, 0x10
cmp eax, ecx
cmovb ecx, eax
mov eax, dword [esi + 0x10]
imul eax, ecx
mov dword [esi + 0x14], eax
jmp 0x1002d713
mov ecx, dword [esi + 0x10]
add ecx, ecx
cmp dword [esi + 0x14], ecx
cmova ecx, dword [esi + 0x14]
mov dword [esi + 0x14], ecx
jmp 0x1002d713
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x50]
mov dword [esi + 0xc], edi
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ecx
cmp eax, 0x1508
jne 0x1002d713
mov eax, dword [ebp - 0x5c]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x54]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x80]
mov dword [esi + 0x2c], eax
push str.sources
mov edi, 0x7fffffff
lea eax, [ebp - 0x1d8]
sub edi, dword [ebp - 0x58]
cmp dword [ebp - 0x64], edi
push 0
push dword [ebp - 0x4c]
cmovbe edi, dword [ebp - 0x64]
add edi, dword [ebp - 0x58]
push eax
call fcn.10002315
xor dl, dl
mov dword [ebp - 0xcc], 0
add esp, 0x10
mov byte [ebp - 0xd0], dl
cmp byte [eax], dl
je 0x1002d772
mov eax, dword [eax + 4]
mov edx, 0x100
test eax, eax
mov dword [ebp - 0xcc], eax
mov ecx, eax
mov byte [ebp - 0xd0], 1
cmove ecx, edx
jmp 0x1002d790
xor eax, eax
xor ecx, ecx
test dl, dl
je 0x1002d786
test eax, eax
mov edx, 0x100
cmove ecx, edx
jmp 0x1002d790
mov ecx, 0x100
cmp edi, ecx
cmova ecx, edi
mov edx, dword [ebp - 0x58]
mov eax, ecx
push str.sends
cmp edx, ecx
mov dword [esi + 0x7c], eax
push 0
push dword [ebp - 0x4c]
cmova edx, ecx
lea eax, [ebp - 0x1a0]
sub ecx, edx
mov dword [esi + 0x88], edx
push eax
mov dword [esi + 0x84], ecx
call fcn.10001122
xor dl, dl
mov dword [ebp - 0xd4], 0
add esp, 0x10
mov byte [ebp - 0xd8], dl
cmp byte [eax], dl
je 0x1002d7ee
mov ecx, dword [eax + 4]
mov eax, ecx
mov dword [ebp - 0xd4], ecx
mov byte [ebp - 0xd8], 1
jmp 0x1002d7f6
xor ecx, ecx
xor eax, eax
test dl, dl
je 0x1002d812
xor edx, edx
test ecx, ecx
mov ecx, 0x10
cmovs eax, edx
cmp eax, 0x10
cmovl ecx, eax
mov eax, dword [ebp - 0x48]
cmp eax, ecx
cmova eax, ecx
jmp 0x1002d815
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x48], eax
test byte [esi + 0x4c], 0x10
jne 0x1002eb6e
mov dword [esi + 0x148], 0
mov eax, dword [esi + 0x6860]
mov dword [esi + 0x6860], 0
test eax, eax
je 0x1002d849
push eax
call fcn.100010c3
add esp, 4
mov eax, dword [esi + 0x6864]
mov dword [esi + 0x6864], 0
test eax, eax
je 0x1002d866
push eax
call fcn.100010c3
add esp, 4
mov eax, dword [esi + 0x6868]
mov dword [esi + 0x6868], 0
test eax, eax
je 0x1002d883
push eax
call fcn.100010c3
add esp, 4
lea ecx, [esi + 0x6870]
mov dword [esi + 0x686c], 0
mov eax, dword [ecx]
mov dword [ebp - 0x74], ecx
mov dword [ecx], 0
test eax, eax
je 0x1002d8ab
push eax
call fcn.100010c3
add esp, 4
mov edi, dword [esi + 0x6874]
mov dword [esi + 0x6874], 0
test edi, edi
je 0x1002d8cf
mov ecx, edi
call fcn.10001f19
push edi
call fcn.100010c3
add esp, 4
lea eax, [esi + 0x6878]
lea ecx, [eax + 0xc0]
cmp eax, ecx
je 0x1002d8fb
nop
mov dword [eax], 0x3f800000
mov dword [eax + 4], 0
mov dword [eax + 8], 0
add eax, 0xc
cmp eax, ecx
jne 0x1002d8e0
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0
cmp eax, ecx
je 0x1002d99a
mov edx, dword [ecx]
mov dword [ecx], 0
mov eax, dword [ecx + 4]
mov dword [ecx + 4], 0
mov dword [ebp - 0xac], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x118], 0
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0xa8], eax
mov dword [ecx + 8], 0
test edx, edx
je 0x1002d99a
push edx
call fcn.100010c3
add esp, 4
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0
lea eax, [esi + 0x6720]
xor ecx, ecx
lea edi, [esi + 0x4320]
xorps xmm0, xmm0
cmp eax, edi
movlpd qword [ebp - 0xa4], xmm0
sbb edx, edx
and edx, 0xfffffb80
add edx, 0x480
cmp edi, eax
ja 0x1002d9f1
movss xmm0, dword [ebp - 0xa0]
lea eax, [edi + 4]
movsd xmm1, qword [ebp - 0xa4]
nop word [eax + eax]
inc ecx
movss dword [eax - 4], xmm1
movss dword [eax], xmm0
lea eax, [eax + 8]
cmp ecx, edx
jne 0x1002d9e0
lea edi, [esi + 0x672c]
mov ecx, 0x1e
mov dword [edi], 0
mov esi, edi
mov dword [edi + 4], 0
add edi, 8
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x60]
lea esi, [edi + 0x67c4]
mov dword [edi + 0x67ac], 0
lea edx, [edi + 0x67b4]
mov dword [edi + 0x67b0], 0
cmp esi, edx
sbb ecx, ecx
and ecx, 0xfffffffc
add ecx, 4
cmp edx, esi
ja 0x1002da4a
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x60]
movaps xmm0, xmmword [0x10098140]
mov dword [esi], 0
mov dword [esi + 4], 0
movups xmmword [edi + 0x67cc], xmm0
movups xmmword [edi + 0x67dc], xmm0
movups xmmword [edi + 0x67ec], xmm0
movups xmmword [edi + 0x67fc], xmm0
movups xmmword [edi + 0x680c], xmm0
movups xmmword [edi + 0x681c], xmm0
movups xmmword [edi + 0x682c], xmm0
movups xmmword [edi + 0x683c], xmm0
mov dword [edi + 0x684c], 0xffffffff
mov dword [edi + 0x6850], 0
mov dword [edi + 0x6854], 0
mov ecx, dword [edi + 0x6720]
mov dword [edi + 0x6724], ecx
cmp dword [edi + 0x6728], ecx
je 0x1002db0c
mov edx, ecx
cmp edx, ecx
jne 0x1002dafb
test edx, edx
je 0x1002db0c
push edx
call fcn.100010c3
mov dword [edi + 0x6720], 0
add esp, 4
mov dword [edi + 0x6724], 0
mov dword [edi + 0x6728], 0
jmp 0x1002db0c
sub ecx, edx
sar ecx, 0xc
push ecx
lea ecx, [edi + 0x6720]
call fcn.1000232e
push edi
call fcn.1002d0b0
xorps xmm0, xmm0
mov dword [edi + 0x6944], 0
movlpd qword [ebp - 0xfc], xmm0
add esp, 4
cmp dword [edi + 8], 2
mov eax, dword [ebp - 0xfc]
mov dword [edi + 0x158], eax
mov eax, dword [ebp - 0xf8]
mov dword [edi + 0x15c], eax
mov dword [edi + 0x6948], 0x56ce
mov dword [edi + 0x74], 0
je 0x1002dc76
cmp dword [edi + 0x48], 0x10
lea eax, [edi + 0x34]
jb 0x1002db68
mov eax, dword [eax]
push str.hrtf
push 0
push eax
lea eax, [ebp - 0x1f4]
push eax
call fcn.10001857
add esp, 0x10
lea ecx, [ebp - 0x17c]
push eax
call fcn.100014ab
cmp byte [ebp - 0x1f4], 0
mov dword [ebp - 4], 0
je 0x1002dbaa
lea eax, [ebp - 0x1f0]
push eax
call fcn.1000106e
add esp, 4
cmp byte [ebp - 0x17c], 0
je 0x1002dc39
cmp dword [ebp - 0x164], 0x10
lea eax, [ebp - 0x178]
push str.true
cmovae eax, dword [ebp - 0x178]
push eax
mov dword [ebp - 0x58], eax
call fcn.10001866
add esp, 8
test eax, eax
jne 0x1002dbe9
mov dword [ebp - 0x68], 1
jmp 0x1002dc39
push str.false
push dword [ebp - 0x58]
call fcn.10001866
add esp, 8
test eax, eax
jne 0x1002dc06
mov dword [ebp - 0x68], 2
jmp 0x1002dc39
push str.auto
push dword [ebp - 0x58]
call fcn.10001866
add esp, 8
test eax, eax
je 0x1002dc39
cmp dword [0x10162a28], 1
jl 0x1002dc39
push dword [ebp - 0x58]
push str.AL_lib:__EE__Unexpected_hrtf_value:__s_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0xc
cmp byte [ebp - 0x17c], 0
mov dword [ebp - 4], 0xffffffff
je 0x1002dc58
lea eax, [ebp - 0x178]
push eax
call fcn.1000106e
add esp, 4
mov eax, dword [ebp - 0x68]
cmp eax, 1
je 0x1002dc6b
cmp eax, 2
je 0x1002dc76
cmp dword [ebp - 0x70], 1
jne 0x1002dc76
mov dword [edi + 0x18], 0x1501
or byte [edi + 0x4c], 2
cmp dword [0x10162a28], 3
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x64], ecx
jl 0x1002dcfb
push dword [edi + 0x14]
mov al, byte [edi + 0x4c]
mov esi, 0x10096cc8
push dword [edi + 0x10]
mov byte [ebp - 0x41], al
and al, 1
push edx
mov edx, 0x1008efe6
mov eax, esi
cmove eax, edx
push eax
push ecx
call fcn.10001640
add esp, 4
mov ecx, 0x1008efe6
test byte [ebp - 0x41], 4
push eax
mov eax, esi
cmove eax, ecx
push eax
push dword [ebp - 0x58]
call fcn.100012da
add esp, 4
test byte [ebp - 0x41], 2
push eax
mov eax, 0x1008efe6
cmove esi, eax
push esi
push str.AL_lib:__II__Pre_reset:__s_s___s_s___s_uhz___u____u_buffer_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0x28
lea esi, [edi + 0x67c4]
mov ecx, dword [edi + 0x6984]
mov dword [ebp - 4], 1
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test al, al
je 0x1002eb18
mov eax, dword [edi + 0x18]
mov dword [ebp - 4], 0xffffffff
cmp eax, dword [ebp - 0x58]
je 0x1002dd62
test byte [edi + 0x4c], 2
je 0x1002dd62
cmp dword [0x10162a28], 1
jl 0x1002dd5e
push eax
call fcn.100012da
add esp, 4
push eax
push dword [ebp - 0x58]
call fcn.100012da
add esp, 4
push eax
push str.AL_lib:__EE__Failed_to_set__s__got__s_instead_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0x10
and byte [edi + 0x4c], 0xfd
mov eax, dword [edi + 0x1c]
cmp eax, dword [ebp - 0x64]
je 0x1002dda6
test byte [edi + 0x4c], 4
je 0x1002dda6
cmp dword [0x10162a28], 1
jl 0x1002dda2
push eax
call fcn.10001640
add esp, 4
push eax
push dword [ebp - 0x64]
call fcn.10001640
add esp, 4
push eax
push str.AL_lib:__EE__Failed_to_set__s__got__s_instead_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0x10
and byte [edi + 0x4c], 0xfb
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp - 0x6c]
cmp ecx, edx
je 0x1002ddd9
mov al, byte [edi + 0x4c]
and al, 1
je 0x1002ddd9
cmp dword [0x10162a28], 2
jl 0x1002ddd5
push ecx
push edx
push str.AL_lib:__WW__Failed_to_set__uhz__got__uhz_instead_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0x10
and byte [edi + 0x4c], 0xfe
cmp dword [0x10162a28], 3
jl 0x1002de16
push dword [edi + 0x14]
push dword [edi + 0x10]
push dword [edi + 0xc]
push dword [edi + 0x1c]
call fcn.10001640
add esp, 4
push eax
push dword [edi + 0x18]
call fcn.100012da
add esp, 4
push eax
push str.AL_lib:__II__Post_reset:__s___s___uhz___u____u_buffer_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0x1c
mov eax, dword [edi + 0x18]
cmp eax, 0x70000000
jg case.0x1002de2c.5378
je 0x1002de8d
sub eax, 0x1500
cmp eax, 6
ja case.0x1002de2c.5378
jmp dword [eax*4 + 0x1002ec80]
mov dword [esi], 0x10093cd0
mov dword [esi + 4], 0x10093d5c
jmp case.0x1002de2c.5378
mov dword [esi], 0x10093d60
mov dword [esi + 4], 0x10093dd8
jmp case.0x1002de2c.5378
mov dword [esi], 0x10093dd8
mov dword [esi + 4], 0x10093e28
jmp case.0x1002de2c.5378
mov dword [esi], 0x10093e28
mov dword [esi + 4], 0x10093e64
jmp case.0x1002de2c.5378
mov dword [esi], 0x10093ea0
mov dword [esi + 4], 0x10093ec8
jmp case.0x1002de2c.5378
mov dword [esi], 0x10093ec8
mov dword [esi + 4], 0x10093edc
jmp case.0x1002de2c.5378
mov dword [esi], 0x10093e64
mov dword [esi + 4], 0x10093ea0
push dword [ebp - 0x68]
push dword [ebp - 0x70]
push dword [ebp - 0x78]
push edi
call fcn.10001ae6
mov eax, dword [ebp - 0x48]
add esp, 0x10
mov dword [edi + 0x8c], eax
cmp dword [0x10162a28], 3
jl 0x1002dee7
push eax
push dword [edi + 0x80]
push dword [edi + 0x88]
push dword [edi + 0x84]
push dword [edi + 0x7c]
push str.AL_lib:__II__Max_sources:__d___d___d___effect_slots:__d__sends:__d_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0x1c
mov eax, dword [edi + 0x18]
cmp eax, 0x1504
jl 0x1002e002
cmp eax, 0x1506
jle 0x1002df07
cmp eax, 0x70000000
jne 0x1002e002
cmp dword [edi + 0x48], 0x10
lea eax, [edi + 0x34]
jb 0x1002df12
mov eax, dword [eax]
push 0
push str.front_stablizer
push 0
push eax
call fcn.100018c0
add esp, 0x10
test eax, eax
je 0x1002e002
lea eax, [ebp - 0x58]
push eax
call fcn.100014b0
mov eax, dword [edi + 0xc]
movss xmm1, dword [0x100980ec]
mov esi, dword [ebp - 0x58]
mov dword [ebp - 4], 3
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
lea ecx, [esi + 0x4000]
addsd xmm0, qword [eax*8 + 0x10091da0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [esp], xmm1
call fcn.10001e3d
movups xmm0, xmmword [esi + 0x4000]
mov edx, dword [ebp - 0x74]
lea eax, [ebp - 0x58]
movups xmmword [esi + 0x4010], xmm0
cmp edx, eax
je 0x1002dfa6
mov ecx, dword [edx]
mov eax, esi
xor esi, esi
mov dword [edx], eax
mov dword [ebp - 0x58], esi
test ecx, ecx
je 0x1002dfa6
push ecx
call fcn.100010c3
add esp, 4
mov edi, dword [ebp - 0x60]
push 0
mov dword [ebp - 0x140], 0x9aca0000
mov dword [ebp - 0x13c], 0x3b
push dword [edi + 0xc]
mov dword [ebp - 0x148], 0x9aca0000
push 0x3b
push 0x9aca0000
mov dword [ebp - 0x144], 0x3b
call fcn.100015dc
add dword [edi + 0x158], eax
mov dword [ebp - 4], 0xffffffff
adc dword [edi + 0x15c], edx
test esi, esi
je 0x1002e002
push esi
call fcn.100010c3
add esp, 4
cmp dword [0x10162a28], 3
jl 0x1002e033
cmp dword [edi + 0x6870], 0
mov ecx, str.disabled
mov eax, str.enabled
cmove eax, ecx
push eax
push str.AL_lib:__II__Front_stablizer__s_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0xc
cmp dword [edi + 0x48], 0x10
lea esi, [edi + 0x34]
mov eax, esi
jb 0x1002e040
mov eax, dword [esi]
push 1
push str.dither
push 0
push eax
call fcn.100018c0
add esp, 0x10
test eax, eax
je case.default.0x1002e09f
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov dword [ebp - 0x120], 0
jb 0x1002e06e
mov eax, dword [esi]
push str.dither_depth
push 0
push eax
lea eax, [ebp - 0x1a8]
push eax
call fcn.10001122
add esp, 0x10
mov cl, byte [eax]
test cl, cl
je 0x1002e092
mov ecx, dword [eax + 4]
test ecx, ecx
jg 0x1002e0b2
mov eax, dword [edi + 0x1c]
add eax, 0xffffec00
cmp eax, 3
ja case.default.0x1002e09f
jmp dword [eax*4 + 0x1002ec9c]
mov ecx, 8
jmp 0x1002e0b2
mov ecx, 0x10
cmp ecx, 2
movsd xmm0, qword [0x100980b8]
mov eax, 2
cmovl ecx, eax
mov eax, 0x18
cmp ecx, eax
cmovl eax, ecx
dec eax
movd xmm1, eax
cvtdq2ps xmm1, xmm1
cvtps2pd xmm1, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
cvtsd2ss xmm0, xmm0
movss dword [edi + 0x6944], xmm0
movss xmm0, dword [edi + 0x6944]
comiss xmm0, dword [0x1008f40c]
ja 0x1002e11a
cmp dword [0x10162a28], 3
jl 0x1002e169
push str.AL_lib:__II__Dithering_disabled_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 8
jmp 0x1002e169
cmp dword [0x10162a28], 3
jl 0x1002e169
push ecx
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_log2f]
fstp dword [ebp - 0x6c]
movss xmm0, dword [ebp - 0x6c]
addss xmm0, dword [0x100980a8]
push ecx
cvttss2si eax, xmm0
movss xmm0, dword [edi + 0x6944]
cvtps2pd xmm0, xmm0
inc eax
movsd qword [esp], xmm0
push eax
push str.AL_lib:__II__Dithering_enabled___d_bit___g__n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0x14
mov eax, dword [ebp - 0x84]
mov dword [edi + 0x30], eax
cmp dword [esi + 0x14], 0x10
jb 0x1002e17a
mov esi, dword [esi]
push str.output_limiter
push 0
lea eax, [ebp - 0x4a]
push esi
push eax
call fcn.1000205e
xor ecx, ecx
add esp, 0x10
mov word [ebp - 0x80], cx
cmp byte [eax], cl
je 0x1002e1a9
mov al, byte [eax + 1]
test al, al
mov byte [ebp - 0x7f], al
mov byte [ebp - 0x80], 1
setne cl
jmp 0x1002e1bf
xor al, al
cmp byte [ebp - 0x80], cl
je 0x1002e1b9
xor ecx, ecx
test al, al
setne cl
jmp 0x1002e1bf
mov ecx, dword [ebp - 0x84]
cmp ecx, 2
jne 0x1002e1dc
mov eax, dword [edi + 0x1c]
cmp eax, 0x1400
jl 0x1002e205
cmp eax, 0x1405
jle 0x1002e205
cmp eax, 0x1406
jmp 0x1002e1de
test ecx, ecx
jne 0x1002e205
cmp dword [0x10162a28], 3
jl 0x1002e36b
push str.AL_lib:__II__Output_limiter_disabled_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 8
jmp 0x1002e343
mov eax, dword [edi + 0x1c]
movss xmm2, dword [0x1008f410]
add eax, 0xffffec00
movaps xmm0, xmm2
cmp eax, 3
ja case.default.0x1002e21d
jmp dword [eax*4 + 0x1002ecac]
movss xmm0, dword [0x100980ac]
jmp case.default.0x1002e21d
movss xmm0, dword [0x100980b0]
movss xmm1, dword [edi + 0x6944]
comiss xmm1, dword [0x1008f40c]
jbe 0x1002e24f
divss xmm2, xmm1
subss xmm0, xmm2
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_log10_precise
cvtsd2ss xmm0, xmm0
push ecx
lea eax, [ebp - 0x68]
mulss xmm0, dword [0x100980e4]
movss dword [esp], xmm0
push edi
push eax
movss dword [ebp - 0x74], xmm0
call fcn.1002baa0
add esp, 0xc
mov esi, dword [ebp - 0x68]
push 0
push 0x3b9aca00
mov dword [ebp - 4], 4
mov eax, dword [esi + 8]
cdq
push edx
push eax
call fcn.10001a23
push 0
push dword [edi + 0xc]
mov dword [ebp - 0x150], eax
push edx
push eax
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], edx
call fcn.100011c2
add dword [edi + 0x158], eax
lea eax, [ebp - 0x68]
adc dword [edi + 0x15c], edx
lea edx, [edi + 0x6874]
cmp edx, eax
je 0x1002e2f9
mov ecx, dword [edx]
mov eax, esi
xor esi, esi
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], esi
mov dword [edx], eax
test ecx, ecx
je 0x1002e2f9
call fcn.10001f19
push dword [ebp - 0x6c]
call fcn.100010c3
mov esi, dword [ebp - 0x68]
add esp, 4
cmp dword [0x10162a28], 3
jl 0x1002e328
movss xmm0, dword [ebp - 0x74]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.AL_lib:__II__Output_limiter_enabled___.4fdB_limit_n
push dword [0x10164d18]
call fcn.100012cb
mov esi, dword [ebp - 0x68]
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x1002e343
mov ecx, esi
call fcn.10001f19
push esi
call fcn.100010c3
add esp, 4
cmp dword [0x10162a28], 3
jl 0x1002e36b
push dword [edi + 0x15c]
push dword [edi + 0x158]
push str.AL_lib:__II__Fixed_device_latency:__lldns_n
push dword [0x10164d18]
call fcn.100012cb
add esp, 0x10
lea ecx, [ebp - 0xbc]
mov byte [ebp - 0x41], 0
call fcn.10001195
mov ecx, dword [edi + 0x6950]
mov dword [ebp - 4], 5
mov eax, dword [ecx]
lea edx, [ecx + 4]
inc eax
mov dword [ebp - 0x6c], edx
lea eax, [ecx + eax*4]
mov dword [ebp - 0xc0], eax
cmp edx, eax
je 0x1002eaf5
mov eax, dword [edx]
mov dword [ebp - 0x48], eax
mov esi, dword [eax + 0x150]
test esi, esi
je 0x1002e3ed
push edi
push esi
call fcn.10001f28
mov ecx, dword [esi + 0x7c]
add esp, 8
mov eax, dword [edi + 0x67ac]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x67b0]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx]
push edi
mov eax, dword [eax + 4]
call eax
test al, al
jne 0x1002e3e1
mov byte [ebp - 0x41], 1
jmp 0x1002e3ed
push dword [ebp - 0x48]
push esi
call fcn.100019e7
add esp, 8
mov esi, dword [ebp - 0x48]
lea eax, [esi + 0xa4]
push eax
mov dword [ebp - 0x104], eax
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
je 0x1002e412
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
add esp, 4
mov byte [ebp - 0x100], 1
lea eax, [esi + 0x54]
mov byte [ebp - 4], 6
push eax
mov dword [ebp - 0xc8], eax
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
je 0x1002e43c
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
add esp, 4
mov byte [ebp - 0xc4], 1
mov eax, dword [esi + 0x100]
mov byte [ebp - 4], 7
test eax, eax
je 0x1002e461
mov ecx, dword [eax]
lea edi, [eax + 4]
lea edi, [edi + ecx*4]
test ecx, ecx
je 0x1002e461
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x50], eax
cmp eax, ecx
je 0x1002e548
mov edi, dword [eax]
mov ecx, dword [eax + 4]
not edi
not ecx
mov eax, edi
or eax, ecx
mov dword [ebp - 0x54], ecx
je 0x1002e533
nop dword [eax + eax]
bsf edx, edi
mov dword [ebp - 0x84], 0x40
mov dword [ebp - 0x84], edx
jne 0x1002e4b9
bsf edx, ecx
mov dword [ebp - 0x84], edx
je 0x1002e4b9
add edx, 0x20
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x50]
xor ecx, ecx
imul esi, edx, 0x1bc
add esi, dword [eax + 8]
xor eax, eax
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
not eax
and edi, eax
not ecx
mov eax, dword [ebp - 0x60]
and dword [ebp - 0x54], ecx
push eax
push esi
call fcn.10001f28
mov edx, dword [ebp - 0x60]
add esp, 8
mov ecx, dword [esi + 0x7c]
mov eax, dword [edx + 0x67ac]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0x67b0]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 4]
call eax
test al, al
jne 0x1002e51a
mov byte [ebp - 0x41], 1
jmp 0x1002e526
push dword [ebp - 0x48]
push esi
call fcn.100019e7
add esp, 8
mov ecx, dword [ebp - 0x54]
mov eax, edi
or eax, ecx
jne 0x1002e490
mov eax, dword [ebp - 0x50]
add eax, 0x10
mov dword [ebp - 0x50], eax
cmp eax, dword [ebp - 0x74]
jne 0x1002e475
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0xc8]
test eax, eax
je 0x1002ec02
push eax
call sub.MSVCP140.dll__Mtx_unlock
add esp, 4
test eax, eax
je 0x1002e56c
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
add esp, 4
lea eax, [esi + 0x14]
mov byte [ebp - 0xc4], 0
push eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0xa4], eax
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
je 0x1002e595
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
add esp, 4
mov byte [ebp - 0xa0], 1
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
mov byte [ebp - 4], 8
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x8c], eax
cmp edi, eax
je 0x1002e757
mov esi, dword [edi]
mov ecx, dword [edi + 4]
not esi
not ecx
mov eax, esi
or eax, ecx
mov dword [ebp - 0x50], ecx
je 0x1002e742
nop dword [eax]
bsf edx, esi
mov dword [ebp - 0x54], 0x40
mov dword [ebp - 0x54], edx
jne 0x1002e5ed
bsf edx, ecx
mov dword [ebp - 0x54], edx
je 0x1002e5ed
add edx, 0x20
mov dword [ebp - 0x54], edx
imul eax, edx, 0xe0
xor ecx, ecx
add eax, dword [edi + 8]
mov dword [ebp - 0x64], eax
xor eax, eax
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
not eax
and esi, eax
not ecx
mov eax, dword [ebp - 0x60]
and dword [ebp - 0x50], ecx
mov dword [ebp - 0x90], esi
mov esi, dword [eax + 0x8c]
cmp dword [ebp - 0x94], esi
je 0x1002e722
mov edi, dword [ebp - 0x64]
add edi, 0xac
mov eax, dword [edi + 4]
mov ecx, eax
sub ecx, dword [edi]
mov dword [ebp - 0x78], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, esi
jbe 0x1002e6a1
mov ecx, dword [edi]
lea eax, [esi + esi*2]
mov dword [ebp - 0x128], ecx
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x12c], eax
cmp edx, eax
je 0x1002e6a1
mov ecx, dword [edx]
test ecx, ecx
je 0x1002e68b
add ecx, 0x84
or eax, 0xffffffff
lock xadd dword [ecx], eax
mov eax, dword [ebp - 0x78]
mov dword [edx], 0
add edx, 0x18
cmp edx, eax
jne 0x1002e675
mov eax, dword [ebp - 0x60]
mov esi, dword [eax + 0x8c]
movaps xmm0, xmmword [0x10098120]
lea eax, [ebp - 0x198]
push eax
push edi
push esi
mov ecx, edi
mov dword [ebp - 0x198], 0
movups xmmword [ebp - 0x194], xmm0
mov dword [ebp - 0x184], 0x437a0000
call fcn.10001f7d
mov ecx, dword [edi + 4]
cmp dword [edi + 8], ecx
je 0x1002e71f
mov eax, dword [edi]
cmp eax, ecx
jne 0x1002e704
test eax, eax
je 0x1002e71f
push eax
call fcn.100010c3
mov dword [edi], 0
add esp, 4
mov dword [edi + 4], 0
mov dword [edi + 8], 0
jmp 0x1002e71f
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
call fcn.10001c9e
mov edi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x64]
mov esi, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x50]
mov dword [eax + 0xd0], 0
mov eax, esi
or eax, ecx
jne 0x1002e5d0
add edi, 0x10
mov dword [ebp - 0x5c], edi
cmp edi, dword [ebp - 0x8c]
jne 0x1002e5b7
mov esi, dword [ebp - 0x48]
lea eax, [esi + 0xec]
xor ecx, ecx
xchg dword [eax], ecx
test ecx, ecx
je 0x1002e791
nop word [eax + eax]
mov esi, dword [ecx + 0x22c]
push ecx
call fcn.100010c3
add esp, 4
mov ecx, esi
test esi, esi
jne 0x1002e770
mov eax, dword [ebp - 0xa4]
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x74], eax
mov edi, dword [ebp - 0x60]
mov eax, dword [edi + 0x8c]
mov dword [ebp - 0x98], eax
cmp eax, dword [ebp - 0x94]
jae 0x1002ea25
mov ecx, dword [esi + 0xf8]
mov esi, dword [esi + 0xf4]
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x134], esi
cmp esi, ecx
je 0x1002ea25
lea edx, [eax + eax*2]
mov dword [ebp - 0x5c], 0x1794
shl edx, 2
lea ecx, [eax*2 + 0x17]
sub dword [ebp - 0x5c], edx
add ecx, eax
mov dword [ebp - 0x50], 0xc0
sub dword [ebp - 0x50], edx
lea edi, [edx + 0x28c]
mov dword [ebp - 0x70], 0xb744
sub dword [ebp - 0x70], edx
lea ecx, [esi + ecx*8]
add edi, esi
mov dword [ebp - 0x54], 0xffffffac
sub dword [ebp - 0x54], edx
mov dword [ebp - 0x7c], 0xc4
sub dword [ebp - 0x7c], edx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x90], edi
mov edx, dword [ebp - 0x54]
xorps xmm0, xmm0
add edx, edi
cmp dword [ebp - 0x88], edx
je 0x1002e84f
movups xmmword [ecx], xmm0
movq qword [ecx + 0x10], xmm0
add ecx, 0x18
cmp ecx, edx
jne 0x1002e840
mov edx, dword [ebp - 0x50]
lea ecx, [esi + 0x28c]
add edx, edi
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0x15c], ecx
xorps xmm0, xmm0
movq qword [ebp - 0xe4], xmm0
mov ecx, edi
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0x138], edx
cmp edi, edx
je 0x1002e8ae
movq xmm0, qword [ebp - 0xe4]
xor esi, esi
nop
movq qword [ecx], xmm0
mov dword [ecx + 8], esi
add ecx, 0xc
cmp ecx, edx
jne 0x1002e8a0
mov ecx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x7c]
add ecx, edi
add esi, edi
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x180], esi
cmp esi, ecx
je 0x1002e9e6
mov ecx, dword [ebp - 0x5c]
add eax, 0xfffffff0
add ecx, edi
imul eax, eax, 0xb8
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0xb4], eax
nop word [eax + eax]
push 0x80
lea eax, [ebp - 0x29c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0x64]
add esp, 0xc
movaps xmm0, xmmword [0x10091d80]
movups xmmword [ebp - 0x2d4], xmm0
mov dword [ebp - 0x2a0], 0
xorps xmm0, xmm0
mov dword [ebp - 0x2c4], 0
lea eax, [edx - 0xb80]
movq qword [ebp - 0x2a8], xmm0
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xb4]
movups xmmword [ebp - 0x2b8], xmm0
add eax, edx
mov dword [ebp - 0x2c0], 0
movaps xmm0, xmmword [0x10091d80]
mov dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 0x108], edx
movups xmmword [ebp - 0x2b8], xmm0
cmp eax, edx
je 0x1002e9c1
nop dword [eax + eax]
mov edi, eax
lea esi, [ebp - 0x2d4]
add eax, 0xb8
mov ecx, 0x2e
rep movsd dword es:[edi], dword [esi]
cmp eax, edx
jne 0x1002e9a0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x90]
mov eax, dword [ebp - 0x70]
add esi, 0x16d0
add edx, 0x16d0
mov dword [ebp - 0x78], esi
add eax, edi
mov dword [ebp - 0x64], edx
cmp esi, eax
jne 0x1002e8f0
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0x8c]
add edi, 0xb9d0
mov ecx, dword [ebp - 0x88]
add esi, 0xb9d0
add ecx, 0xb9d0
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x90], edi
cmp esi, dword [ebp - 0x9c]
jne 0x1002e830
mov edi, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x9c], edi
mov eax, dword [ecx + 0xf8]
mov esi, dword [ecx + 0xf4]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x88], esi
cmp esi, eax
je 0x1002ea6a
push esi
lea ecx, [ebp - 0x9c]
call fcn.1002afd0
add esi, 0xb9d0
cmp esi, dword [ebp - 0x98]
jne 0x1002ea50
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x1002ebd0
push eax
call sub.MSVCP140.dll__Mtx_unlock
add esp, 4
test eax, eax
je 0x1002ea8b
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
add esp, 4
mov esi, dword [ebp - 0x48]
mov byte [ebp - 0xa0], 0
lea eax, [esi + 0x9c]
lock bts dword [eax], 0
push esi
call fcn.10001e7e
lea eax, [esi + 0x198]
lock bts dword [eax], 0
push esi
call fcn.100015d7
push esi
call fcn.10001870
push dword [ebp - 0x104]
mov byte [ebp - 4], 0xb
call sub.MSVCP140.dll__Mtx_unlock
add esp, 0x10
test eax, eax
je 0x1002eadc
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
add esp, 4
mov edx, dword [ebp - 0x6c]
add edx, 4
mov byte [ebp - 4], 5
mov dword [ebp - 0x6c], edx
cmp edx, dword [ebp - 0xc0]
jne 0x1002e3a1
lea ecx, [ebp - 0xbc]
call fcn.100014fb
cmp byte [ebp - 0x41], 0
je 0x1002eb39
lea ecx, [ebp - 0xbc]
mov dword [ebp - 4], 0xffffffff
call fcn.100014fb
mov eax, 0xa001
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10001abe
mov esp, ebp
pop ebp
ret
test byte [edi + 0x4c], 8
jne 0x1002eb5c
mov ecx, dword [edi + 0x6984]
mov byte [ebp - 4], 0xc
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test al, al
je 0x1002ec34
or byte [edi + 0x4c], 0x10
lea ecx, [ebp - 0xbc]
mov dword [ebp - 4], 0xffffffff
call fcn.100014fb
xor eax, eax
jmp 0x1002eb1d
lea eax, [ebp - 0x1b0]
push 1
push eax
call fcn.100021c1
add esp, 8
lea ecx, [ebp - 0x208]
push dword [eax + 4]
push dword [eax]
call fcn.100014a1
push 0x1015362c
lea eax, [ebp - 0x208]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
lea eax, [ebp - 0x1b8]
push 1
push eax
call fcn.100021c1
add esp, 8
lea ecx, [ebp - 0x21c]
push dword [eax + 4]
push dword [eax]
call fcn.100014a1
push 0x1015362c
lea eax, [ebp - 0x21c]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push str.Backend_error
lea eax, [ebp - 0x3c]
push 0xa001
push eax
call fcn.10002261
add esp, 0xc
lea eax, [ebp - 0x3c]
push 0x10158dc0
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
and edx, ebx
adc byte [eax - 0x18], dl
xchg ecx, eax
cmp eax, 0xd3230005
add dl, byte [eax]
mov bl, dl
add dl, byte [eax]
push esi
aam 2
adc byte [esi - 0x2c], dl
add dl, byte [eax]
push esi
aam 2
adc cl, dl
rol dword [edx], cl
adc byte [edx], bh
rol dword [edx], cl
adc byte [ebx + edx*8 + 2], dl
adc byte [esi - 0x2d], ch
add dl, byte [eax]
jmp 0x1002ec51