Function at 0x66025e9e
Capabilities:
Get thread local storage value

Disassembly:
push ebx
mov bx, word [esp + 0xc]
push esi
cmp bx, 0x100
push edi
jge 0x660434ff
push dword [0x6610feb0]
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 0x66025ed5
cmp word [eax], 0
jne 0x66025ef3
cmp edi, ecx
je 0x66025efd
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 0x66025ecf
jmp 0x66025ed5
lea eax, [ecx + 8]
lea eax, [eax + eax*2]
shl eax, 2
push eax
push edx
call fcn.66025f3e
test eax, eax
mov dword [esi + 8], eax
je 0x66025eed
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 0x66025ed9
sub ecx, edi
inc ecx
and word [edx], 0
add edx, 0xc
dec ecx
je 0x66025ed9
jmp 0x66025f32
movzx eax, word [edi]
cmp eax, 9
jg 0x6604361a
je 0x6604360a
test eax, eax
je 0x66043611
cmp eax, 1
je 0x660435b9
jle 0x66043634
cmp eax, 6
jle 0x66043645
cmp eax, 7
je 0x66043559
cmp eax, 8
jne 0x66043634
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x66043613
mov esi, dword [ebx - 4]
shr esi, 1
xor eax, eax
cmp ebx, eax
je 0x66026129
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 0x66026140
push esi
push dword [ebp + 8]
call fcn.6602618c
test eax, eax
jne 0x660437f1
cmp dword [ebp + 0xc], 2
je 0x66043808
push esi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.660261a0
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
cmp dword [ebp + 0x14], 2
jne 0x660438a3
push 2
push 0x6602f930
push ebx
push edi
call fcn.660261a0
mov ecx, dword [ebp - 8]
cmp word [ecx], 0
jne 0x66026185
pop edi
pop esi
pop ebx
leave
ret 0x10
call sym.MSVBVM60.DLL___vbaFreeVar
jmp 0x6602617e
call fcn.660144fa
test eax, eax
je 0x66025eb1
push 5
call fcn.66025592
push 0x34
call fcn.66025592
push eax
call fcn.66025592
push 0x34
call fcn.66025592
push ebx
xor eax, eax
push 3
push eax
push eax
push eax
push eax
push dword [edi + 8]
call fcn.660df16b
cmp dword [ebp + 0xc], 0
mov dword [ebp + 0x10], ebx
je 0x66043551
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0xffffffff
jne 0x66043551
push 0x39
call fcn.66025592
mov edi, dword [ebp + 0x10]
jmp 0x660260c1
cmp dword [ebp + 0xc], 2
jne 0x6604357d
lea eax, [ebp - 0x5c]
push eax
push edi
call fcn.660dd28b
lea eax, [ebp - 0x5c]
push eax
call fcn.66026741
pop ecx
mov esi, eax
lea ebx, [ebp - 0x5c]
jmp 0x66026115
push 8
push edi
push ebx
call fcn.660e58fd
lea edi, [ebx + 8]
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x66043694
xor esi, esi
cmp dword [ebp + 0xc], 2
je 0x660436a7
inc esi
push esi
push ebx
push edi
call dword [sym.imp.OLEAUT32.dll_SysFreeString]
test eax, eax
jne 0x6604369e
push 0xe
call fcn.66025592
cmp dword [ebp + 0xc], 2
je 0x660435f5
lea eax, [ebp - 0x84]
push 0x28
push eax
push 0x6601a650
push 0x8dac
call fcn.660df7cd
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 0x66043569
push 0x66055034
lea eax, [ebp - 0x5c]
push eax
call fcn.6601342c
pop ecx
pop ecx
jmp 0x66043569
push 0xd
call fcn.66025592
xor ebx, ebx
xor esi, esi
jmp 0x66026115
sub eax, 0xa
je 0x66043721
dec eax
je 0x660436af
sub eax, 3
je 0x66043645
sub eax, 3
je 0x66043645
push 8
push edi
push ebx
call fcn.660e58fd
mov ebx, dword [ebx + 8]
jmp 0x66026108
push 8
push edi
push ebx
call fcn.660e58fd
cmp dword [ebp + 0xc], 2
je 0x66043678
mov ecx, dword [ebx + 8]
lea eax, [ebx + 8]
cmp word [ecx], 0x2d
je 0x66043586
push eax
call fcn.660e5a4e
test eax, eax
je 0x66043586
push eax
call fcn.66025592
push esi
call fcn.660da488
movsx ax, byte [eax + 0xe]
push eax
push dword [ebx + 8]
call fcn.660e4df0
mov dword [ebx + 8], eax
jmp 0x66043586
mov esi, dword [ebx - 4]
shr esi, 1
jmp 0x66043596
mov ebx, dword [edi]
mov word [ebx + esi*2 - 2], 0x20
mov edi, dword [ebp + 0x10]
jmp 0x66026115
cmp word [edi + 8], 0
je 0x660436fc
cmp dword [ebp + 0xc], 2
je 0x660436f2
lea eax, [ebp - 0x84]
push 0x28
push eax
push 0x6601a650
push 0x8db0
call fcn.660df7cd
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 0x66043569
push 0x66055024
jmp 0x660435fa
cmp dword [ebp + 0xc], 2
je 0x66043717
lea eax, [ebp - 0x84]
push 0x28
push eax
push 0x6601a650
push 0x8dad
jmp 0x660436cf
push 0x66055014
jmp 0x660435fa
cmp dword [ebp + 0xc], 2
je 0x6604379c
lea eax, [ebp - 0x84]
push 0x28
push eax
push 0x6601a650
push 0x8dab
call fcn.660df7cd
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 0x66055000
push eax
call fcn.660eedac
mov esi, dword [edi + 8]
pop ecx
pop ecx
push esi
call fcn.66024c30
cmp eax, 0x1b8
jne 0x66043780
cmp esi, 0x800a01b8
jne 0x66043782
mov esi, eax
lea eax, [ebp - 4]
push eax
call fcn.660106d9
push eax
push esi
call fcn.660e5a18
test eax, eax
je 0x660437ae
push eax
call fcn.66025592
lea eax, [ebp - 0x5c]
push 0x66055004
push eax
call fcn.6601342c
pop ecx
pop ecx
jmp 0x66043758
push dword [ebp - 4]
lea eax, [ebp - 0x5c]
push eax
call fcn.660eedac
cmp dword [ebp + 0xc], 2
pop ecx
pop ecx
mov eax, 0x6602f9a8
jne 0x660437cc
mov eax, 0x66054ffc
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.66026741
pop ecx
lea eax, [ebp + eax*2 - 0x5c]
push eax
call fcn.6601342c
pop ecx
pop ecx
push dword [ebp - 4]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x66043569
push 2
push 0x6602f930
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.660261a0
jmp 0x66026140
mov ax, word [edi]
cmp ax, 8
je 0x6604381b
cmp ax, 0x2011
jne 0x6602614a
push esi
push 0x22
push ebx
mov dword [ebp - 4], ebx
mov dword [ebp + 0x10], esi
call fcn.660146d5
mov edi, dword [ebp + 8]
mov esi, 0x66054ff8
push 1
push esi
push dword [ebp + 0xc]
mov ebx, eax
push edi
call fcn.660261a0
test ebx, ebx
je 0x66043884
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.660261a0
push 1
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.660261a0
sub dword [ebp + 0x10], edi
mov dword [ebp - 4], ebx
push dword [ebp + 0x10]
push 0x22
push ebx
call fcn.660146d5
mov ebx, eax
test ebx, ebx
jne 0x66043844
mov edi, dword [ebp + 8]
push dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
push dword [ebp - 4]
push ebx
push edi
call fcn.660261a0
push 1
push esi
push ebx
push edi
call fcn.660261a0
jmp 0x6602615d
cmp ebx, 2
jne 0x660438b4
push 1
push 0x66054ff4
jmp 0x6602616e
cmp dword [ebp + 0x14], 0
jne 0x66026175
cmp ebx, 1
jne 0x660438f0
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.6602618c
test eax, eax
jne 0x66026167
push esi
push ebx
push edi
call fcn.660dd3af
jmp 0x66026175
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 0x66026175