Function at 0x41b4a0
Capabilities:
Check os version
Log keystrokes via application hook

Disassembly:
push 0xffffffffffffffff
push 0x4674bb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa8
mov eax, dword [0x486ed0]
push ebx
push ebp
push esi
push edi
mov esi, ecx
mov dword [esp + 0x10], eax
xor ebp, ebp
mov dword [esp + 0xc0], ebp
call fcn.00419890
mov edi, eax
cmp edi, ebp
je 0x41ba4b
cmp dword [esi + 0x5f4], ebp
je 0x41ba4b
movsx ecx, word [esi + 0x708]
push ecx
mov dword [esi + 0x73c], ebp
mov dword [esi + 0x740], ebp
call fcn.00423e70
mov ebx, eax
add esp, 4
cmp ebx, ebp
jne 0x41b55a
movsx edx, word [esi + 0x708]
push edx
lea eax, [esp + 0x14]
push str.The_server_speified_an_unknown_codec_index___d_.
push eax
call fcn.00455232
mov ecx, dword [esp + 0x1c]
mov dl, byte [esi + 0x1d13]
add esp, 0xc
push ecx
push edx
push esi
call fcn.00412d50
mov al, byte [esi + 0x1d13]
add esp, 0xc
test al, al
jne 0x41ba4b
push 0x10
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x41ba4b
movsx eax, word [esi + 0x70a]
push eax
push ebx
call fcn.00423e90
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x41b599
movsx ecx, word [esi + 0x70a]
push ecx
lea edx, [esp + 0x14]
push str.The_server_speified_an_unknown_codec_format___d_.
push edx
call fcn.00455232
mov eax, dword [esp + 0x1c]
mov cl, byte [esi + 0x1d13]
add esp, 0xc
push eax
push ecx
jmp 0x41b536
lea ecx, [esi + 0x6c0]
call fcn.00436cf0
mov dx, word [ebx + 8]
mov ax, word [ebx + 4]
mov ecx, dword [ebp + 0x14]
push edx
mov edx, dword [ebp + 0x10]
push eax
push ebp
push ecx
push edx
lea ecx, [esi + 0x6c0]
call fcn.00436730
test eax, eax
je 0x41b5f7
mov eax, dword [esi + 0x6d0]
mov ecx, dword [ebx]
push eax
mov eax, dword [ebp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x1c]
push str.Unable_to_initialize_outbound_codec___s____s_:__s
push edx
call fcn.00455232
mov eax, dword [esp + 0x24]
mov cl, byte [esi + 0x1d13]
add esp, 0x14
push eax
push ecx
jmp 0x41b536
mov eax, dword [edi + 0x34]
test eax, eax
je 0x41ba4b
mov dword [esi + 0x714], 0
mov byte [esi + 0x718], 0
mov edx, dword [edi + 0x44]
mov dword [esi + 0x728], edx
mov eax, dword [edi + 0x48]
mov dword [esi + 0x72c], eax
mov eax, dword [edi + 0x40]
test eax, eax
setne cl
mov byte [esi + 0x720], cl
mov edx, dword [edi + 0x4c]
mov dword [esi + 0x730], edx
mov eax, dword [edi + 0x78]
shr eax, 8
shl eax, 3
mov dword [esi + 0x71c], eax
mov cl, byte [edi + 0x78]
cmp cl, 5
jne 0x41b65c
add eax, 4
mov dword [esi + 0x71c], eax
push edi
mov ecx, esi
call fcn.0041bba0
lea ebx, [esi + 0x618]
mov ecx, ebx
call fcn.00437b00
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x41b73c
lea eax, [esp + 0x14]
lea ecx, [edi + 0x80]
push eax
push ecx
call fcn.00407030
add esp, 8
test eax, eax
je 0x41b6d6
push eax
lea edx, [esp + 0x14]
push str.DirectSound_input_device_GUID_is_malformed._rc_d
push edx
call fcn.00455232
mov eax, dword [esp + 0x1c]
add esp, 0xc
push eax
push str.VoiceCommStart:__s
call fcn.0040a2a0
mov al, byte [esi + 0x1d13]
add esp, 8
test al, al
je 0x41b72f
mov ecx, dword [esp + 0x10]
push 0
push 0
push ecx
call fcn.0045ece2
jmp 0x41ba4b
lea edx, [esp + 0x14]
mov ecx, ebx
push edx
call fcn.004378d0
test eax, eax
je 0x41b73c
mov ecx, ebx
call fcn.004389a0
push eax
lea eax, [esp + 0x14]
push str.Unable_to_activate_DirectSound_for_selected_device._n_s
push eax
call fcn.00455232
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push ecx
push str.VoiceCommStart:__s
call fcn.0040a2a0
mov al, byte [esi + 0x1d13]
add esp, 8
test al, al
je 0x41b72f
mov edx, dword [esp + 0x10]
push 0
push 0
push edx
call fcn.0045ece2
jmp 0x41ba4b
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x41ba4b
test esi, esi
jne 0x41b744
xor eax, eax
jmp 0x41b747
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebp + 0x10]
mov edx, dword [edi + 0x5c]
push eax
mov eax, dword [ebp + 0x14]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.00438450
mov ebp, dword [sym.imp.USER32.dll_MessageBeep]
test eax, eax
je 0x41b791
push eax
push str.VoiceCommStart:_waveInput.Start_failed__rc___d
call fcn.0040a2a0
mov al, byte [esi + 0x1d13]
add esp, 8
test al, al
je 0x41b78d
push 0
push 0
push str.Failed_to_open_sound_input_device._Another_program_might_have_it_open_already.
call fcn.0045ece2
jmp 0x41b791
push 0xffffffffffffffff
call ebp
mov eax, dword [edi + 0x11c]
sub eax, 2
je 0x41b7a0
push 0x20
jmp 0x41b7a5
push 0x80
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
push 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, dword [edi + 0x40]
test eax, eax
je 0x41ba4b
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x41b933
test esi, esi
jne 0x41b7df
xor eax, eax
jmp 0x41b7e2
mov eax, dword [esi + 0x1c]
lea ebx, [esi + 0x758]
push eax
mov ecx, ebx
call fcn.00406960
test eax, eax
je 0x41b81f
push eax
push str.VoiceCommStart:_dirInp.Create_failed__rc___d
call fcn.0040a2a0
mov al, byte [esi + 0x1d13]
add esp, 8
test al, al
je 0x41b87b
push 0
push 0
push str.Failed_to_create_DirectInput_object_for_monitoring_Press_to_talk.
call fcn.0045ece2
jmp 0x41ba4b
mov eax, dword [edi + 0x44]
cmp eax, 0x1100
jl 0x41b884
cmp eax, 0x1107
jg 0x41b884
test esi, esi
jne 0x41b838
xor eax, eax
jmp 0x41b83b
mov eax, dword [esi + 0x1c]
push 0xbd7
push eax
mov ecx, ebx
call fcn.00406b80
test eax, eax
je 0x41ba4b
push eax
push str.VoiceCommStart:_dirInp.MouseOpen_failed__rc___d
call fcn.0040a2a0
mov al, byte [esi + 0x1d13]
add esp, 8
test al, al
je 0x41b87b
push 0
push 0
push str.Failed_to_open_DirectInput_mouse_driver_for_monitoring_PTT_Hotkey.
call fcn.0045ece2
jmp 0x41ba4b
push 0xffffffffffffffff
call ebp
jmp 0x41ba4b
cmp eax, 0x1400
jl 0x41b8e4
cmp eax, 0x14ff
jg 0x41b8e4
test esi, esi
jne 0x41b89a
xor eax, eax
jmp 0x41b89d
mov eax, dword [esi + 0x1c]
add edi, 0x8c
mov ecx, ebx
push edi
push 0xbd8
push eax
call fcn.00406bf0
test eax, eax
je 0x41ba4b
push eax
push str.VoiceCommStart:_dirInp.JoyOpen_failed__rc___d
call fcn.0040a2a0
mov al, byte [esi + 0x1d13]
add esp, 8
test al, al
je 0x41b87b
push 0
push 0
push str.Failed_to_open_DirectInput_game_controller_driver_for_monitoring_PTT_Hotkey.
call fcn.0045ece2
jmp 0x41ba4b
test esi, esi
jne 0x41b8ec
xor eax, eax
jmp 0x41b8ef
mov eax, dword [esi + 0x1c]
push 0xbd6
push eax
mov ecx, ebx
call fcn.00406b40
test eax, eax
je 0x41ba4b
push eax
push str.VoiceCommStart:_dirInp.KbdOpen_failed__rc___d
call fcn.0040a2a0
mov al, byte [esi + 0x1d13]
add esp, 8
test al, al
je 0x41b87b
push 0
push 0
push str.Failed_to_open_DirectInput_keyboard_driver_for_monitoring_PTT_Hotkey.
call fcn.0045ece2
jmp 0x41ba4b
mov ecx, 0x25
xor eax, eax
lea edi, [esp + 0x24]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x41b965
push str.VoiceCommStart:_Platform_is_WIN32s_and_not_allowed.
jmp 0x41ba43
cmp eax, 1
mov eax, dword [esi + 0x728]
jne 0x41b9de
cmp eax, 0x1100
je 0x41b9b5
cmp eax, 0x1101
je 0x41b9b5
cmp eax, 0x1102
je 0x41b9b5
call fcn.00460f3e
mov eax, dword [eax + 8]
push 0
push eax
push 0x41c8e0
push 2
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
test eax, eax
mov dword [esi + 0x724], eax
jne 0x41ba4b
push str.VoiceCommStart:_Unable_to_set_Windows_9x_hook_for_hotkey_detection.
jmp 0x41ba43
call fcn.00460f3e
mov eax, dword [eax + 8]
push 0
push eax
push 0x41cb60
push 7
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
test eax, eax
mov dword [esi + 0x734], eax
jne 0x41ba4b
push str.VoiceCommStart:_Unable_to_set_Windows_9x_hook_for_mouse_detection.
jmp 0x41ba43
cmp eax, 0x1100
je 0x41ba1c
cmp eax, 0x1101
je 0x41ba1c
cmp eax, 0x1102
je 0x41ba1c
call fcn.00460f3e
mov eax, dword [eax + 8]
push 0
push eax
push 0x41c780
push 0xd
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
test eax, eax
mov dword [esi + 0x724], eax
jne 0x41ba4b
push str.VoiceCommStart:_SetWindowsHookEx_failed_for_kbd_hook.
jmp 0x41ba43
call fcn.00460f3e
mov eax, dword [eax + 8]
push 0
push eax
push 0x41ca60
push 0xe
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
test eax, eax
mov dword [esi + 0x734], eax
jne 0x41ba4b
push str.VoiceCommStart:_SetWindowsHookEx_failed_for_mouse_hook.
call fcn.0040a2a0
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0xc0], 0xffffffff
call fcn.0045b229
mov ecx, dword [esp + 0xb8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xb4
ret