Function at 0x660258e8
Capabilities:
Get thread local storage value

Disassembly:
push ebx
mov bx, word [esp + 0xc]
push esi
cmp bx, 0x100
push edi
jge 0x660437ab
push dword [0x6610ee98]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, dword [eax + 0x18]
xor edi, edi
movsx ecx, word [esi + 0xc]
mov edx, dword [esi + 8]
test ecx, ecx
mov eax, edx
jle 0x6602591f
cmp word [eax], 0
jne 0x6602593d
cmp edi, ecx
je 0x66025947
mov ecx, dword [esp + 0x10]
push 1
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x1c]
mov word [eax], bx
mov dword [eax + 8], ecx
pop eax
pop edi
pop esi
pop ebx
ret 0xc
add eax, 0xc
inc edi
cmp edi, ecx
jl 0x66025919
jmp 0x6602591f
lea eax, [ecx + 8]
lea eax, [eax + eax*2]
shl eax, 2
push eax
push edx
call fcn.66025988
test eax, eax
mov dword [esi + 8], eax
je 0x66025937
add word [esi + 0xc], 8
mov si, word [esi + 0xc]
lea ecx, [edi + edi*2]
lea eax, [eax + ecx*4]
movsx ecx, si
mov esi, edi
inc edi
cmp esi, ecx
mov edx, eax
jge 0x66025923
sub ecx, edi
inc ecx
and word [edx], 0
add edx, 0xc
dec ecx
je 0x66025923
jmp 0x6602597c
movzx eax, word [edi]
cmp eax, 9
jg 0x660438c6
je 0x660438b6
test eax, eax
je 0x660438bd
cmp eax, 1
je 0x66043865
jle 0x660438e0
cmp eax, 6
jle 0x660438f1
cmp eax, 7
je 0x66043805
cmp eax, 8
jne 0x660438e0
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x660438bf
mov esi, dword [ebx - 4]
shr esi, 1
xor eax, eax
cmp ebx, eax
je 0x66025b73
push eax
push eax
push eax
push eax
push esi
push ebx
push eax
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp dword [ebp + 0xc], 1
jne 0x66025b8a
push esi
push dword [ebp + 8]
call fcn.66025bd6
test eax, eax
jne 0x66043a9d
cmp dword [ebp + 0xc], 2
je 0x66043ab4
push esi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.66025bea
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
cmp dword [ebp + 0x14], 2
jne 0x66043b4f
push 2
push 0x6602f910
push ebx
push edi
call fcn.66025bea
mov ecx, dword [ebp - 8]
cmp word [ecx], 0
jne 0x66025bcf
pop edi
pop esi
pop ebx
leave
ret 0x10
call sym.MSVBVM60.DLL___vbaFreeVar
jmp 0x66025bc8
call fcn.6601440f
test eax, eax
je 0x660258fb
push 5
call fcn.66024fdc
push 0x34
call fcn.66024fdc
push eax
call fcn.66024fdc
push 0x34
call fcn.66024fdc
push ebx
xor eax, eax
push 3
push eax
push eax
push eax
push eax
push dword [edi + 8]
call fcn.660ddd03
cmp dword [ebp + 0xc], 0
mov dword [ebp + 0x10], ebx
je 0x660437fd
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0xffffffff
jne 0x660437fd
push 0x39
call fcn.66024fdc
mov edi, dword [ebp + 0x10]
jmp 0x66025b0b
cmp dword [ebp + 0xc], 2
jne 0x66043829
lea eax, [ebp - 0x5c]
push eax
push edi
call fcn.660dbdf6
lea eax, [ebp - 0x5c]
push eax
call fcn.6602618b
pop ecx
mov esi, eax
lea ebx, [ebp - 0x5c]
jmp 0x66025b5f
push 8
push edi
push ebx
call fcn.660e443d
lea edi, [ebx + 8]
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x66043940
xor esi, esi
cmp dword [ebp + 0xc], 2
je 0x66043953
inc esi
push esi
push ebx
push edi
call dword [sym.imp.OLEAUT32.dll_SysFreeString]
test eax, eax
jne 0x6604394a
push 0xe
call fcn.66024fdc
cmp dword [ebp + 0xc], 2
je 0x660438a1
lea eax, [ebp - 0x84]
push 0x28
push eax
push 0x6601a430
push 0x8dac
call fcn.660de31a
lea eax, [ebp - 0x5c]
push 0x28
push eax
lea eax, [ebp - 0x84]
push 0xffffffffffffffff
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x66043815
push 0x6605521c
lea eax, [ebp - 0x5c]
push eax
call fcn.6601333f
pop ecx
pop ecx
jmp 0x66043815
push 0xd
call fcn.66024fdc
xor ebx, ebx
xor esi, esi
jmp 0x66025b5f
sub eax, 0xa
je 0x660439cd
dec eax
je 0x6604395b
sub eax, 3
je 0x660438f1
sub eax, 3
je 0x660438f1
push 8
push edi
push ebx
call fcn.660e443d
mov ebx, dword [ebx + 8]
jmp 0x66025b52
push 8
push edi
push ebx
call fcn.660e443d
cmp dword [ebp + 0xc], 2
je 0x66043924
mov ecx, dword [ebx + 8]
lea eax, [ebx + 8]
cmp word [ecx], 0x2d
je 0x66043832
push eax
call fcn.660e458e
test eax, eax
je 0x66043832
push eax
call fcn.66024fdc
push esi
call fcn.660d9000
movsx ax, byte [eax + 0xe]
push eax
push dword [ebx + 8]
call fcn.660e3930
mov dword [ebx + 8], eax
jmp 0x66043832
mov esi, dword [ebx - 4]
shr esi, 1
jmp 0x66043842
mov ebx, dword [edi]
mov word [ebx + esi*2 - 2], 0x20
mov edi, dword [ebp + 0x10]
jmp 0x66025b5f
cmp word [edi + 8], 0
je 0x660439a8
cmp dword [ebp + 0xc], 2
je 0x6604399e
lea eax, [ebp - 0x84]
push 0x28
push eax
push 0x6601a430
push 0x8db0
call fcn.660de31a
lea eax, [ebp - 0x5c]
push 0x28
push eax
lea eax, [ebp - 0x84]
push 0xffffffffffffffff
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x66043815
push 0x6605520c
jmp 0x660438a6
cmp dword [ebp + 0xc], 2
je 0x660439c3
lea eax, [ebp - 0x84]
push 0x28
push eax
push 0x6601a430
push 0x8dad
jmp 0x6604397b
push 0x660551fc
jmp 0x660438a6
cmp dword [ebp + 0xc], 2
je 0x66043a48
lea eax, [ebp - 0x84]
push 0x28
push eax
push 0x6601a430
push 0x8dab
call fcn.660de31a
lea eax, [ebp - 0x5c]
push 0x28
push eax
lea eax, [ebp - 0x84]
push 0xffffffffffffffff
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x5c]
push 0x660551e8
push eax
call fcn.660ed80c
mov esi, dword [edi + 8]
pop ecx
pop ecx
push esi
call fcn.6602467a
cmp eax, 0x1b8
jne 0x66043a2c
cmp esi, 0x800a01b8
jne 0x66043a2e
mov esi, eax
lea eax, [ebp - 4]
push eax
call fcn.66010656
push eax
push esi
call fcn.660e4558
test eax, eax
je 0x66043a5a
push eax
call fcn.66024fdc
lea eax, [ebp - 0x5c]
push 0x660551ec
push eax
call fcn.6601333f
pop ecx
pop ecx
jmp 0x66043a04
push dword [ebp - 4]
lea eax, [ebp - 0x5c]
push eax
call fcn.660ed80c
cmp dword [ebp + 0xc], 2
pop ecx
pop ecx
mov eax, 0x6602f988
jne 0x66043a78
mov eax, 0x660551e4
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.6602618b
pop ecx
lea eax, [ebp + eax*2 - 0x5c]
push eax
call fcn.6601333f
pop ecx
pop ecx
push dword [ebp - 4]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x66043815
push 2
push 0x6602f910
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.66025bea
jmp 0x66025b8a
mov ax, word [edi]
cmp ax, 8
je 0x66043ac7
cmp ax, 0x2011
jne 0x66025b94
push esi
push 0x22
push ebx
mov dword [ebp - 4], ebx
mov dword [ebp + 0x10], esi
call fcn.660145ea
mov edi, dword [ebp + 8]
mov esi, 0x660551e0
push 1
push esi
push dword [ebp + 0xc]
mov ebx, eax
push edi
call fcn.66025bea
test ebx, ebx
je 0x66043b30
inc ebx
inc ebx
mov edi, ebx
sub edi, dword [ebp - 4]
sar edi, 1
push edi
push dword [ebp - 4]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.66025bea
push 1
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.66025bea
sub dword [ebp + 0x10], edi
mov dword [ebp - 4], ebx
push dword [ebp + 0x10]
push 0x22
push ebx
call fcn.660145ea
mov ebx, eax
test ebx, ebx
jne 0x66043af0
mov edi, dword [ebp + 8]
push dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
push dword [ebp - 4]
push ebx
push edi
call fcn.66025bea
push 1
push esi
push ebx
push edi
call fcn.66025bea
jmp 0x66025ba7
cmp ebx, 2
jne 0x66043b60
push 1
push 0x660551dc
jmp 0x66025bb8
cmp dword [ebp + 0x14], 0
jne 0x66025bbf
cmp ebx, 1
jne 0x66043b9c
mov eax, dword [edi + 0x2c]
push 0xe
pop esi
xor edx, edx
mov ecx, esi
div ecx
sub esi, edx
lea eax, [esi + 0xe]
push eax
push edi
call fcn.66025bd6
test eax, eax
jne 0x66025bb1
push esi
push ebx
push edi
call fcn.660dbf1a
jmp 0x66025bbf
mov eax, dword [edi]
lea ecx, [ebp - 0xc]
push ecx
push edi
call dword [eax + 0x14]
mov ecx, dword [ebp - 0xc]
push 0xe
mov eax, ecx
xor edx, edx
pop ebx
mov esi, dword [edi]
div ebx
sub ecx, edx
add ecx, ebx
push ecx
push edi
call dword [esi + 0x10]
jmp 0x66025bbf