Function at 0x100056910
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r14, qword [rsp + 0xb0]
xor ebp, ebp
mov rbx, rcx
lea esi, [rbp + 1]
mov ecx, r8d
mov r15, r9
sub ecx, esi
mov r13d, r8d
mov r12, rdx
je 0x100057090
cmp ecx, esi
jne 0x100057356
mov rax, qword [rdx + 0x28]
lea r9d, [rbp + 0xe]
mov ecx, dword [rax + 0xc]
cmp ecx, 0x26
jg 0x100056df1
je 0x100056ccd
cmp ecx, r9d
jg 0x100056c23
je 0x100056c16
cmp ecx, 7
je 0x100056b3a
cmp ecx, 8
je 0x100056e44
cmp ecx, 0xa
je 0x100056a3e
jle 0x100057356
cmp ecx, 0xc
jg 0x100057356
mov rcx, rbx
call fcn.10005671c
test byte [rbx + 0x88], 0x80
je 0x100057356
mov rax, qword [r12 + 0x28]
cmp dword [rax + 0xc], 0x16
jne 0x100057356
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
cmp al, bpl
jne 0x100057356
lea rdx, [0x100008560]
xor r8d, r8d
mov rcx, rbx
call fcn.100055880
mov rdi, rax
cmp qword [rax + 8], rbp
jne 0x100056a0b
mov rdx, rbx
mov ecx, 0x800c
call fcn.100060288
mov edx, dword [rdi]
mov ecx, edx
and ecx, 0xffffff80
cmp ecx, 0xffffff80
je 0x100057356
mov eax, edx
not edx
and eax, 0xffffff80
and edx, 0x7f
sub eax, esi
xor eax, edx
mov dword [rdi], eax
test eax, 0xffffff80
jne 0x100057356
mov rcx, rdi
jmp 0x100056b30
test byte [rbx + 0x89], 2
je 0x100056a5e
lea rdx, [0x100007160]
xor r8d, r8d
mov rcx, rbx
call fcn.100055880
mov rsi, rax
jmp 0x100056a68
mov rax, qword [0x100007188]
mov rsi, qword [rax]
mov rbp, qword [r15 + 8]
mov rdi, qword [rsi + 8]
test rbp, rbp
je 0x100056ab7
test rdi, rdi
je 0x100056aaa
btr dword [rdi], 0x1e
mov r9d, dword [rdi]
bt r9d, 0x1c
jae 0x100056a8e
mov r8, qword [rdi + 8]
jmp 0x100056a92
lea r8, [rdi + 8]
mov rax, qword [rbp]
and r9d, 0xfffffff
mov rdx, rbx
mov rcx, rbp
call qword [rax + 0x18]
bts dword [rdi], 0x1e
mov rax, qword [rbp]
mov rdx, rbx
mov rcx, rbp
call qword [rax + 0x30]
mov rbp, qword [r14 + 8]
test rbp, rbp
je 0x100056b02
mov rax, qword [rbp]
mov rdx, rbx
mov rcx, rbp
call qword [rax + 0x28]
test rdi, rdi
je 0x100056b02
btr dword [rdi], 0x1e
mov r9d, dword [rdi]
bt r9d, 0x1c
jae 0x100056ae6
mov r8, qword [rdi + 8]
jmp 0x100056aea
lea r8, [rdi + 8]
mov rax, qword [rbp]
and r9d, 0xfffffff
mov rdx, rbx
mov rcx, rbp
call qword [rax + 0x10]
bts dword [rdi], 0x1e
mov ecx, dword [rsi]
mov eax, ecx
and eax, 0xffffff80
cmp eax, 0xffffff80
je 0x100057356
mov eax, ecx
not ecx
and eax, 0xffffff80
and ecx, 0x7f
dec eax
xor eax, ecx
mov dword [rsi], eax
test eax, 0xffffff80
jne 0x100057356
mov rcx, rsi
call fcn.100059224
jmp 0x100057356
cmp dword [r14 + 8], 0xfffffffe
mov rdi, qword [rbx + 0x48]
je 0x100056bb8
cmp dword [r14 + 8], 0xfffffffd
je 0x100056bb8
cmp rdi, rbp
je 0x100057356
mov rcx, rbx
call fcn.10005337c
mov rsi, rax
cmp rax, rbp
je 0x100056b94
mov rcx, qword [rax + 0x28]
cmp rcx, rbp
je 0x100056b94
cmp qword [rax + 0x20], rbp
je 0x100056b94
mov r9b, 1
xor r8d, r8d
mov rdx, rbx
call fcn.10005862c
mov rcx, qword [rsi + 0x20]
mov r9b, 1
xor r8d, r8d
mov rdx, rbx
call fcn.10005862c
test byte [rbx + 0x8b], 2
je 0x100056ba5
mov rcx, rdi
call fcn.100053eec
mov edx, dword [rbx + 0x8c]
and edx, 3
je 0x100056bb8
mov rcx, rdi
call fcn.100053f34
cmp rdi, rbp
je 0x100057356
test byte [rdi + 0x89], 4
je 0x100056be1
lea rdx, [0x100007400]
xor r8d, r8d
mov rcx, rdi
call fcn.100055880
mov rsi, rax
jmp 0x100056beb
mov rax, qword [0x100007428]
mov rsi, qword [rax]
mov rcx, qword [rsi + 8]
cmp rcx, rbp
je 0x100056b02
mov eax, dword [r14 + 8]
mov r10, qword [rcx]
mov r9d, dword [r15 + 8]
mov r8, rbx
mov rdx, rdi
mov dword [rsp + 0x20], eax
call qword [r10 + 0x20]
jmp 0x100056b02
mov rcx, rbx
call fcn.10005656c
jmp 0x100057356
sub ecx, 0x11
je 0x1000569ad
sub ecx, esi
je 0x100056c4f
sub ecx, 4
je 0x1000569ad
cmp ecx, 7
jne 0x100057356
mov rcx, rbx
call fcn.10005666c
jmp 0x1000569ad
test byte [rbx + 0x88], 0x80
je 0x100057356
test byte [rbx + 0x8c], 8
je 0x100057356
lea rdx, [0x100008528]
xor r8d, r8d
mov rcx, rbx
call fcn.100055880
mov edx, dword [rax]
mov edi, dword [rax + 8]
mov ecx, edx
and ecx, 0xffffff80
cmp ecx, 0xffffff80
je 0x100056caa
mov ecx, edx
not edx
and ecx, 0xffffff80
and edx, 0x7f
sub ecx, esi
xor ecx, edx
mov dword [rax], ecx
test ecx, 0xffffff80
jne 0x100056caa
mov rcx, rax
call fcn.100059224
cmp byte [r14 + 8], bpl
je 0x100056cc5
mov rdx, rbx
mov ecx, 0x8005
or edi, 4
call fcn.100060288
jmp 0x100056f0e
and edi, 0xfffffffb
jmp 0x100056f0e
test byte [rbx + 0x8a], 2
je 0x100057356
lea rdx, [0x100007f08]
xor r8d, r8d
mov rcx, rbx
call fcn.100055880
mov edx, dword [rax]
mov r12d, dword [rax + 8]
mov ecx, edx
and ecx, 0xffffff80
cmp ecx, 0xffffff80
je 0x100056d1c
mov ecx, edx
not edx
and ecx, 0xffffff80
and edx, 0x7f
sub ecx, esi
xor ecx, edx
mov dword [rax], ecx
test ecx, 0xffffff80
jne 0x100056d1c
mov rcx, rax
call fcn.100059224
mov edi, 0xf00
test edi, r12d
je 0x10005734e
mov ecx, dword [0x1000de268]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp rax, rbp
je 0x10005734e
cmp dword [rax + 0x1c], ebp
sete al
cmp al, bpl
je 0x10005734e
cmp r15, rbp
je 0x100056dde
mov eax, dword [r15]
and al, 0x3f
cmp al, sil
jne 0x100056dde
mov ebp, dword [r15 + 8]
mov rsi, qword [rbx + 8]
mov rcx, rsi
cmp bpl, 0xff
jne 0x100056d8f
xor edx, edx
lea r8d, [rdx + 8]
call sub.wmpdui.dll_SetGadgetStyle
mov r8d, 0x800
xor edx, edx
mov rcx, rsi
call sub.wmpdui.dll_SetGadgetStyle
jmp 0x100056dde
mov edx, 0x800
mov r8d, edx
call sub.wmpdui.dll_SetGadgetStyle
mov edx, 8
mov rcx, rsi
mov r8d, edx
call sub.wmpdui.dll_SetGadgetStyle
xor edx, edx
lea rcx, [rsp + 0x34]
lea r8d, [rdx + 0x10]
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0x30]
mov rcx, rsi
mov dword [rsp + 0x30], 0x14
mov dword [rsp + 0x34], 2
mov byte [rsp + 0x3c], bpl
call sub.wmpdui.dll_SetGadgetBufferInfo
mov r8d, edi
mov edx, r12d
mov rcx, rbx
call fcn.10005d230
jmp 0x10005734e
mov edx, ecx
sub edx, 0x27
je 0x10005704f
sub edx, 3
je 0x100056fe3
sub edx, 2
je 0x100056fc4
sub edx, esi
je 0x100056fb0
sub edx, esi
je 0x100056f34
sub edx, esi
je 0x100056f1d
sub edx, 6
je 0x100056e44
cmp edx, 5
jne 0x100057356
mov rdx, r14
mov rcx, rbx
call fcn.1000576fc
jmp 0x100057356
cmp ecx, 0x35
jne 0x100056e5c
mov eax, dword [rbx + 0x8c]
movzx esi, byte [r14 + 8]
shr eax, 2
and eax, 7
jmp 0x100056e6a
movzx esi, byte [rbx + 0x89]
mov eax, dword [r14 + 8]
and esi, 1
mov r8d, ebp
mov edi, ebp
cmp esi, ebp
je 0x100056e98
mov edi, 4
test al, 2
je 0x100056e85
mov edi, 0x24
lea r8d, [rdi - 0x22]
test al, 1
je 0x100056e90
or r8d, 0xc
or edi, 0x40
test al, 4
je 0x100056e98
bts edi, 0x11
mov rcx, qword [rbx + 8]
xor edx, edx
call sub.wmpdui.dll_SetGadgetMessageFilter
mov rcx, qword [rbx + 8]
mov r8d, 0x20064
mov edx, edi
call sub.wmpdui.dll_SetGadgetStyle
test byte [rbx + 0x88], 0x80
je 0x100057356
lea rdx, [0x100008528]
xor r8d, r8d
mov rcx, rbx
call fcn.100055880
mov edx, dword [rax]
mov edi, dword [rax + 8]
mov ecx, edx
and ecx, 0xffffff80
cmp ecx, 0xffffff80
je 0x100056f02
mov ecx, edx
not edx
and ecx, 0xffffff80
and edx, 0x7f
dec ecx
xor ecx, edx
mov dword [rax], ecx
test ecx, 0xffffff80
jne 0x100056f02
mov rcx, rax
call fcn.100059224
cmp esi, ebp
jne 0x100056f0b
or edi, 1
jmp 0x100056f0e
and edi, 0xfffffffe
mov edx, edi
mov rcx, rbx
call fcn.1000532f8
jmp 0x100057356
test byte [rbx + 0x88], 0x80
je 0x100057356
mov ecx, 0x800e
jmp 0x100056fd6
test byte [rbx + 0x88], 0x80
je 0x100056f4a
mov rdx, rbx
mov ecx, 0x800d
call fcn.100060288
lea rdx, [0x1000087c8]
xor r8d, r8d
mov rcx, rbx
call fcn.100055880
mov edx, dword [rax]
mov dil, byte [rax + 8]
mov ecx, edx
and ecx, 0xffffff80
cmp ecx, 0xffffff80
je 0x100056f8c
mov ecx, edx
not edx
and ecx, 0xffffff80
and edx, 0x7f
sub ecx, esi
xor ecx, edx
mov dword [rax], ecx
test ecx, 0xffffff80
jne 0x100056f8c
mov rcx, rax
call fcn.100059224
cmp dil, bpl
je 0x100057356
mov rax, qword [rbx]
or byte [rbx + 0x8b], 0x10
mov rdx, rbx
mov rcx, rbx
call qword [rax + 0xe0]
jmp 0x100057356
test byte [rbx + 0x88], 0x80
je 0x100057356
mov ecx, 0x800c
jmp 0x100056fd6
test byte [rbx + 0x88], 0x80
je 0x100057356
mov ecx, 0x800a
mov rdx, rbx
call fcn.100060288
jmp 0x100057356
cmp byte [r14 + 8], bpl
je 0x100057356
test byte [rbx + 0x8c], 8
je 0x100057356
lea rdx, [0x100008528]
xor r8d, r8d
mov rcx, rbx
call fcn.100055880
mov edx, dword [rax]
mov edi, dword [rax + 8]
mov ecx, edx
and ecx, 0xffffff80
cmp ecx, 0xffffff80
je 0x10005703b
mov ecx, edx
not edx
and ecx, 0xffffff80
and edx, 0x7f
sub ecx, esi
xor ecx, edx
mov dword [rax], ecx
test ecx, 0xffffff80
jne 0x10005703b
mov rcx, rax
call fcn.100059224
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0xf8]
cmp al, bpl
jmp 0x100056cae
mov edx, 0xf000
test dword [r15 + 8], edx
je 0x100057068
test dword [r14 + 8], edx
jne 0x100057068
mov rcx, rbx
call fcn.10005d804
mov edi, 0xf00
test dword [r15 + 8], edi
je 0x100057356
test dword [r14 + 8], edi
jne 0x100057356
mov edx, edi
mov rcx, rbx
call fcn.10005d804
jmp 0x100057356
mov rax, qword [rdx + 0x28]
mov ecx, dword [rax + 0xc]
cmp ecx, ebp
je 0x10005716a
cmp ecx, 0x12
je 0x100057356
cmp ecx, 0x14
jne 0x100057356
mov eax, dword [r14]
xor r8d, r8d
lea rdx, [0x1000087c8]
and eax, 0x3f
mov rcx, rbx
cmp al, 0x3f
je 0x100057115
call fcn.100055880
mov edx, dword [rax]
mov dil, byte [rax + 8]
mov ecx, edx
and ecx, 0xffffff80
cmp ecx, 0xffffff80
je 0x1000570fd
mov ecx, edx
not edx
and ecx, 0xffffff80
and edx, 0x7f
sub ecx, esi
xor ecx, edx
mov dword [rax], ecx
test ecx, 0xffffff80
jne 0x1000570fd
mov rcx, rax
call fcn.100059224
cmp dil, bpl
je 0x100057356
or byte [rbx + 0x8b], 0x10
mov r8d, 3
jmp 0x100057156
call fcn.100055880
mov edx, dword [rax]
mov dil, byte [rax + 8]
mov ecx, edx
and ecx, 0xffffff80
cmp ecx, 0xffffff80
je 0x10005714a
mov ecx, edx
not edx
and ecx, 0xffffff80
and edx, 0x7f
sub ecx, esi
xor ecx, edx
mov dword [rax], ecx
test ecx, 0xffffff80
jne 0x10005714a
mov rcx, rax
call fcn.100059224
cmp dil, bpl
je 0x100057356
xor r8d, r8d
mov rax, qword [rbx]
mov rdx, rbx
mov rcx, rbx
call qword [rax + 0xe8]
jmp 0x100057356
mov rbp, qword [r9 + 8]
mov rsi, qword [r14 + 8]
xor r12d, r12d
xor r13d, r13d
xor r10d, r10d
mov qword [rsp + 0x90], rbx
test rbp, rbp
je 0x10005720f
test byte [rbp + 0x89], 4
je 0x1000571ac
lea rdx, [0x100007400]
xor r8d, r8d
mov rcx, rbp
call fcn.100055880
mov rdi, rax
jmp 0x1000571b6
mov rax, qword [0x100007428]
mov rdi, qword [rax]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1000571d6
mov rax, qword [rcx]
lea r8, [rsp + 0x90]
mov r9d, 1
mov rdx, rbp
call qword [rax + 0x18]
mov ecx, dword [rdi]
mov eax, ecx
and eax, 0xffffff80
cmp eax, 0xffffff80
je 0x100057201
mov eax, ecx
not ecx
and eax, 0xffffff80
and ecx, 0x7f
dec eax
xor eax, ecx
mov dword [rdi], eax
test eax, 0xffffff80
jne 0x100057201
mov rcx, rdi
call fcn.100059224
mov rcx, rbp
xor r10d, r10d
call fcn.10005fb00
mov r13, rax
test rsi, rsi
je 0x100057304
mov rcx, rbx
call fcn.10005337c
mov rdi, rax
test rax, rax
je 0x10005725c
cmp dword [rbx + 0x70], 0xfffffffe
je 0x10005725c
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x100057245
mov r9b, 1
xor r8d, r8d
mov rdx, rbx
call fcn.10005862c
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x10005725c
mov r9b, 1
xor r8d, r8d
mov rdx, rbx
call fcn.10005862c
test byte [rsi + 0x89], 4
je 0x10005727c
lea rdx, [0x100007400]
xor r8d, r8d
mov rcx, rsi
call fcn.100055880
mov rdi, rax
jmp 0x100057286
mov rax, qword [0x100007428]
mov rdi, qword [rax]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1000572a6
mov rax, qword [rcx]
lea r8, [rsp + 0x90]
mov r9d, 1
mov rdx, rsi
call qword [rax + 0x10]
mov ecx, dword [rdi]
mov eax, ecx
and eax, 0xffffff80
cmp eax, 0xffffff80
je 0x1000572d1
mov eax, ecx
not ecx
and eax, 0xffffff80
and ecx, 0x7f
dec eax
xor eax, ecx
mov dword [rdi], eax
test eax, 0xffffff80
jne 0x1000572d1
mov rcx, rdi
call fcn.100059224
mov r10, qword [rsi + 8]
mov rcx, rsi
call fcn.10005fb00
test byte [rbx + 0x8b], 2
mov r12, rax
je 0x1000572f1
mov rcx, rsi
call fcn.100053eec
mov edx, dword [rbx + 0x8c]
and edx, 3
je 0x100057304
mov rcx, rsi
call fcn.100053f34
mov rcx, qword [rbx + 8]
mov r9d, 3
xor r8d, r8d
mov rdx, r10
call sub.wmpdui.dll_SetGadgetParent
cmp r13, r12
je 0x100057346
test r13, r13
je 0x100057332
mov rax, qword [rbx]
mov rdx, r13
mov rcx, rbx
call qword [rax + 0xd8]
test r12, r12
je 0x100057346
mov rax, qword [rbx]
mov rdx, r12
mov rcx, rbx
call qword [rax + 0xd0]
mov r13d, dword [rsp + 0xa0]
mov r12, qword [rsp + 0x98]
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x100057392
mov rsi, qword [rax]
mov edi, 1
jmp 0x10005738d
mov rax, qword [rbx + 0x38]
mov r9d, r13d
mov r8, r12
mov rcx, qword [rax + rdi*8]
mov rdx, rbx
mov qword [rsp + 0x28], r14
mov rax, qword [rcx]
mov qword [rsp + 0x20], r15
call qword [rax + 0x18]
inc rdi
cmp rdi, rsi
jbe 0x100057369
mov rbx, qword [rsp + 0xa8]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret