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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd00
mov eax, dword [0x81b110]
xor eax, ebp
mov dword [ebp - 8], eax
push esi
mov dword [ebp - 4], 0
jmp 0x815ed6
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x365ea9e0
jge 0x815f34
cmp dword [0x824e14], 0xc31
jne 0x815ef3
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x50]
push ecx
lea edx, [ebp - 0x60]
push edx
lea eax, [ebp - 0x58]
push eax
call sub.KERNEL32.dll_GetSystemTimes
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasesA]
cmp dword [ebp - 4], 0x176afc
jle 0x815f32
cmp dword [0x824e14], 0xa
jne 0x815f30
push 0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
jmp 0x815f34
jmp 0x815ecd
mov dword [ebp - 0x64], 0
jmp 0x815f46
mov ecx, dword [ebp - 0x64]
add ecx, 1
mov dword [ebp - 0x64], ecx
cmp dword [ebp - 0x64], 0x5f6c74
jge 0x815f66
cmp dword [ebp - 0x64], 0x562d05
jne 0x815f64
mov edx, dword [0x81bd98]
mov dword [0x82519c], edx
jmp 0x815f3d
cmp dword [0x824e14], 0x7c
jne 0x815f9a
push 0
call dword [sym.imp.KERNEL32.dll_FindAtomA]
push 0
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
push 0
call dword [sym.imp.KERNEL32.dll_LocalUnlock]
cmp dword [0x824e14], 0x2d
jne 0x815f9a
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
cmp dword [0x824e14], 0x110a
jne 0x81609e
mov dword [0x824e00], 0
mov dword [0x824e04], 0
cmp dword [0x824e14], 0xcc
jne 0x815fdc
push 0
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [0x8245e0], 0x14
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CompareStringA]
push 0
lea ecx, [ebp - 0x480]
push ecx
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_HeapCompact]
push 0
push 0
call fcn.00402322
add esp, 8
mov eax, 0x8198d0
lea ecx, [ebp - 0xca8]
call fcn.004010d0
push 0
push 0
call fcn.00402322
add esp, 8
mov edx, dword [0x8198d0]
mov dword [ebp - 0xc88], edx
push 0x7fc
push 0
lea eax, [ebp - 0xc84]
push eax
call fcn.004047b0
add esp, 0xc
lea ecx, [ebp - 0x488]
mov dword [ebp - 0x484], ecx
push 0
push 0
call fcn.00402322
add esp, 8
push 0
call fcn.00402489
add esp, 4
push 0
call fcn.00402029
add esp, 4
lea esi, [ebp - 0xca8]
call fcn.00401110
call fcn.00815300
mov dword [ebp - 0xcac], 0
jmp 0x8160be
mov edx, dword [ebp - 0xcac]
add edx, 1
mov dword [ebp - 0xcac], edx
mov eax, dword [ebp - 0xcac]
cmp eax, dword [0x824e14]
jae 0x816119
mov ecx, dword [0x82519c]
mov dword [ebp - 0xcb0], ecx
mov eax, 0xa231
add dword [ebp - 0xcb0], eax
mov edx, dword [0x82486c]
add edx, dword [ebp - 0xcac]
mov eax, dword [ebp - 0xcb0]
add eax, dword [ebp - 0xcac]
mov cl, byte [eax]
mov byte [edx], cl
cmp dword [0x824e14], 0x5ab
jne 0x816117
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x8160af
call fcn.00815c30
call fcn.00815330
mov eax, 0x81bda0
call fcn.00815e70
mov dword [ebp - 0xcb4], 0
jmp 0x816148
mov edx, dword [ebp - 0xcb4]
add edx, 1
mov dword [ebp - 0xcb4], edx
cmp dword [ebp - 0xcb4], 0x15a63d
jge 0x816171
cmp dword [ebp - 0xcb4], 0xbd9cb
jne 0x81616f
mov eax, dword [0x82486c]
add eax, 0
mov dword [0x82486c], eax
jmp 0x816139
jmp dword [0x82486c]