Function at 0x1003abf0
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
sub esp, 0xcc
mov eax, dword [esp + 0xe0]
push ebx
mov ebx, dword [esp + 0xd4]
push ebp
xor ebp, ebp
mov dword [eax], ebp
mov eax, dword [ebx + 0x30]
cmp eax, 0xa029a697
mov dword [esp + 0xc], ebp
jne 0x1003ac6f
cmp dword [ebx], ebp
push esi
mov dword [ebx + 0x30], 0xf03b7906
push edi
jle 0x1003acfb
mov dword [esp + 0x10], ebp
lea ecx, [ecx]
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x10]
mov esi, dword [edx + ecx + 4]
test esi, esi
je 0x1003aceb
cmp dword [0x100593bc], 0
mov edi, dword [esi + 4]
jne 0x1003aca8
add dword [0x100593b8], 1
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
mov dword [0x100592a0], eax
jne 0x1003ac95
sub dword [0x100593b8], 1
jmp 0x1003acb8
cmp eax, 0xf03b7906
jne 0x1003ac87
mov dword [ebx + 0x30], 0xb5357930
mov dword [ebx + 0x98], 1
pop ebp
mov eax, 0x15
pop ebx
add esp, 0xcc
ret
mov ecx, 1
sub dword [0x100593b8], ecx
mov dword [0x100593bc], ecx
jmp 0x1003acad
mov eax, dword [0x100592a0]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
jne 0x1003acbd
mov eax, 0x10050120
cmp byte [eax + 4], 0
je 0x1003aceb
mov eax, dword [edi + 0x40]
test eax, eax
je 0x1003aceb
lea ebx, [ebx]
cmp dword [eax], esi
je 0x1003ace4
cmp dword [eax + 4], 1
jne 0x1003ace4
cmp byte [eax + 8], 1
jne 0x1003ad67
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x1003acd0
add dword [esp + 0x10], 0x18
add ebp, 1
cmp ebp, dword [ebx]
jl 0x1003ac30
push 0xc4
lea eax, [esp + 0x1c]
push 0
push eax
call fcn.10041850
mov eax, dword [esp + 0xf4]
mov edi, dword [esp + 0xf0]
add esp, 0xc
test eax, eax
mov dword [esp + 0x18], ebx
jl 0x1003adc3
cmp byte [edi + eax], 0
je 0x1003adc3
push eax
push edi
call fcn.1000ad70
lea ecx, [esp + 0x1c]
push ecx
mov esi, eax
lea edx, [esp + 0x24]
push esi
push edx
call fcn.1003a830
sub edi, esi
add dword [esp + 0xcc], edi
add esp, 0x14
test esi, esi
je 0x1003add6
push esi
call fcn.100417c0
add esp, 4
jmp 0x1003add6
mov ecx, dword [ebx + 4]
lea eax, [ebp + ebp*2]
mov edx, dword [ecx + eax*8]
push edx
push str.database_schema_is_locked:__s
push 6
push ebx
call fcn.10017510
add esp, 0x10
cmp dword [ebx + 0x30], 0xf03b7906
jne 0x1003ada2
pop edi
pop esi
pop ebp
mov dword [ebx + 0x30], 0xa029a697
mov eax, 6
pop ebx
add esp, 0xcc
ret
pop edi
pop esi
pop ebp
mov dword [ebx + 0x30], 0xb5357930
mov dword [ebx + 0x98], 1
mov eax, 6
pop ebx
add esp, 0xcc
ret
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push edi
push ecx
call fcn.1003a830
add esp, 0xc
cmp dword [0x100593ac], 0
je 0x1003adef
cmp dword [0x100593b8], 0
jle 0x1003adef
mov eax, 7
jmp 0x1003adfa
mov eax, dword [esp + 0x1c]
cmp eax, 0x65
jne 0x1003adfe
xor eax, eax
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x2a], 0
je 0x1003ae20
push ebx
call fcn.1002c910
add esp, 4
test eax, eax
jne 0x1003ae1c
mov dword [esp + 0x1c], 0x11
jmp 0x1003ae25
mov eax, dword [esp + 0x1c]
cmp eax, 0x11
jne 0x1003ae34
push 0
push ebx
call fcn.1001a400
mov eax, dword [esp + 0x24]
add esp, 8
cmp dword [0x100593ac], 0
je 0x1003ae4f
cmp dword [0x100593b8], 0
jle 0x1003ae4f
mov eax, 7
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0xf4]
test ecx, ecx
je 0x1003ae63
mov edx, dword [esp + 0xb8]
mov dword [ecx], edx
mov dword [esp + 0x10], eax
test eax, eax
mov eax, dword [esp + 0x24]
jne 0x1003b0aa
test eax, eax
je 0x1003b0aa
mov cl, byte [esp + 0x98]
test cl, cl
je 0x1003b0aa
cmp cl, 2
mov ebp, 2
jne 0x1003af61
mov ebx, 3
push ebx
push eax
call fcn.1000cf90
add esp, 8
cmp dword [0x100593ac], 0
mov edi, 0xa2
je 0x1003aebe
cmp dword [0x100593b8], 0
jg 0x1003aee7
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x34]
push esi
call fcn.10009c40
add esp, 4
mov dword [esi + 0x10], str.order
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1a], bl
mov dword [esi + 0x14], 5
mov word [esi + 0x18], di
cmp dword [0x100593ac], 0
je 0x1003aef9
cmp dword [0x100593b8], 0
jg 0x1003af25
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + 0x34]
add esi, 0x40
push esi
call fcn.10009c40
add esp, 4
mov dword [esi + 0x10], str.from
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1a], bl
mov dword [esi + 0x14], 4
mov word [esi + 0x18], di
cmp dword [0x100593ac], 0
je 0x1003af3b
cmp dword [0x100593b8], 0
jg 0x1003b0a6
mov edx, dword [esp + 0x24]
mov esi, dword [edx + 0x34]
add esi, 0x80
push esi
call fcn.10009c40
mov dword [esi + 0x10], str.detail
mov dword [esi + 0x14], 6
jmp 0x1003b098
push 5
push eax
call fcn.1000cf90
add esp, 8
cmp dword [0x100593ac], 0
mov ebx, 3
mov edi, 0xa2
je 0x1003af88
cmp dword [0x100593b8], 0
jg 0x1003afb1
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x34]
push esi
call fcn.10009c40
add esp, 4
mov dword [esi + 0x10], str.addr
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1a], bl
mov dword [esi + 0x14], 4
mov word [esi + 0x18], di
cmp dword [0x100593ac], 0
je 0x1003afc3
cmp dword [0x100593b8], 0
jg 0x1003afef
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + 0x34]
add esi, 0x40
push esi
call fcn.10009c40
add esp, 4
mov dword [esi + 0x10], str.opcode
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1a], bl
mov dword [esi + 0x14], 6
mov word [esi + 0x18], di
cmp dword [0x100593ac], 0
je 0x1003b001
cmp dword [0x100593b8], 0
jg 0x1003b02c
mov edx, dword [esp + 0x24]
mov esi, dword [edx + 0x34]
add esi, 0x80
push esi
call fcn.10009c40
add esp, 4
mov dword [esi + 0x10], 0x10055680
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1a], bl
mov dword [esi + 0x14], ebp
mov word [esi + 0x18], di
cmp dword [0x100593ac], 0
je 0x1003b03e
cmp dword [0x100593b8], 0
jg 0x1003b069
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x34]
add esi, 0xc0
push esi
call fcn.10009c40
add esp, 4
mov dword [esi + 0x10], 0x1005567c
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1a], bl
mov dword [esi + 0x14], ebp
mov word [esi + 0x18], di
cmp dword [0x100593ac], 0
je 0x1003b07b
cmp dword [0x100593b8], 0
jg 0x1003b0a6
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + 0x34]
add esi, 0x100
push esi
call fcn.10009c40
mov dword [esi + 0x10], 0x10055678
mov dword [esi + 0x14], ebp
mov word [esi + 0x18], di
mov byte [esi + 0x1a], bl
mov byte [esi + 0x1b], 1
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xe0]
cmp dword [ecx + 0x30], 0xf03b7906
jne 0x1003b0c3
mov dword [ecx + 0x30], 0xa029a697
jmp 0x1003b0dc
mov dword [ecx + 0x30], 0xb5357930
mov dword [ecx + 0x98], 1
mov dword [esp + 0x10], 0x15
cmp dword [esp + 0xec], 0
je 0x1003b115
mov ecx, dword [esp + 0xb8]
sub ecx, dword [esp + 0xe4]
test eax, eax
mov esi, eax
je 0x1003b115
mov edx, dword [esp + 0xe4]
push ecx
push edx
call fcn.1000ad70
mov dword [esi + 0x24c], eax
mov eax, dword [esp + 0x2c]
add esp, 8
cmp dword [esp + 0x10], 0
jne 0x1003b139
cmp dword [0x100593ac], 0
je 0x1003b12e
cmp dword [0x100593b8], 0
jg 0x1003b139
mov ecx, dword [esp + 0xf0]
mov dword [ecx], eax
jmp 0x1003b16e
test eax, eax
mov esi, eax
je 0x1003b16e
mov ecx, dword [eax + 0x50]
cmp ecx, 0xbdf20da3
je 0x1003b15c
cmp ecx, 0x519c2973
je 0x1003b15c
cmp ecx, 0x26bceaa5
je 0x1003b165
jmp 0x1003b16e
push eax
call fcn.10032950
add esp, 4
push esi
call fcn.100226f0
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xe0]
je 0x1003b1a4
push eax
push 0x1005364c
push esi
push edi
call fcn.10017510
mov eax, dword [esp + 0x24]
add esp, 0x10
test eax, eax
je 0x1003b1b0
push eax
call fcn.100417c0
add esp, 4
jmp 0x1003b1b0
push 0
push esi
push edi
call fcn.10017510
add esp, 0xc
cmp dword [0x100593ac], 0
je 0x1003b1e5
cmp dword [0x100593b8], 0
jle 0x1003b1e5
sub dword [0x100593b8], 1
push 0
push 7
push edi
mov dword [0x100593ac], 0
call fcn.10017510
add esp, 0xc
mov esi, 7
mov edi, dword [edi + 0x10]
push 0xffffffffffffffff
call fcn.10003cc0
add esp, 4
mov eax, edi
pop edi
and eax, esi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret