Function at 0x43ce14
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x54
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x38], edx
mov byte [ebp - 0x60], 0x81
mov byte [ebp - 0x54], 0x81
mov dl, 0x81
mov dword [ebp - 0x34], ecx
add eax, esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], eax
call 0x43c6cf
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
mov ecx, ebx
mov ebx, dword [ebp - 0x2c]
shl ebx, 0x10
mov dword [ebp - 0x10], ebx
mov ebx, ecx
mov ecx, dword [ebp - 0x14]
jmp 0x43c73e
mov ecx, ebx
mov edx, 0x46404a
push 0x12f
push 0x4641b9
push 0x11f
push 0x46409a
push 0x28
call fcn.00409d40
add esp, 0x14
test al, al
je 0x43c8d7
movzx eax, word [ebp - 0x30]
mov edi, ebx
shr ebx, 0x10
mov dl, pe_nt_image_headers32
shl edi, 0x10
or ebx, dword [ebp - 0x10]
or edi, eax
movzx eax, byte [ebp - 0x21]
mov dh, al
movzx eax, byte [ebp - 0x20]
mov ecx, eax
movzx eax, byte [ebp - 0x1f]
cmp dl, 0x81
je 0x43c754
cmp dl, 0x80
je 0x43ca1e
cmp al, cl
jb 0x43ca59
test esi, esi
je 0x43cab5
cmp esi, dword [ebp - 0x40]
je 0x43cab5
movzx ebx, byte [esi]
test bl, bl
js 0x43c780
inc esi
cmp ebx, 0x27
ja 0x43c7e0
mov eax, dword [ebx*4 + 0x43cad0]
add eax, dword [ebp - 0x3c]
jmp eax
movzx edx, byte [esi + 1]
mov eax, ebx
and eax, 0x1f
and edx, 0x3f
cmp bl, 0xdf
jbe 0x43c7d0
movzx ecx, byte [esi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x43c8bf
movzx ebx, byte [esi + 3]
and eax, 7
shl ecx, 6
shl eax, 0x12
and ebx, 0x3f
or ebx, ecx
or ebx, eax
cmp ebx, 0x110000
je 0x43cab5
add esi, 4
cmp ebx, 0x27
jbe 0x43c772
jmp 0x43c7e0
shl eax, 6
add esi, 2
or eax, edx
mov ebx, eax
cmp ebx, 0x27
jbe 0x43c772
nop
cmp ebx, 0x5c
je 0x43c9d1
mov ecx, ebx
call fcn.00409c40
test al, al
jne 0x43c8d7
cmp ebx, 0x20
jb 0x43c8d7
cmp ebx, 0x7f
jb 0x43c71b
cmp ebx, 0x10000
jb 0x43c6ee
cmp ebx, 0x20000
jae 0x43c850
mov ecx, ebx
mov edx, 0x463d6c
push 0x1c2
push 0x463e88
push 0xc4
push str._f__NO
push 0x2c
call fcn.00409d40
add esp, 0x14
test al, al
jne 0x43c71b
jmp 0x43c8d7
lea eax, [ebx - 0xe01f0]
cmp eax, 0x2fe10
jb 0x43c8d7
movd xmm0, ebx
movdqa xmm1, xmmword [0x4632e0]
pshufd xmm0, xmm0, 0
paddd xmm0, xmmword [0x4632c0]
pxor xmm0, xmmword [0x4632d0]
pcmpgtd xmm1, xmm0
movmskps eax, xmm1
test al, al
jne 0x43c8d7
lea eax, [ebx - 0x3134b]
cmp eax, 5
jb 0x43c8d7
lea eax, [ebx - 0x323b0]
cmp eax, 0xadd50
jb 0x43c8d7
mov eax, ebx
and eax, 0xffffffe0
cmp eax, 0x2a6e0
je 0x43c8d7
mov eax, ebx
and eax, 0xfffffffe
cmp eax, 0x2b81e
jne 0x43c71b
jmp 0x43c8d7
shl eax, 0xc
add esi, 3
or ecx, eax
mov ebx, ecx
cmp ebx, 0x27
jbe 0x43c772
jmp 0x43c7e0
mov eax, ebx
mov byte [ebp - 0x1c], 0
mov word [ebp - 0x1e], 0
mov byte [ebp - 0x15], 0x7d
mov dl, 0xa
shr eax, 0x14
mov dword [ebp - 0x14], edx
movzx eax, byte [eax + str.0123456789abcdefBorrowErrorBorrowMutErroralready_borrowed:]
mov byte [ebp - 0x1b], al
mov eax, ebx
shr eax, 0x10
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefBorrowErrorBorrowMutErroralready_borrowed:]
mov byte [ebp - 0x1a], al
mov eax, ebx
shr eax, 0xc
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefBorrowErrorBorrowMutErroralready_borrowed:]
mov byte [ebp - 0x19], al
mov eax, ebx
shr eax, 8
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefBorrowErrorBorrowMutErroralready_borrowed:]
mov byte [ebp - 0x18], al
mov eax, ebx
shr eax, 4
and eax, 0xf
movzx eax, byte [eax + str.0123456789abcdefBorrowErrorBorrowMutErroralready_borrowed:]
mov byte [ebp - 0x17], al
mov eax, ebx
or ebx, 1
and eax, 0xf
bsr ecx, ebx
movzx eax, byte [eax + str.0123456789abcdefBorrowErrorBorrowMutErroralready_borrowed:]
xor ecx, 0x1c
shr ecx, 2
mov byte [ebp - 0x16], al
mov byte [ebp + ecx - 0x1e], 0x7b
mov word [ebp + ecx - 0x20], 0x755c
lea eax, [ecx - 2]
movzx ecx, word [ebp - 0x1e]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x18]
mov ebx, edi
shrd ebx, ecx, 0x10
shr ecx, 0x10
jmp 0x43c9e9
mov al, 2
xor ecx, ecx
mov dword [ebp - 0x14], eax
mov ah, 0x5c
mov al, ah
nop dword [eax]
xor ebx, ebx
mov dword [ebp - 0x10], eax
xor edi, edi
xor eax, eax
mov dword [ebp - 0x2c], ecx
shld ecx, ebx, 0x10
mov dword [ebp - 0x30], edi
shl ebx, 0x10
movzx edi, di
mov byte [ebp - 0x1f], al
or edi, ebx
mov ebx, dword [ebp - 0x10]
mov dl, bh
mov edx, dword [ebp - 0x14]
mov byte [ebp - 0x20], dl
mov edx, eax
cmp bl, 0x81
mov edx, ebx
mov byte [ebp - 0x21], bh
jne 0x43c6de
jmp 0x43cab5
mov eax, ebx
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x28], 0
mov ch, dl
shld eax, edi, 0x10
xor edi, edi
mov cl, dl
mov dword [ebp - 0x10], ecx
jmp 0x43ca96
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x10]
inc al
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
movzx ecx, al
cmp al, 0xa
mov eax, dword [ebp - 0x14]
mov byte [ebp - 0x55], al
mov eax, edi
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x60], dl
mov dword [ebp - 0x48], esi
mov byte [ebp - 0x5f], dh
mov dword [ebp - 0x5e], edi
mov dword [ebp - 0x5a], ebx
mov byte [ebp - 0x56], al
jae 0x43cabf
movzx eax, byte [ebp + ecx - 0x60]
mov dword [ebp - 0x10], edx
push eax
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
call dword [eax + 0x10]
add esp, 8
test al, al
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
je 0x43c6dc
mov al, 1
jmp 0x43cab7
xor eax, eax
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, 0xa
push 0x465abc
call fcn.00407200
nop
mov ah, 2
add byte [eax], al
sbb al, byte [ecx]
add byte [eax], al
sbb al, byte [ecx]
add byte [eax], al
sbb al, byte [ecx]
add byte [eax], al
sbb al, byte [ecx]
add byte [eax], al
sbb al, byte [ecx]
add byte [eax], al
sbb al, byte [ecx]
add byte [eax], al
sbb al, byte [ecx]
add byte [eax], al
sbb al, byte [ecx]
add byte [eax], al
rol dword [edx], 0
add dh, cl
add al, byte [eax]
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add bl, bl
add al, byte [eax]
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add al, ch
add al, byte [eax]
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add byte [edx], bl
add dword [eax], eax
add ch, dh
add al, byte [eax]
add byte [ebp - 0x77], dl
in eax, 0x53
push edi
push esi
sub esp, 0x2c
mov edx, dword [ebp + 0x14]
call 0x43cb81
pop eax
mov dword [ebp - 0x20], eax
test edx, edx
je 0x43cd4b
mov eax, dword [ebp + 0x10]
lea esi, [edx - 1]
lea edi, [edx*8]
xor ecx, ecx
and esi, 0x1fffffff
inc esi
nop word cs:[eax + eax]
nop dword [eax]
cmp dword [eax + ecx*8], 0
jne 0x43cbbe
inc ecx
add edi, 0xfffffff8
jne 0x43cbb0
mov ecx, esi
mov esi, edx
sub esi, ecx
jb 0x43cdd2
je 0x43cd4b
lea edi, [eax + ecx*8]
jmp 0x43cbfc
push ebx
push 0
push dword [0x4760c0]
call sub.kernel32.dll_HeapFree
push dword [ebp - 0x1c]
push 0
push dword [0x4760c0]
call sub.kernel32.dll_HeapFree
mov esi, dword [ebp - 0x10]
test esi, esi
je 0x43cd4b
mov dword [ebp - 0x10], esi
lea esi, [esi*8]
lea ecx, [edi - 8]
mov edx, esi
nop dword [eax + eax]
test edx, edx
je 0x43cc30
mov eax, dword [ecx + 8]
add ecx, 8
add edx, 0xfffffff8
test eax, eax
je 0x43cc10
mov ebx, dword [ecx + 4]
jmp 0x43cc37
mov ebx, str.Index_out_of_bounds
xor eax, eax
lea ecx, [ebp - 0x18]
mov edx, 0xfffffff4
push dword [ebp + 0xc]
push eax
push ebx
call fcn.0041a0b0
add esp, 0xc
movzx eax, byte [ebp - 0x18]
cmp eax, 4
jne 0x43ccb0
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x43cd59
mov eax, dword [ebp - 0x10]
xor ecx, ecx
lea edx, [eax - 1]
mov eax, ebx
and edx, 0x1fffffff
inc edx
nop word cs:[eax + eax]
nop dword [eax + eax]
sub eax, dword [edi + ecx*8]
jb 0x43cc91
inc ecx
add esi, 0xfffffff8
mov ebx, eax
jne 0x43cc80
mov ebx, eax
mov ecx, edx
mov edx, dword [ebp - 0x10]
mov esi, edx
sub esi, ecx
jb 0x43cd68
lea edi, [edi + ecx*8]
jne 0x43cce0
test ebx, ebx
je 0x43ccc8
jmp 0x43cd72
mov eax, dword [eax*4 + 0x43ce14]
mov esi, dword [ebp - 0x10]
add eax, dword [ebp - 0x20]
jmp eax
movzx eax, byte [ebp - 0x18]
cmp al, 4
je 0x43cbf4
jmp 0x43ccfb
mov eax, dword [edi]
sub eax, ebx
jb 0x43cda2
mov dword [edi], eax
add dword [edi + 4], ebx
movzx eax, byte [ebp - 0x18]
cmp al, 4
je 0x43cbf4
cmp al, 3
jne 0x43cbf4
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], esi
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi]
mov ebx, ecx
push ecx
call eax
add esp, 4
cmp dword [esi + 4], 0
je 0x43cbe1
cmp dword [esi + 8], 9
jb 0x43cbd3
mov ebx, dword [ebx - 4]
jmp 0x43cbd3
mov eax, dword [ebp + 8]
mov byte [eax], 4
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
mov byte [eax], 2
mov dword [eax + 4], 0x46809c
jmp 0x43cd51
push 0x466748
call fcn.004071a0
mov dword [ebp - 0x38], 0x466730
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], str.Index_out_of_bounds
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x38]
mov edx, 0x466738
call fcn.00407170
mov dword [ebp - 0x38], str.advancing_IoSlice_beyond_its_length
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], str.Index_out_of_bounds
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x38]
mov edx, 0x467310
call fcn.00407170
push 0x466748
call fcn.004071a0
cmp dword [esi + 4], 0
mov edi, eax
je 0x43cdfb
cmp dword [esi + 8], 9
jb 0x43cded
mov ebx, dword [ebx - 4]
push ebx
push 0
push dword [0x4760c0]
call sub.kernel32.dll_HeapFree
push dword [ebp - 0x1c]
push 0
push dword [0x4760c0]
call sub.kernel32.dll_HeapFree
push edi
call fcn.004558c0
nop dword [eax]
mov esp, 0xb6000001
add dword [eax], eax
add byte [esi], bh
add dword [eax], eax
add byte [esi], bh
add dword [eax], eax
add byte [esi + 0x2e], ah
nop dword [eax + eax]
nop