Function at 0x10027e25
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
cmp byte [ebp + 0x38], 0
push ebx
push esi
push edi
mov ebx, edx
mov edi, ecx
je 0x10028016
cmp byte [ebp + 0x1c], 0
je 0x10027fca
mov eax, dword [ebp + 8]
push 0
pop esi
cmp byte [eax], 0
je 0x10027f2a
mov dword [ebp - 0xc], 0x50bc
cmp dword [ebp - 0xc], 0x531e
jle 0x10027f05
push 0xb90
push 0x239f
push 0x41c
push 0x4ad
push 0x1a
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
mov edi, esi
mov dword [ebp - 8], esi
mov ebx, esi
mov dword [ebp - 4], esi
mov eax, edi
mov ecx, ebx
shl eax, cl
mov edi, esi
mov dword [ebp + 0x38], eax
mov ebx, esi
or eax, ebx
lea ecx, [ebp - 0x28]
or eax, edi
cdq
push edx
push eax
call fcn.10001a55
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10027eb5
mov eax, dword [eax]
push eax
call fcn.10046d34
pop ecx
push esi
push 1
lea ecx, [ebp - 0x28]
call fcn.10002133
mov eax, dword [ebp + 0x38]
inc ebx
cmp ebx, 0x52eb
jl 0x10027e9c
inc edi
cmp edi, 0x6d8d
jl 0x10027e9a
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 8]
inc ebx
mov dword [ebp - 4], ebx
cmp ebx, 0x2f73
jl 0x10027e8f
inc edi
mov dword [ebp - 8], edi
cmp edi, 0x7be6
jl 0x10027e8a
push 0x22d3
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push ecx
push esi
push 0x70f8
mov dl, 1
call fcn.10026786
add esp, 0xc
cmp dword [ebp - 0xc], 0x4fea
jge 0x10027f2a
push str.owmahkcy_hrnwdmqlf_dpmuvbo
call fcn.10046d34
pop ecx
mov dword [ebp - 0x10], 0x5b2f
cmp dword [ebp - 0x10], 0x5dc9
jle 0x10027fad
mov edi, esi
mov dword [ebp - 4], esi
mov dword [ebp + 0x38], edi
mov dword [ebp - 8], 0x2174
mov ebx, esi
mov ecx, esi
mov dword [ebp - 0xc], 0x1346
mov dword [ebp + 0x38], ecx
mov eax, edi
and eax, ecx
lea ecx, [ebp - 0x40]
cdq
push edx
push eax
call fcn.10001a55
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10027f70
mov eax, dword [eax]
push eax
call fcn.10046d34
pop ecx
push esi
push 1
lea ecx, [ebp - 0x40]
call fcn.10002133
mov ecx, dword [ebp + 0x38]
add ecx, ebx
dec dword [ebp - 0xc]
mov dword [ebp + 0x38], ecx
jne 0x10027f57
inc ebx
cmp ebx, 0x57e0
jl 0x10027f4b
dec edi
dec dword [ebp - 8]
jne 0x10027f49
mov edi, dword [ebp - 4]
inc edi
mov dword [ebp - 4], edi
cmp edi, 0xc5e
jl 0x10027f3f
cmp dword [ebp - 0x10], 0x5929
jge 0x10028080
push str.iflmiet_fwievzoj_stisafchd_bxyvuf_rwkdvayab_wauvatfap_kqjml_iptgystvm_ecmj_ocpdhlsp_lqdhr_oddumeizw_chqq
call fcn.10046d34
pop ecx
jmp 0x10028080
mov ecx, dword [ebp + 0x24]
xor esi, esi
cmp dword [ecx], esi
je 0x10027fd5
mov eax, dword [ecx]
mov edx, dword [ebp + 0x10]
cmp dword [edx], esi
jne 0x10027fe1
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [ecx]
mov eax, dword [ebp + 0x18]
cmp dword [eax], esi
jne 0x10027ff1
mov eax, dword [ebp + 0x14]
cmp dword [eax], esi
je 0x10027ff4
xor esi, esi
inc esi
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x3c]
mov eax, dword [eax]
add eax, 0x23a34071
mov dword [ecx], eax
mov eax, dword [ebp + 0x34]
mov eax, dword [eax]
imul eax, dword [ecx]
sub eax, esi
neg eax
sbb eax, eax
inc eax
mov dword [edx], eax
jmp 0x10028080
xor esi, esi
cmp byte [ebp + 0xc], 0
je 0x10028068
mov edx, dword [ebp + 0x2c]
push 2
pop edi
mov dword [edx], esi
jmp 0x10028062
mov dword [ebp - 4], 1
mov dword [ebp - 4], edi
cmp dword [ebp - 4], esi
jl 0x1002805d
mov dword [ebp + 0x38], 0xefa42b48
mov dword [ebp + 0x38], esi
jmp 0x10028052
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebx]
mov dword [eax + ecx*4], 0x182abbf9
inc dword [ebp + 0x38]
cmp dword [ebp + 0x38], 3
jl 0x10028043
dec dword [ebp - 4]
jns 0x10028037
mov eax, dword [ebp - 4]
inc dword [edx]
cmp dword [edx], edi
jle 0x10028028
jmp 0x10028080
mov dword [edi], esi
cmp dword [edi], 3
jge 0x10028080
mov edx, dword [ebp + 0x30]
mov ecx, dword [edi]
mov eax, dword [edx]
mov dword [eax + ecx*4], esi
inc dword [edi]
cmp dword [edi], 3
jl 0x10028072
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret