Function at 0x100057c0
Capabilities:
Allocate thread local storage
Get system information on windows
Set thread local storage value

Disassembly:
sub esp, 0x138
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x134], eax
push ebx
xor ebx, ebx
cmp dword [0x1000a450], ebx
jne 0x100071a6
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1000a010], eax
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
xor edx, edx
mov eax, 0x1000
div dword [esp + 0x10]
test edx, edx
jne 0x100071ad
push esi
push ebp
xor esi, esi
push edi
mov eax, esi
sub eax, ebx
je 0x1000582d
sub eax, 1
jne 0x1000596a
call fcn.10005cd0
cmp eax, ebx
jne 0x100071e2
mov byte [esp + 0x3c], bl
lea edi, [esp + 0x3c]
cmp byte [edi], bl
jne 0x100071e9
add esi, 1
cmp esi, 3
jb 0x10005811
push 0x10
push ebx
push 0x1000a440
call sub.MSVCR80.dll_memset
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
add esp, 0xc
push 0x1388
push 0x1000a420
call esi
mov eax, 0x1000a404
mov dword [0x1000a400], eax
mov dword [0x1000a40c], eax
push 0x1388
and eax, 0xfffffffe
push 0x1000a364
mov dword [0x1000a410], eax
mov dword [0x1000a3c0], ebx
mov dword [0x1000a3c4], ebx
mov dword [0x1000a3f0], ebx
mov dword [0x1000a3f4], ebx
mov dword [0x1000a438], ebx
mov dword [0x1000a360], ebx
mov dword [0x1000a3f8], ebx
mov dword [0x1000a358], ebx
call esi
mov ecx, dword [0x1000a45c]
cmp ecx, ebx
mov eax, 1
pop edi
mov dword [0x1000a3e0], eax
pop ebp
jg 0x100072f6
jl 0x10007328
add eax, eax
add eax, eax
mov dword [0x1000a3e8], ebx
call fcn.10005660
cmp eax, ebx
mov dword [0x1000a3ec], eax
je 0x1000598e
mov edx, dword [0x1000a3e0]
lea ecx, [edx*4]
push ecx
push ebx
push eax
call sub.MSVCR80.dll_memset
push ebx
call fcn.100059b0
mov edx, dword [0x1000a3ec]
mov eax, dword [edx]
add esp, 0x10
cmp eax, ebx
je 0x1000598e
push eax
mov eax, dword [0x1000a010]
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push 0x1388
push 0x1000a3c8
call esi
call fcn.10005720
cmp eax, ebx
mov dword [0x1000a41c], eax
je 0x1000598e
mov dword [0x1000a450], 1
xor eax, eax
pop esi
pop ebx
mov ecx, dword [esp + 0x134]
xor ecx, esp
call fcn.10005efa
add esp, 0x138
ret
sub eax, 1
jne 0x100071d5
mov edi, dword [0x1000a478]
cmp edi, ebx
jne 0x10005835
mov byte [esp + 0x3c], bl
lea edi, [esp + 0x3c]
jmp 0x10005835
mov ecx, dword [esp + 0x13c]
pop esi
pop ebx
xor ecx, esp
mov eax, 1
call fcn.10005efa
add esp, 0x138
ret
xor eax, eax
jmp 0x10005954
push 0x1000924b
push 0x1000924b
push str.Compile_time_page_size_does_not_divide_the_runtime_one._n
push 0x10009240
call dword [0x1000a018]
add esp, 0x10
call dword [sym.imp.MSVCR80.dll_abort]
jmp 0x1000580c
mov byte [esp + 0x3c], bl
lea edi, [esp + 0x3c]
jmp 0x10005835
mov edi, eax
jmp 0x10005835
xor ebp, ebp
xor eax, eax
mov dword [esp + 0x10], ebx
mov cl, byte [edi + ebp]
mov dl, cl
sub dl, 0x30
cmp dl, 9
ja 0x10007215
movsx ecx, cl
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov ecx, 1
add ebp, ecx
mov dword [esp + 0x10], ecx
jmp 0x100071f1
cmp dword [esp + 0x10], ebx
mov edx, 1
jne 0x10007224
mov eax, edx
jmp 0x1000722c
cmp eax, ebx
jbe 0x100072e6
mov dword [esp + 0x10], eax
mov al, byte [edi + ebp]
movsx ecx, al
add ecx, 0xffffffbf
cmp ecx, 0x2f
ja case.0x10007249.67
movzx ecx, byte [ecx + 0x1000737a]
jmp dword [ecx*4 + 0x10007352]
mov dword [0x1000a454], ebx
jmp case.0x10007249.66
mov dword [0x1000a454], edx
jmp case.0x10007249.66
shr dword [0x1000a014], 1
jmp case.0x10007249.66
mov eax, dword [0x1000a014]
cmp eax, ebx
jne 0x10007285
mov dword [0x1000a014], edx
jmp case.0x10007249.66
add eax, eax
cmp eax, ebx
je case.0x10007249.66
mov dword [0x1000a014], eax
jmp case.0x10007249.66
sub dword [0x1000a45c], edx
jmp case.0x10007249.66
add dword [0x1000a45c], edx
jmp case.0x10007249.66
mov dword [0x1000a458], ebx
jmp case.0x10007249.66
mov dword [0x1000a458], edx
jmp case.0x10007249.66
push 0x10009320
lea edx, [esp + 0x18]
push edx
push str.:__malloc__Unsupported_character_in_malloc_options:_
push 0x10009240
mov byte [esp + 0x24], al
mov byte [esp + 0x25], bl
call dword [0x1000a018]
add esp, 0x10
mov edx, 1
sub dword [esp + 0x10], edx
jne 0x10007230
add ebp, edx
cmp byte [edi + ebp], bl
jne 0x100071eb
jmp 0x1000583d
mov edx, eax
shl edx, cl
cmp edx, 1
jbe 0x10007306
mov eax, edx
mov dword [0x1000a3e0], eax
lea ecx, [eax*4]
cmp ecx, 0x100000
jbe 0x100058da
mov eax, 0x40000
mov dword [0x1000a3e0], eax
jmp 0x100058da
neg ecx
mov edx, eax
shr edx, cl
cmp edx, 1
jae 0x100058da
cmp edx, ebx
mov dword [0x1000a3e0], edx
jne 0x1000734b
mov dword [0x1000a3e0], eax
jmp 0x100058da
mov eax, edx
jmp 0x100058da