Function at 0x10030a22
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x1010e2b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x108], ecx
push ebx
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x118], ebx
push esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x110], esi
push edi
mov edi, dword [ebp + 0xc]
test ecx, ecx
je 0x10030e64
test esi, esi
je 0x10076f77
test ebx, ebx
je 0x10076f77
mov dword [ebp - 0x114], 0
cmp edi, 2
jb 0x10030d7e
dec edi
imul edi, esi
add edi, ecx
mov dword [ebp - 0xfc], edi
lea ecx, [ecx]
mov eax, edi
xor edx, edx
sub eax, ecx
div esi
inc eax
cmp eax, 8
ja 0x10030b3d
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov edx, dword [0x1010f3b4]
mov esi, eax
mov eax, dword [0x1010e2c4]
mov dword [ebp - 0x10c], eax
mov ecx, dword [0x1010e2b0]
xor edx, dword [0x1010e2b0]
and ecx, 0x1f
ror edx, cl
mov dword [ebp - 0xfc], edx
cmp edx, 0xffffffff
je 0x10077028
test edx, edx
je 0x10076feb
push dword [ebp - 0x10c]
mov ecx, edx
call dword [0x10110268]
mov eax, dword [ebp - 0xfc]
call eax
push esi
mov dword [ebp - 0xfc], eax
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
cmp dword [ebp - 0xfc], 1
jne 0x10030a94
call fcn.1002dc80
mov ecx, dword [ebp - 0x108]
cmp edi, ecx
jbe 0x1007706e
mov eax, dword [ebp - 0x110]
add eax, ecx
lea ebx, [ebx]
mov esi, eax
mov ebx, ecx
cmp esi, edi
ja 0x10030ae5
mov ecx, dword [ebp - 0x118]
push ebx
push esi
call dword [0x10110268]
call dword [ebp - 0x118]
add esp, 8
test eax, eax
jle 0x10030ad5
mov ebx, esi
add esi, dword [ebp - 0x110]
cmp esi, edi
jbe 0x10030ab8
mov ecx, dword [ebp - 0x108]
mov esi, dword [ebp - 0x110]
mov edx, edi
cmp ebx, edi
jne 0x10030d8f
sub edi, esi
lea eax, [esi + ecx]
cmp edi, ecx
ja 0x10030ab0
mov ebx, dword [ebp - 0x118]
cmp dword [ebp - 0xfc], 1
jne 0x10030b12
call fcn.1002dce0
mov eax, dword [ebp - 0x114]
sub eax, 1
mov dword [ebp - 0x114], eax
js 0x10030d7e
mov ecx, dword [ebp + eax*4 - 0x80]
mov edi, dword [ebp + eax*4 - 0xf8]
mov dword [ebp - 0x108], ecx
jmp 0x10030a07
shr eax, 1
imul eax, esi
add eax, ecx
push eax
push ecx
mov ecx, ebx
mov dword [ebp - 0x100], eax
call dword [0x10110268]
call ebx
add esp, 8
test eax, eax
jg 0x10030dfd
push edi
push dword [ebp - 0x108]
mov ecx, ebx
call dword [0x10110268]
call ebx
add esp, 8
test eax, eax
jg 0x10030e4e
push edi
push dword [ebp - 0x100]
mov ecx, ebx
call dword [0x10110268]
call ebx
add esp, 8
test eax, eax
jg 0x10030de7
mov eax, dword [ebp - 0x108]
mov edx, dword [ebp - 0x100]
mov dword [ebp - 0x104], edi
jmp 0x10030bb0
cmp edx, eax
jbe 0x10030be3
add eax, esi
mov dword [ebp - 0x10c], eax
cmp eax, edx
jae 0x10030be3
push edx
push eax
mov ecx, ebx
call dword [0x10110268]
call ebx
mov edx, dword [ebp - 0x100]
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x10c]
jle 0x10030bb4
cmp edx, eax
ja 0x10030c14
add eax, esi
mov dword [ebp - 0x10c], eax
cmp eax, edi
ja 0x10030c0e
push edx
push eax
mov ecx, ebx
call dword [0x10110268]
call ebx
mov edx, dword [ebp - 0x100]
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x10c]
jle 0x10030be3
mov edx, dword [ebp - 0x100]
mov edi, dword [ebp - 0x104]
lea ebx, [ebx]
mov ecx, edi
sub edi, esi
mov dword [ebp - 0x104], ecx
cmp edi, edx
jbe 0x10030c4d
push edx
push edi
mov ecx, ebx
call dword [0x10110268]
call ebx
mov edx, dword [ebp - 0x100]
add esp, 8
test eax, eax
jg 0x10030c20
mov ecx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x10c]
cmp edi, eax
mov dword [ebp - 0x104], edi
mov edi, dword [ebp - 0xfc]
jae 0x10030d1a
cmp edx, ecx
jae 0x10030c80
jmp 0x10030c70
sub ecx, esi
mov dword [ebp - 0x104], ecx
cmp ecx, edx
ja 0x10030db7
mov edi, dword [ebp - 0x108]
sub ecx, esi
mov dword [ebp - 0x104], ecx
cmp ecx, edi
jbe 0x10030cb1
push edx
push ecx
mov ecx, ebx
call dword [0x10110268]
call ebx
mov edx, dword [ebp - 0x100]
add esp, 8
mov ecx, dword [ebp - 0x104]
test eax, eax
je 0x10030c86
mov edi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x104]
mov ecx, edi
mov edx, dword [ebp - 0x10c]
sub ecx, edx
sub eax, dword [ebp - 0x108]
cmp eax, ecx
jl 0x10030e17
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x108]
cmp ecx, eax
jae 0x10030d05
mov esi, dword [ebp - 0x114]
mov dword [ebp + esi*4 - 0x80], ecx
mov ecx, esi
mov esi, dword [ebp - 0x110]
mov dword [ebp + ecx*4 - 0xf8], eax
inc ecx
mov dword [ebp - 0x114], ecx
cmp edx, edi
jae 0x10030b12
mov ecx, edx
mov dword [ebp - 0x108], ecx
jmp 0x10030a10
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x11c], ecx
cmp eax, ecx
je 0x10030d69
mov edx, eax
mov ebx, ecx
sub edx, ecx
mov al, byte [ebx]
lea ebx, [ebx + 1]
mov cl, byte [ebx + edx - 1]
mov byte [ebx + edx - 1], al
mov byte [ebx - 1], cl
sub esi, 1
jne 0x10030d36
mov esi, dword [ebp - 0x110]
mov ebx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x104]
cmp edx, ecx
jne 0x10030bb0
mov edx, eax
mov dword [ebp - 0x100], edx
jmp 0x10030bb0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1005cc20
mov esp, ebp
pop ebp
ret
sub ebx, edi
mov al, byte [edx]
lea edx, [edx + 1]
mov cl, byte [edx + ebx - 1]
mov byte [edx + ebx - 1], al
mov byte [edx - 1], cl
sub esi, 1
jne 0x10030d91
mov esi, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x108]
jmp 0x10030af5
push edx
push ecx
mov ecx, ebx
call dword [0x10110268]
call ebx
mov edx, dword [ebp - 0x100]
add esp, 8
mov ecx, dword [ebp - 0x104]
test eax, eax
je 0x10030c70
cmp edx, ecx
jb 0x10030cb7
jmp 0x10030c80
mov ecx, dword [ebp - 0x100]
mov edx, edi
push esi
call fcn.10032791
add esp, 4
jmp 0x10030b99
mov edx, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x108]
push esi
call fcn.10032791
add esp, 4
jmp 0x10030b61
cmp edx, edi
jae 0x10030e33
mov eax, dword [ebp - 0x114]
mov dword [ebp + eax*4 - 0x80], edx
mov dword [ebp + eax*4 - 0xf8], edi
inc eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x108]
cmp ecx, eax
jae 0x10030b12
mov edi, eax
jmp 0x10030a07
mov ecx, dword [ebp - 0x108]
mov edx, edi
push esi
call fcn.10032791
add esp, 4
jmp 0x10030b7d
test edi, edi
je 0x100309de
jmp 0x10076eae
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ecx, dword [0x1010e2c0]
mov esi, eax
cmp ecx, 0xffffffff
je 0x10076edc
call fcn.10029fa0
mov edi, eax
test edi, edi
je 0x10076ed6
cmp edi, 0xffffffff
jne 0x10076f23
jmp 0x10076f5b
mov ecx, dword [0x1010e2c0]
or edx, 0xffffffff
call fcn.10032a89
test eax, eax
je 0x10076f5b
push 0x364
push 2
call sym.ucrtbase.dll__calloc_base
mov ecx, dword [0x1010e2c0]
mov edi, eax
add esp, 8
test edi, edi
je 0x10076f4a
mov edx, edi
call fcn.10032a89
test eax, eax
je 0x10076fd8
mov ecx, edi
call fcn.10031ad6
push 0
call sym.ucrtbase.dll__free_base
add esp, 4
test edi, edi
je 0x10076f5b
mov ecx, dword [0x1010e2c4]
call fcn.10029fa0
imul eax, eax, 0x364
push esi
add edi, eax
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
test edi, edi
je 0x10076f62
lea eax, [edi + 0x10]
jmp 0x10076f67
xor edx, edx
call fcn.10032a89
push 0
call sym.ucrtbase.dll__free_base
add esp, 4
push esi
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
mov eax, 0x1010eac0
mov dword [eax], 0x16
call sym.ucrtbase.dll__invalid_parameter_noinfo
jmp 0x10030d7e
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ecx, dword [0x1010e2c0]
mov esi, eax
cmp ecx, 0xffffffff
je 0x10076fa2
call fcn.10029fa0
mov edi, eax
test edi, edi
je 0x10076f9c
cmp edi, 0xffffffff
je 0x10076f5b
jmp 0x10076f23
mov ecx, dword [0x1010e2c0]
or edx, 0xffffffff
call fcn.10032a89
test eax, eax
je 0x10076f5b
push 0x364
push 2
call sym.ucrtbase.dll__calloc_base
mov ecx, dword [0x1010e2c0]
mov edi, eax
add esp, 8
test edi, edi
je 0x10076f4a
mov edx, edi
call fcn.10032a89
test eax, eax
jne 0x10076f12
mov ecx, dword [0x1010e2c0]
xor edx, edx
call fcn.10032a89
push edi
jmp 0x10076f53
mov eax, 0x10006a9c
mov dword [ebp - 0xfc], eax
mov ecx, dword [eax]
call fcn.10032fe0
test eax, eax
jne 0x10077039
mov eax, dword [ebp - 0xfc]
add eax, 4
mov dword [ebp - 0xfc], eax
cmp eax, 0x10006aa4
jne 0x10076ff6
push 0xffffffffffffffff
call fcn.10032d19
add esp, 4
mov ecx, 0x1010f3b4
xchg dword [ecx], eax
push dword [ebp - 0x10c]
call dword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TlsGetValue]
jmp 0x10030a79
push 0x10006aa4
push eax
call dword [sym.imp.api_ms_win_core_libraryloader_l1_1_0.dll_GetProcAddress]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x10077017
push eax
call fcn.10032d19
add esp, 4
mov ecx, 0x1010f3b4
xchg dword [ecx], eax
mov edx, dword [ebp - 0xfc]
test edx, edx
je 0x10077028
jmp 0x10030a63
mov esi, dword [ebp - 0x110]
jmp 0x10030b04