Function at 0x812da0
Capabilities:
Check for software breakpoints
Get geographical location
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1528
call fcn.00418f30
mov eax, dword [0x818110]
xor eax, ebp
mov dword [ebp - 8], eax
push esi
mov dword [ebp - 4], 0
jmp 0x812dca
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x365ea9e0
jge 0x812e09
call dword [sym.imp.KERNEL32.dll_GetTickCount]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasesW]
cmp dword [ebp - 4], 0x176afc
jle 0x812e07
cmp dword [0x81a734], 0xa
jne 0x812e05
push 0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
jmp 0x812e09
jmp 0x812dc1
mov dword [ebp - 0x64], 0
jmp 0x812e1b
mov ecx, dword [ebp - 0x64]
add ecx, 1
mov dword [ebp - 0x64], ecx
cmp dword [ebp - 0x64], 0x5f6c74
jge 0x812e3b
cmp dword [ebp - 0x64], 0x562d05
jne 0x812e39
mov edx, dword [0x818d98]
mov dword [0x81aabc], edx
jmp 0x812e12
cmp dword [0x81a734], 0x7c
jne 0x812eee
push 0
lea eax, [ebp - 0x868]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea ecx, [ebp - 0x86c]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push 0
call dword [sym.imp.KERNEL32.dll_GetTapeStatus]
push 0
push 0
call dword [sym.imp.USER32.dll_LookupIconIdFromDirectory]
push 0
call dword [sym.imp.USER32.dll_GetKeyboardType]
lea edx, [ebp - 0x870]
push edx
lea eax, [ebp - 0x890]
push eax
lea ecx, [ebp - 0x880]
push ecx
push 0
call dword [sym.imp.ole32.dll_CreateDataCache]
push 0
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
push 0
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [0x81a734], 0x11
jne 0x812ed8
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_GetBoundsRect]
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_ObjectPrivilegeAuditAlarmA]
cmp dword [0x81a734], 0x2d
jne 0x812eee
lea edx, [ebp - 0x8a8]
push edx
call dword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
cmp dword [0x81a734], 0x110a
jne 0x812ff2
mov dword [0x81a720], 0
mov dword [0x81a724], 0
cmp dword [0x81a734], 0xcc
jne 0x812f30
push 0
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [0x819f00], 0x14
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CompareStringA]
push 0
lea eax, [ebp - 0xca8]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CompareStringA]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeaps]
push 0
push 0
call fcn.00402354
add esp, 8
mov eax, 0x8168d8
lea ecx, [ebp - 0x14d0]
call fcn.004010f0
push 0
push 0
call fcn.00402354
add esp, 8
mov ecx, dword [0x8168d8]
mov dword [ebp - 0x14b0], ecx
push 0x7fc
push 0
lea edx, [ebp - 0x14ac]
push edx
call fcn.004047e0
add esp, 0xc
lea eax, [ebp - 0xcb0]
mov dword [ebp - 0xcac], eax
push 0
push 0
call fcn.00402354
add esp, 8
push 0
call fcn.004024bb
add esp, 4
push 0
call fcn.0040205b
add esp, 4
lea esi, [ebp - 0x14d0]
call fcn.00401130
call fcn.008121f0
mov dword [ebp - 0x14d4], 0
jmp 0x813012
mov ecx, dword [ebp - 0x14d4]
add ecx, 1
mov dword [ebp - 0x14d4], ecx
mov edx, dword [ebp - 0x14d4]
cmp edx, dword [0x81a734]
jae 0x81306c
mov eax, dword [0x81aabc]
mov dword [ebp - 0x14d8], eax
mov eax, 0xa231
add dword [ebp - 0x14d8], eax
mov ecx, dword [0x81a18c]
add ecx, dword [ebp - 0x14d4]
mov edx, dword [ebp - 0x14d8]
add edx, dword [ebp - 0x14d4]
mov al, byte [edx]
mov byte [ecx], al
cmp dword [0x81a734], 0x5ab
jne 0x81306a
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x813003
call fcn.00812b20
call fcn.00812220
mov eax, 0x818da0
call fcn.00812d60
mov dword [ebp - 0x14dc], 0
jmp 0x81309b
mov ecx, dword [ebp - 0x14dc]
add ecx, 1
mov dword [ebp - 0x14dc], ecx
cmp dword [ebp - 0x14dc], 0x15a63d
jge 0x8130c7
cmp dword [ebp - 0x14dc], 0xbd9cb
jne 0x8130c5
mov edx, dword [0x81a18c]
add edx, 0
mov dword [0x81a18c], edx
jmp 0x81308c
jmp dword [0x81a18c]