Function at 0x100835f0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d6b95
mov eax, dword fs:[0]
push eax
sub esp, 0x1e4
mov eax, dword [0x103ca0ec]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x104], ebx
mov dword [ebp - 0xfc], ebx
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 4], 0
call dword [0x103cf724]
mov dword [ebp - 0xe4], edx
lea ecx, [ebp - 0xf4]
push 9
lea edx, [ebp + 8]
mov dword [ebp - 0xe8], eax
call fcn.100811d0
add esp, 4
mov byte [ebp - 4], 1
mov eax, 0x2aaaaaab
mov ecx, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xf4]
sub ecx, esi
imul ecx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, 2
jne 0x100836c5
mov edx, str.TS_INFO
mov ecx, esi
call fcn.1008e610
test al, al
je 0x100836c2
lea edx, [esi + 0x18]
mov ecx, ebx
call fcn.100817d0
lea ecx, [ebp - 0xf4]
call fcn.1008a000
mov ecx, dword [ebp + 0x1c]
cmp ecx, 0x10
jb 0x10083926
inc ecx
push ecx
jmp 0x1008391b
cmp edi, 2
jbe 0x100836ef
mov edx, str.KILLED
mov ecx, esi
call fcn.1008e610
test al, al
je 0x100836ef
lea ecx, [esi + 0x18]
lea edx, [ebp - 0xe8]
call fcn.10082450
push str.DONE
jmp 0x100838ff
cmp edi, 1
jb 0x10083733
mov edx, str.SPEAKERS
mov ecx, esi
call fcn.1008e610
test al, al
je 0x10083733
push dword [ebp - 0xe4]
lea eax, [ebp - 0xf4]
push dword [ebp - 0xe8]
sub esp, 0xc
mov ecx, esp
push eax
call fcn.1008a060
call fcn.10082e80
add esp, 0x14
push 0x103ba668
jmp 0x100838ff
cmp edi, 2
jne 0x10083777
mov edx, str.RELEASE_ALL_TANGENTS
mov ecx, esi
call fcn.1008e610
test al, al
je 0x10083777
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
push 0
cmovae eax, dword [ebp + 8]
push 0
push 0
push eax
push dword [0x103cee58]
call dword [0x103cf724]
push edx
push eax
call dword [0x103cf734]
mov esi, dword [ebp - 0xf4]
add esp, 0x1c
mov ecx, dword [ebp - 0xf0]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
mov dword [ebp - 0xfc], ecx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, 4
jne 0x100838ab
mov edx, str.VERSION
mov ecx, esi
call fcn.1008e610
test al, al
je 0x100838ab
push 0x103cf094
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [ebp - 0xf4]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x110]
add esi, 0x18
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x110]
add ecx, 0xe8
cmp ecx, esi
je 0x100837f4
push 0xffffffffffffffff
push 0
push esi
call fcn.10001a30
mov esi, dword [ebp - 0xf4]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x100]
add esi, 0x30
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x100]
add ecx, 0xb8
cmp ecx, esi
je 0x1008382a
push 0xffffffffffffffff
push 0
push esi
call fcn.10001a30
mov esi, dword [ebp - 0xf4]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x120]
add esi, 0x48
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x120]
add ecx, 0xd0
cmp ecx, esi
je 0x10083860
push 0xffffffffffffffff
push 0
push esi
call fcn.10001a30
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.1008f690
mov eax, dword [ebp - 0x118]
push 0x103cf094
inc dword [eax + 0x100]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x103ba668
mov ecx, ebx
call fcn.10001830
lea ecx, [ebp - 0xf4]
call fcn.1008a000
lea ecx, [ebp + 8]
call fcn.100017f0
jmp 0x10083926
cmp edi, 2
jne 0x10083944
mov edx, str.TRACK
mov ecx, esi
call fcn.1008e610
test al, al
jne 0x100838fa
cmp edi, edi
jne 0x10083944
mov edx, 0x103ba694
mov ecx, esi
call fcn.1008e610
test al, al
je 0x10083944
mov eax, dword [esi + 0x28]
add esi, 0x18
cmp dword [esi + 0x14], 0x10
jb 0x100838e6
mov esi, dword [esi]
push eax
push esi
push 0x71
push ecx
call fcn.10073880
add esp, 4
mov ecx, eax
call fcn.10074180
push str.FAIL
mov ecx, ebx
call fcn.10001830
lea ecx, [ebp - 0xf4]
call fcn.1008a000
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
jb 0x10083926
inc eax
push eax
push dword [ebp + 8]
lea ecx, [ebp + 8]
call fcn.10001e00
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100980ed
mov esp, ebp
pop ebp
ret
cmp edi, 0xf
jne 0x10083ae8
mov edx, 0x103ba698
mov ecx, esi
call fcn.1008e610
test al, al
je 0x10083ae8
lea ecx, [esi + 0x30]
call fcn.1007a760
mov ecx, dword [ebp - 0xf4]
movss dword [ebp - 0x12c], xmm0
lea ecx, [ecx + 0x48]
call fcn.1007a760
mov ecx, dword [ebp - 0xf4]
movss dword [ebp - 0x128], xmm0
lea ecx, [ecx + 0x60]
call fcn.1007a760
mov eax, dword [ebp - 0xf4]
sub esp, 0x18
add eax, 0xf0
mov dword [ebp - 0x10c], esp
mov ecx, esp
movss dword [ebp - 0x124], xmm0
push eax
call fcn.10001890
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0xf4]
cmp dword [ecx + 0x14c], 0x10
lea eax, [ecx + 0x138]
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x114], eax
jb 0x100839e6
mov eax, dword [eax]
mov dword [ebp - 0x114], eax
cmp dword [ecx + 0x134], 0x10
lea eax, [ecx + 0x120]
mov dword [ebp - 0x11c], eax
jb 0x10083a03
mov eax, dword [eax]
mov dword [ebp - 0x11c], eax
lea esi, [ecx + 0x108]
lea edi, [ecx + 0xd8]
lea ebx, [ecx + 0xc0]
add ecx, 0x150
call fcn.10081e20
movzx eax, al
push eax
push dword [ebp - 0x114]
call fcn.100bae54
fstp dword [esp]
push dword [ebp - 0x11c]
call fcn.100bae54
fstp dword [esp]
push ecx
mov ecx, esi
call fcn.1007a700
add esp, 4
mov ecx, edi
push eax
call fcn.10081e20
movzx eax, al
mov ecx, ebx
push eax
call fcn.10081e20
mov esi, dword [ebp - 0xfc]
movzx eax, al
push eax
lea ecx, [esi + 0xa8]
call fcn.10081e20
movzx eax, al
lea ecx, [esi + 0x90]
push eax
call fcn.10081e20
movzx eax, al
lea ecx, [esi + 0x78]
push eax
call fcn.1007a760
mov eax, dword [ebp - 0x124]
lea edx, [esi + 0x18]
sub esp, 0x10
mov byte [ebp - 4], 1
mov ecx, esp
movss dword [esp + 0xc], xmm0
movq xmm0, qword [ebp - 0x12c]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea eax, [ebp - 0xe8]
mov ecx, dword [ebp - 0x104]
push eax
call fcn.10082560
add esp, 0x4c
lea ecx, [ebp - 0xf4]
call fcn.1008a000
lea ecx, [ebp + 8]
call fcn.100017f0
mov eax, dword [ebp - 0x104]
jmp 0x10083928
cmp edi, 5
jne 0x10083f51
mov edx, str.TANGENT
mov ecx, esi
call fcn.1008e610
test al, al
jne 0x10083b25
mov edx, str.TANGENT_LR
mov ecx, esi
call fcn.1008e610
test al, al
jne 0x10083b25
mov edx, str.TANGENT_DD
mov ecx, esi
call fcn.1008e610
test al, al
je 0x10083f51
lea ecx, [esi + 0x18]
mov edx, str.PRESSED
call fcn.1008e610
mov edx, str.TANGENT_LR
mov byte [ebp - 0xd9], al
mov ecx, esi
call fcn.1008e610
mov edx, str.TANGENT_DD
mov byte [ebp - 0xf6], al
mov ecx, esi
call fcn.1008e610
lea ecx, [esi + 0x60]
mov byte [ebp - 0xf7], al
push ecx
lea ecx, [ebp - 0x40]
call fcn.10001890
push 0x103cf094
mov byte [ebp - 4], 3
mov byte [ebp - 0xf5], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0xe8]
push eax
call fcn.1008a120
test eax, eax
je 0x10083caa
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x1b8]
push eax
call fcn.1008f690
mov eax, dword [ebp - 0x1b8]
mov cl, byte [ebp - 0xd9]
cmp byte [eax + 0x48], cl
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x134]
setne byte [ebp - 0xf5]
push eax
call fcn.1008f690
mov eax, dword [ebp - 0x134]
mov cl, byte [ebp - 0xd9]
mov byte [eax + 0x48], cl
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x13c]
push eax
call fcn.1008f690
mov esi, dword [ebp - 0x13c]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x144]
lea eax, [esi + 0x18]
push eax
add ecx, 0x58
call fcn.1008a1b0
test eax, eax
je 0x10083caa
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x14c]
push eax
call fcn.1008f690
mov esi, dword [ebp - 0x14c]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x1e8]
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x1e8]
lea eax, [esi + 0x18]
push eax
lea eax, [ebp - 0x1e0]
add ecx, 0x58
push eax
call fcn.1008f700
cmp byte [ebp - 0xf6], 0
mov eax, dword [ebp - 0x1e0]
mov eax, dword [eax + 0x28]
je 0x10083c80
mov byte [eax + 0x51], 1
jmp 0x10083c93
cmp byte [ebp - 0xf7], 0
je 0x10083c8f
mov byte [eax + 0x52], 1
jmp 0x10083c93
mov byte [eax + 0x50], 1
lea ecx, [eax + 0x80]
lea eax, [ebp - 0x40]
cmp ecx, eax
je 0x10083caa
push 0xffffffffffffffff
push 0
push eax
call fcn.10001a30
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x103cf094
call edi
cmp byte [ebp - 0xf5], 0
je 0x10083f38
call dword [0x103cf724]
mov dword [ebp - 0x104], edx
lea ecx, [ebp - 0xd8]
push 0x103ba6c4
lea edx, [ebp + 8]
mov dword [ebp - 0x108], eax
call fcn.1008dbd0
add esp, 4
mov esi, eax
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x1d8]
push eax
call fcn.1008f690
mov eax, dword [ebp - 0x1d8]
lea ecx, [ebp - 0xc0]
add eax, 0x18
mov edx, esi
push eax
call fcn.1008db10
add esp, 4
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 6
call fcn.100017f0
cmp byte [ebp - 0xd9], 0
je 0x10083e14
mov edx, str.digital_lr
lea ecx, [ebp - 0x40]
call fcn.1008e610
test al, al
je 0x10083d53
mov ecx, str.radio_sounds_lr_local_start
jmp 0x10083d99
mov edx, 0x103ba6f0
lea ecx, [ebp - 0x40]
call fcn.1008e610
test al, al
je 0x10083d6b
mov ecx, str.radio_sounds_dd_local_start
jmp 0x10083d99
mov edx, str.digital
lea ecx, [ebp - 0x40]
call fcn.1008e610
test al, al
je 0x10083d83
mov ecx, str.radio_sounds_sw_local_start
jmp 0x10083d99
mov edx, str.airborne
lea ecx, [ebp - 0x40]
call fcn.1008e610
test al, al
je 0x10083d9e
mov ecx, str.radio_sounds_ab_local_start
call fcn.1007e4b0
push 0x103cee5c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [0x103cf090], 0
jne 0x10083e01
call fcn.1007e7e0
mov byte [0x103cf091], al
cmp byte [0x103cf091], 0
je 0x10083dca
call fcn.1007e870
sub esp, 0x18
lea eax, [ebp - 0xc0]
mov ecx, esp
push eax
call fcn.10001890
push dword [ebp - 0xe4]
mov cl, byte [ebp - 0xd9]
push dword [ebp - 0xe8]
call fcn.10082c50
add esp, 0x20
push 0x103cee5c
call edi
jmp 0x10083f29
push 0x103cee5c
mov byte [0x103cee55], 1
call edi
jmp 0x10083f29
lea ecx, [ebp - 0xa8]
call fcn.10082bb0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 7
push eax
call fcn.10001a30
mov eax, dword [ebp - 0xe8]
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xe4]
push 0xffffffffffffffff
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.10001a30
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0xa8]
mov ecx, 0x103cf110
push eax
call fcn.10001a30
mov eax, dword [ebp - 0x90]
mov ecx, 0x103cf130
mov dword [0x103cf128], eax
mov eax, dword [ebp - 0x8c]
push 0xffffffffffffffff
mov dword [0x103cf12c], eax
lea eax, [ebp - 0x88]
push 0
push eax
call fcn.10001a30
mov edx, str.digital_lr
mov ecx, 0x103cf130
call fcn.1008e610
test al, al
je 0x10083eb8
mov ecx, str.radio_sounds_lr_local_end
jmp 0x10083f04
mov edx, 0x103ba6f0
mov ecx, 0x103cf130
call fcn.1008e610
test al, al
je 0x10083ed2
mov ecx, str.radio_sounds_dd_local_end
jmp 0x10083f04
mov edx, str.digital
mov ecx, 0x103cf130
call fcn.1008e610
test al, al
je 0x10083eec
mov ecx, str.radio_sounds_sw_local_end
jmp 0x10083f04
mov edx, str.airborne
mov ecx, 0x103cf130
call fcn.1008e610
test al, al
je 0x10083f09
mov ecx, str.radio_sounds_ab_local_end
call fcn.1007e4b0
push 0
push 0
push 0
push 0x10082d90
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
lea ecx, [ebp - 0xa8]
call fcn.10082be0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 3
call fcn.100017f0
push 0x103ba668
mov ecx, ebx
call fcn.10001830
lea ecx, [ebp - 0x40]
call fcn.100017f0
jmp 0x10083896
cmp edi, 0xe
jne 0x10084394
mov edx, str.FREQ
mov ecx, esi
call fcn.1008e610
test al, al
je 0x10084394
push 0x103cf094
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0xe8]
push eax
call fcn.1008a120
test eax, eax
je 0x1008423e
mov eax, dword [ebp - 0xf4]
sub esp, 0x18
add eax, 0x18
mov ecx, esp
push eax
call fcn.10001890
lea ecx, [ebp - 0x1c0]
call fcn.10082150
add esp, 0x18
mov esi, eax
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x1d0]
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x1d0]
push esi
add ecx, 0x60
call fcn.1008a1f0
lea ecx, [ebp - 0x1c0]
mov byte [ebp - 4], 1
call fcn.1007d0d0
mov eax, dword [ebp - 0xf4]
sub esp, 0x18
add eax, 0x30
mov ecx, esp
push eax
call fcn.10001890
lea ecx, [ebp - 0x1c8]
call fcn.10082150
add esp, 0x18
mov esi, eax
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x1a4]
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x1a4]
push esi
add ecx, 0x68
call fcn.1008a1f0
lea ecx, [ebp - 0x1c8]
mov byte [ebp - 4], 1
call fcn.1007d0d0
mov esi, dword [ebp - 0xf4]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x154]
add esi, 0x48
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x154]
add ecx, 0x70
cmp ecx, esi
je 0x10084072
push 0xffffffffffffffff
push 0
push esi
call fcn.10001a30
mov edi, dword [ebp - 0xf4]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x15c]
push eax
call fcn.1008f690
mov esi, dword [ebp - 0x15c]
lea ecx, [edi + 0x60]
mov edx, str.true
call fcn.1008e610
mov byte [esi + 0xa0], al
lea eax, [ebp - 0xe8]
mov edi, dword [ebp - 0xf4]
push eax
lea eax, [ebp - 0x164]
push eax
call fcn.1008f690
mov esi, dword [ebp - 0x164]
lea ecx, [edi + 0x78]
call fcn.1007b4f0
mov dword [esi + 0x9c], eax
mov edi, dword [ebp - 0xf4]
add edi, 0x90
cmp dword [edi + 0x14], 0x10
jb 0x100840e5
mov edi, dword [edi]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.1008f690
mov esi, dword [ebp - 0x16c]
push edi
call fcn.100bae54
add esp, 4
call fcn.10098e10
mov dword [esi + 0x98], eax
mov edi, dword [ebp - 0xf4]
add edi, 0xc0
cmp dword [edi + 0x14], 0x10
jb 0x10084126
mov edi, dword [edi]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.1008f690
mov esi, dword [ebp - 0x174]
push edi
call fcn.100bae54
fstp dword [esi + 0xa4]
mov edi, dword [ebp - 0xf4]
add esp, 4
add edi, 0xd8
cmp dword [edi + 0x14], 0x10
jb 0x10084162
mov edi, dword [edi]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x17c]
push eax
call fcn.1008f690
mov esi, dword [ebp - 0x17c]
push edi
call fcn.100bae54
fstp dword [esi + 0xa8]
mov edi, dword [ebp - 0xf4]
add esp, 4
add edi, 0xf0
cmp dword [edi + 0x14], 0x10
jb 0x1008419e
mov edi, dword [edi]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x184]
push eax
call fcn.1008f690
mov esi, dword [ebp - 0x184]
push edi
call fcn.100bae54
fstp dword [esi + 0xac]
mov edi, dword [ebp - 0xf4]
add esp, 4
add edi, 0x120
cmp dword [edi + 0x14], 0x10
jb 0x100841da
mov edi, dword [edi]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x18c]
push eax
call fcn.1008f690
mov esi, dword [ebp - 0x18c]
push edi
call fcn.100bae54
fstp dword [esi + 0xb0]
mov edi, dword [ebp - 0xf4]
add esp, 4
add edi, 0x138
cmp dword [edi + 0x14], 0x10
jb 0x10084216
mov edi, dword [edi]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.1008f690
mov esi, dword [ebp - 0x194]
push edi
call fcn.100bae54
fstp dword [esi + 0xb4]
add esp, 4
mov eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0x28]
add eax, 0xa8
push eax
call fcn.10001890
push 0x103cf094
mov byte [ebp - 4], 0xa
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push dword [ebp - 0xe4]
lea ecx, [ebp - 0x58]
push dword [ebp - 0xe8]
call fcn.10081460
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x58]
mov edi, dword [ebp - 0x18]
mov eax, edi
cmovae edx, dword [ebp - 0x28]
cmp dword [ebp - 0x44], 0x10
mov esi, dword [ebp - 0x48]
cmovae ecx, dword [ebp - 0x58]
cmp esi, edi
cmovb eax, esi
push eax
call fcn.10002490
add esp, 0xc
test eax, eax
jne 0x100842b3
cmp esi, edi
jb 0x100842b3
jbe 0x10084373
test esi, esi
je 0x10084373
mov edx, str.Error:_No_unit
lea ecx, [ebp - 0x28]
call fcn.1008da70
test al, al
je 0x10084373
mov edx, str.Error:_No_vehicle
lea ecx, [ebp - 0x28]
call fcn.1008da70
test al, al
je 0x10084373
mov edx, 0x103ba7f8
lea ecx, [ebp - 0x28]
call fcn.1008da70
test al, al
je 0x10084373
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
push 1
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
call dword [0x103cf57c]
add esp, 0x10
test eax, eax
je 0x10084330
push 4
mov edx, eax
mov ecx, str.Error_setting_client_nickname
call fcn.1007d390
add esp, 4
jmp 0x10084373
push 0x103cf094
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x19c]
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x19c]
lea eax, [ebp - 0x58]
add ecx, 0x30
cmp ecx, eax
je 0x10084368
push 0xffffffffffffffff
push 0
push eax
call fcn.10001a30
push 0x103cf094
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x103ba668
mov ecx, ebx
call fcn.10001830
lea ecx, [ebp - 0x58]
call fcn.100017f0
lea ecx, [ebp - 0x28]
call fcn.100017f0
jmp 0x10083896
cmp edi, 2
jne 0x100844e8
mov edx, str.IS_SPEAKING
mov ecx, esi
call fcn.1008e610
test al, al
je 0x100844e8
lea eax, [esi + 0x18]
push eax
lea ecx, [ebp - 0x70]
call fcn.10001890
push 0x103cf094
mov byte [ebp - 4], 0xc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0xe8]
mov byte [ebp - 0xd9], 0
push eax
mov esi, 0xffff
call fcn.1008a120
test eax, eax
je 0x1008446c
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x1f0]
lea eax, [ebp - 0x70]
push eax
lea ecx, [ecx + 0x58]
call fcn.1008a1b0
test eax, eax
je 0x1008446c
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x1ac]
push eax
call fcn.1008f690
mov ecx, dword [ebp - 0x1ac]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x128]
push eax
lea ecx, [ecx + 0x58]
call fcn.1008f700
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 0x28]
test eax, eax
je 0x1008446c
cmp dword [eax + 0xc], 3
movzx esi, word [eax + 8]
jne 0x10084465
cmp byte [eax + 0x49], 0
mov byte [ebp - 0xd9], 0
je 0x1008446c
mov byte [ebp - 0xd9], 1
push 0x103cf094
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0xffff
cmp si, ax
je 0x100844cf
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
call fcn.1007db10
push dword [ebp - 0xe4]
mov edx, esi
mov ecx, eax
push dword [ebp - 0xe8]
call fcn.10080210
add esp, 0x10
test al, al
jne 0x100844b6
cmp byte [ebp - 0xd9], al
je 0x100844cf
push str.SPEAKING
mov ecx, ebx
call fcn.10001830
lea ecx, [ebp - 0x70]
call fcn.100017f0
jmp 0x10083896
push str.NOT_SPEAKING
mov ecx, ebx
call fcn.10001830
lea ecx, [ebp - 0x70]
call fcn.100017f0
jmp 0x10083896
mov eax, dword [ebp - 0xfc]
add eax, 0xffffffe8
cmp eax, 0x18
jae 0x100838fa
mov edx, str.ARTEMIS
mov ecx, esi
call fcn.1008e610
test al, al
je 0x100838fa
push str.ARTEMIS
jmp 0x1008388f