Function at 0x140050860
Capabilities:
Link many functions at runtime

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x288
mov ecx, 0x100
call sym.hb_xgrab
lea rdx, [rsp + 0x40]
mov ecx, 0x22
mov rbp, rax
mov rdi, rdx
xor eax, eax
rep stosq qword [rdi], rax
mov eax, dword [0x1400c7104]
mov dword [rdi], 0
test eax, eax
je 0x140050bf0
mov r13d, dword [0x14009b3a0]
test r13d, r13d
jne 0x140050c05
cmp qword [0x1400c70d8], 0
je 0x140050a51
mov r9, qword [0x1400c70d0]
test r9, r9
je 0x140050a51
lea rbx, [rsp + 0x160]
xor eax, eax
mov ecx, 0x23
mov r8d, 3
mov rdi, rbx
mov edx, 2
rep stosq qword [rdi], rax
movabs rax, 0xb0000011c
mov dword [rdi], 0
mov qword [rsp + 0x160], rax
call r9
mov r8d, 3
mov edx, 1
mov rcx, rax
call qword [0x1400c70d0]
mov edx, 3
mov rcx, rbx
mov r8, rax
call qword [0x1400c70d8]
test eax, eax
je 0x140050a51
mov dword [rsp + 0x44], 0xb
mov ecx, 0xb
xor ebx, ebx
lea r9, str._11_or_newer
nop
mov r10d, dword [0x1400c70e0]
lea rdx, [0x1400bbcbb]
lea rax, str.__Wine_
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x30], ebx
lea r8, str.Windows_s_s__lu._lu
mov rcx, rbp
test r10d, r10d
cmove rax, rdx
mov edx, 0x100
mov qword [rsp + 0x20], rax
call sym.hb_snprintf
mov r11d, dword [0x1400c7104]
test r11d, r11d
je 0x140050d30
mov r8d, dword [0x1400c70e8]
test r8d, r8d
je 0x140050a3e
mov r13, qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov r12, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, 5
lea rsi, [rsp + 0x160]
mov ecx, dword [0x14009b3a0]
test ecx, ecx
jne 0x140050ce3
cmp qword [0x1400c70d8], 0
je 0x140050a39
mov r9, qword [0x1400c70d0]
test r9, r9
je 0x140050a39
xor eax, eax
mov ecx, 0x23
mov rdi, rsi
mov r8d, 3
rep stosq qword [rdi], rax
mov edx, 0x20
mov dword [rdi], 0
mov dword [rsp + 0x160], 0x11c
mov word [rsp + 0x274], bx
call r9
mov edx, 0x20
mov rcx, rsi
mov r8, rax
call qword [0x1400c70d8]
test eax, eax
jne 0x1400511c0
sub ebx, 1
jne 0x1400509c8
mov rax, rbp
add rsp, 0x288
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov r12d, dword [0x1400c7104]
test r12d, r12d
je 0x140050cc0
mov edi, dword [0x1400c7100]
test edi, edi
jne 0x140050c60
mov ebx, dword [0x1400c7104]
test ebx, ebx
je 0x140050d40
mov eax, dword [0x1400c70fc]
test eax, eax
jne 0x140050d55
mov edx, dword [0x1400c70f0]
test edx, edx
je 0x140050ef0
mov edx, dword [0x1400c70f8]
mov eax, dword [0x14009b3a0]
test edx, edx
jne 0x140050dd0
test eax, eax
jne 0x1400510c1
cmp qword [0x1400c70d8], 0
je 0x1400511ed
mov r9, qword [0x1400c70d0]
test r9, r9
je 0x1400511ed
lea rbx, [rsp + 0x160]
xor eax, eax
mov ecx, 0x23
mov r8d, 1
mov rdi, rbx
mov edx, 2
rep stosq qword [rdi], rax
movabs rax, 0x60000011c
mov dword [rdi], 0
mov qword [rsp + 0x160], rax
mov dword [rsp + 0x168], 1
call r9
mov r8d, 1
mov edx, 1
mov rcx, rax
call qword [0x1400c70d0]
mov edx, 3
mov rcx, rbx
mov r8, rax
call qword [0x1400c70d8]
test eax, eax
jne 0x1400512c8
mov eax, dword [0x14009b3a0]
mov dword [rsp + 0x44], 6
test eax, eax
je 0x140050ba4
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x140050b9a
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rsi
lea rdx, str.VerSetConditionMask
mov rcx, rbx
mov qword [0x1400c70d8], rax
call rsi
mov qword [0x1400c70d0], rax
mov dword [0x14009b3a0], 0
cmp qword [0x1400c70d8], 0
je 0x140051123
cmp qword [0x1400c70d0], 0
je 0x140051123
xor r9d, r9d
xor edx, edx
mov r8d, 1
mov ecx, 6
call sym.hb_iswinver.part.0
test eax, eax
je 0x140051123
mov ecx, 6
xor ebx, ebx
lea r9, str._Vista
jmp 0x140050950
call sym.s_hb_winVerInit
mov r13d, dword [0x14009b3a0]
test r13d, r13d
je 0x1400508b2
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x140050c47
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rsi
lea rdx, str.VerSetConditionMask
mov rcx, rbx
mov qword [0x1400c70d8], rax
call rsi
mov qword [0x1400c70d0], rax
mov dword [0x14009b3a0], 0
jmp 0x1400508b2
mov esi, dword [0x14009b3a0]
mov dword [rsp + 0x44], 0xa
test esi, esi
jne 0x140051070
cmp qword [0x1400c70d8], 0
je 0x140050cd0
cmp qword [0x1400c70d0], 0
je 0x140050cd0
xor r9d, r9d
xor edx, edx
mov r8d, 1
mov ecx, 0xa
call sym.hb_iswinver.part.0
test eax, eax
je 0x140050cd0
mov ecx, 0xa
xor ebx, ebx
lea r9, [0x1400bbc2f]
jmp 0x140050950
call sym.s_hb_winVerInit
jmp 0x140050a61
mov ecx, 0xa
xor ebx, ebx
lea r9, str._Server_2016
jmp 0x140050950
lea rcx, str.kernel32.dll
call r13
mov rdi, rax
test rax, rax
je 0x140050d1d
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
call r12
lea rdx, str.VerSetConditionMask
mov rcx, rdi
mov qword [0x1400c70d8], rax
call r12
mov qword [0x1400c70d0], rax
mov dword [0x14009b3a0], 0
jmp 0x1400509d6
call sym.s_hb_winVerInit
jmp 0x14005099d
call sym.s_hb_winVerInit
mov r11d, dword [0x1400c70fc]
test r11d, r11d
je 0x140050e40
mov r10d, dword [0x14009b3a0]
movabs rax, 0x300000006
mov qword [rsp + 0x44], rax
test r10d, r10d
jne 0x140050e7d
cmp qword [0x1400c70d8], 0
je 0x140050ed0
cmp qword [0x1400c70d0], 0
je 0x140050ed0
xor r9d, r9d
mov r8d, 1
mov edx, 3
mov ecx, 6
call sym.hb_iswinver.part.0
test eax, eax
je 0x140050ed0
mov ecx, 6
mov ebx, 3
lea r9, str._8.1
jmp 0x140050950
movabs rsi, 0x200000006
mov qword [rsp + 0x44], rsi
test eax, eax
jne 0x140051213
cmp qword [0x1400c70d8], 0
je 0x140051050
cmp qword [0x1400c70d0], 0
je 0x140051050
xor r9d, r9d
mov r8d, 1
mov edx, 2
mov ecx, 6
call sym.hb_iswinver.part.0
test eax, eax
je 0x140051050
mov ecx, 6
mov ebx, 2
lea r9, [0x1400bbc33]
jmp 0x140050950
mov r9d, dword [0x1400c7104]
test r9d, r9d
jne 0x140050a8b
call sym.s_hb_winVerInit
mov r8d, dword [0x1400c70f0]
test r8d, r8d
je 0x140050ef0
mov ecx, dword [0x1400c7104]
test ecx, ecx
jne 0x140050a99
call sym.s_hb_winVerInit
jmp 0x140050a99
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x140050ebf
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rsi
lea rdx, str.VerSetConditionMask
mov rcx, rbx
mov qword [0x1400c70d8], rax
call rsi
mov qword [0x1400c70d0], rax
mov dword [0x14009b3a0], 0
jmp 0x140050d74
mov ecx, 6
mov ebx, 3
lea r9, str._Server_2012_R2
jmp 0x140050950
mov eax, dword [0x14009b3a0]
test eax, eax
jne 0x140051136
cmp qword [0x1400c70d8], 0
je 0x140051190
mov r9, qword [0x1400c70d0]
test r9, r9
je 0x140051190
lea rbx, [rsp + 0x160]
xor eax, eax
mov ecx, 0x23
mov r8d, 1
mov rdi, rbx
mov edx, 2
rep stosq qword [rdi], rax
movabs rax, 0x50000011c
mov dword [rdi], 0
mov qword [rsp + 0x160], rax
mov dword [rsp + 0x168], 2
call r9
mov r8d, 1
mov edx, 1
mov rcx, rax
call qword [0x1400c70d0]
mov edx, 3
mov rcx, rbx
mov r8, rax
call qword [0x1400c70d8]
test eax, eax
jne 0x140051337
mov r12d, dword [0x14009b3a0]
test r12d, r12d
jne 0x140051264
cmp qword [0x1400c70d8], 0
je 0x140051190
mov r9, qword [0x1400c70d0]
test r9, r9
je 0x140051190
xor eax, eax
mov ecx, 0x23
mov rdi, rbx
mov r8d, 1
rep stosq qword [rdi], rax
mov edx, 2
movabs rax, 0x50000011c
mov dword [rdi], 0
mov qword [rsp + 0x160], rax
mov dword [rsp + 0x168], 1
call r9
mov r8d, 1
mov edx, 1
mov rcx, rax
call qword [0x1400c70d0]
mov edx, 3
mov rcx, rbx
mov r8, rax
call qword [0x1400c70d8]
test eax, eax
je 0x1400512bf
movabs rax, 0x100000005
mov ecx, 5
mov ebx, 1
mov qword [rsp + 0x44], rax
lea r9, [0x1400bbc46]
jmp 0x140050950
mov ecx, 6
mov ebx, 2
lea r9, str._Server_2012
jmp 0x140050950
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x1400510b2
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rsi
lea rdx, str.VerSetConditionMask
mov rcx, rbx
mov qword [0x1400c70d8], rax
call rsi
mov qword [0x1400c70d0], rax
mov dword [0x14009b3a0], 0
jmp 0x140050c76
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x140051103
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rsi
lea rdx, str.VerSetConditionMask
mov rcx, rbx
mov qword [0x1400c70d8], rax
call rsi
mov qword [0x1400c70d0], rax
cmp qword [0x1400c70d8], 0
mov dword [0x14009b3a0], 0
jne 0x140050ac3
mov dword [rsp + 0x44], 6
mov ecx, 6
xor ebx, ebx
lea r9, str._Server_2008
jmp 0x140050950
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x140051178
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rsi
lea rdx, str.VerSetConditionMask
mov rcx, rbx
mov qword [0x1400c70d8], rax
call rsi
mov qword [0x1400c70d0], rax
cmp qword [0x1400c70d8], 0
mov dword [0x14009b3a0], 0
jne 0x140050f0c
xor ebx, ebx
mov edi, dword [0x1400c7104]
test edi, edi
je 0x1400512b5
mov esi, dword [0x1400c70e8]
test esi, esi
jne 0x1400511fa
mov ecx, dword [rsp + 0x44]
lea r9, [0x1400bbc9a]
jmp 0x140050950
mov rcx, rsi
mov r9d, ebx
mov edx, 8
lea r8, str._SP_u
call sym.hb_snprintf
mov r8d, 0xff
mov rdx, rsi
mov rcx, rbp
call sym.hb_strncat
jmp 0x140050a3e
mov dword [rsp + 0x44], 6
jmp 0x140050ba4
mov dword [rsp + 0x44], 5
mov ecx, 5
lea r9, str._2000
jmp 0x140050950
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x140051255
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rsi
lea rdx, str.VerSetConditionMask
mov rcx, rbx
mov qword [0x1400c70d8], rax
call rsi
mov qword [0x1400c70d0], rax
mov dword [0x14009b3a0], 0
jmp 0x140050de7
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, rax
test rax, rax
je 0x1400512a6
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
mov rdi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rdi
lea rdx, str.VerSetConditionMask
mov rcx, rsi
mov qword [0x1400c70d8], rax
call rdi
mov qword [0x1400c70d0], rax
mov dword [0x14009b3a0], 0
jmp 0x140050f9f
call sym.s_hb_winVerInit
jmp 0x1400511a0
mov ebx, dword [rsp + 0x48]
jmp 0x140051192
movabs rax, 0x100000006
mov qword [rsp + 0x44], rax
mov eax, dword [0x14009b3a0]
test eax, eax
jne 0x140051431
cmp qword [0x1400c70d8], 0
je 0x1400513ca
cmp qword [0x1400c70d0], 0
je 0x1400513ca
xor r9d, r9d
mov r8d, 1
mov edx, 1
mov ecx, 6
call sym.hb_iswinver.part.0
test eax, eax
je 0x1400513ca
mov ecx, 6
mov ebx, 1
lea r9, [0x1400bbc50]
jmp 0x140050950
mov r13d, dword [0x14009b3a0]
movabs rax, 0x200000005
mov qword [rsp + 0x44], rax
test r13d, r13d
jne 0x1400513e0
cmp qword [0x1400c70d8], 0
je 0x14005139c
cmp qword [0x1400c70d0], 0
je 0x14005139c
xor r9d, r9d
mov r8d, 1
mov edx, 2
mov ecx, 5
call sym.hb_iswinver.part.0
test eax, eax
je 0x14005139c
mov ecx, 5
mov ebx, 2
lea r9, str._XP_x64
jmp 0x140050950
mov ecx, 0x59
mov ebx, 2
call qword [sym.imp.USER32.dll_GetSystemMetrics]
lea r9, str._Server_2003_R2
mov ecx, 5
test eax, eax
lea rax, str._Server_2003
cmove r9, rax
jmp 0x140050950
mov ecx, 6
mov ebx, 1
lea r9, str._Server_2008_R2
jmp 0x140050950
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x140051422
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rsi
lea rdx, str.VerSetConditionMask
mov rcx, rbx
mov qword [0x1400c70d8], rax
call rsi
mov qword [0x1400c70d0], rax
mov dword [0x14009b3a0], 0
jmp 0x140051356
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x140051473
lea rdx, str.VerifyVersionInfoW
mov rcx, rax
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rsi
lea rdx, str.VerSetConditionMask
mov rcx, rbx
mov qword [0x1400c70d8], rax
call rsi
mov qword [0x1400c70d0], rax
mov dword [0x14009b3a0], 0
jmp 0x1400512e5