Function at 0x10c5490
Capabilities:
Allocate thread local storage
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x113cd40
mov eax, dword fs:[0]
push eax
sub esp, 0x128
mov eax, dword [0x115f604]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x124], eax
xor eax, eax
test byte [0x1162eac], 1
mov esi, ecx
mov dword [ebp - 0x120], eax
jne 0x10c5505
or dword [0x1162eac], 1
mov ecx, 0x1162ce0
mov dword [ebp - 4], eax
call fcn.010c52c0
push 0x1149c40
call fcn.01083b0e
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
push ecx
push edi
push ebx
push 0x10235a0
push 0x1023558
lea edx, [ebp - 0x120]
push edx
push 0x10234c8
lea eax, [ebp - 0x11c]
push 2
push eax
call fcn.01075110
add esp, 0x24
mov edx, dword [0x1161d94]
mov eax, dword [edx + 0xc]
mov ecx, 0x1161d94
mov dword [ebp - 4], 1
call eax
add eax, 0x10
mov dword [ebp - 0x130], eax
mov edx, dword [0x1161d94]
mov eax, dword [edx + 0xc]
mov ecx, 0x1161d94
mov byte [ebp - 4], 2
call eax
add eax, 0x10
mov dword [ebp - 0x128], eax
mov edx, dword [0x1161d94]
mov eax, dword [edx + 0xc]
mov ecx, 0x1161d94
mov byte [ebp - 4], 3
call eax
add eax, 0x10
mov dword [ebp - 0x12c], eax
lea ecx, [esi + 4]
push ecx
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
cmp eax, 1
jle 0x10c55c5
mov edx, dword [ebp - 0x124]
push edx
call fcn.010c4780
neg al
sbb eax, eax
and eax, 0xfffffffe
add eax, 0x48046
mov dword [ebp - 0x120], eax
jmp 0x10c5cf2
test ebx, ebx
je 0x10c5ce8
cmp byte [ebx], 0
je 0x10c5ce8
cmp edi, 1
je 0x10c55ea
mov dword [ebp - 0x120], 0x8004801b
jmp 0x10c5cf2
mov eax, dword [ebp - 0x124]
test eax, eax
je 0x10c5620
mov ecx, dword [eax]
xor edi, edi
test ecx, ecx
jbe 0x10c5620
mov eax, dword [eax + 4]
nop
test dword [eax], 0xffffff80
jne 0x10c56fe
cmp dword [eax + 4], 0
je 0x10c573e
add edi, 1
add eax, 0xc
cmp edi, ecx
jb 0x10c5600
call fcn.010c30f0
push ebx
lea ecx, [esi + 8]
mov dword [esi + 0x304], 1
call fcn.01133ee0
call fcn.01127f00
test al, al
je 0x10c5655
push 0x1023478
push 0x10233e8
push 1
call fcn.01128b70
add esp, 0xc
lea ecx, [esi + 0x264]
call fcn.01072f80
xor edi, edi
cmp eax, edi
mov dword [ebp - 0x120], eax
jl 0x10c56cf
call fcn.01127f00
test al, al
je 0x10c5689
push 0x1023398
push 0x1023308
push 1
call fcn.01128b70
add esp, 0xc
mov ecx, esi
call fcn.010c2ef0
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c577e
call fcn.01127f00
test al, al
je 0x10c56c1
mov edx, dword [ebp - 0x120]
push edx
push 0x10232a0
push 0x1023210
push edi
call fcn.01128b70
add esp, 0x10
cmp dword [ebp - 0x120], edi
jge 0x10c5cf2
xor edi, edi
call fcn.01127f00
test al, al
je 0x10c56f2
mov edx, dword [ebp - 0x120]
push edx
push 0x10231b8
push 0x1023128
push edi
call fcn.01128b70
add esp, 0x10
mov ecx, esi
call fcn.010c48e0
jmp 0x10c5cf2
mov dword [ebp - 0x120], 0x8004802c
call fcn.01127f00
test al, al
je 0x10c5cf2
mov ecx, dword [ebp - 0x124]
mov edx, dword [ecx + 4]
lea eax, [edi + edi*2]
mov eax, dword [edx + eax*4]
push eax
push 0x10230f0
push 0x1023060
push 0
call fcn.01128b70
add esp, 0x10
jmp 0x10c5cf2
mov dword [ebp - 0x120], 0x8004802f
call fcn.01127f00
test al, al
je 0x10c5cf2
mov edx, dword [ebp - 0x124]
mov eax, dword [edx + 4]
lea ecx, [edi + edi*2]
mov ecx, dword [eax + ecx*4]
push ecx
push 0x1023010
push 0x1022f80
push 0
call fcn.01128b70
add esp, 0x10
jmp 0x10c5cf2
call fcn.01127f00
test al, al
je 0x10c579b
push 0x1022f38
push 0x1022ea8
push 1
call fcn.01128b70
add esp, 0xc
mov eax, dword [esi + 0x260]
push eax
lea ecx, [esi + 0x2ac]
call fcn.011333b0
cmp eax, edi
mov dword [ebp - 0x120], eax
jl 0x10c56cf
call fcn.01127f00
test al, al
je 0x10c57d8
push 0x1022e58
push 0x1022dc8
push 1
call fcn.01128b70
add esp, 0xc
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp + 0x10]
push eax
push 0x1162ce0
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x124], esp
push ebx
call fcn.01081d40
mov byte [ebp - 4], 5
call fcn.010f91e0
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.010fb110
cmp eax, edi
mov dword [ebp - 0x120], eax
jl 0x10c56cf
lea edx, [esi + 0x14]
push edx
lea eax, [esi + 0x10]
push eax
lea ecx, [esi + 0xc]
push ecx
push 0x10213d8
mov ecx, esi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c5864
call fcn.01127f00
test al, al
je 0x10c585e
mov edx, dword [ebp - 0x120]
push edx
push 0x1022d68
push 0x1022cd8
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
lea eax, [esi + 0x2c]
push eax
lea ecx, [esi + 0x28]
push ecx
lea edx, [esi + 0x24]
push edx
push 0x1022cb0
mov ecx, esi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c58af
call fcn.01127f00
test al, al
je 0x10c58a9
mov eax, dword [ebp - 0x120]
push eax
push 0x1022c48
push 0x1022bb8
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
lea ecx, [esi + 0x38]
push ecx
lea edx, [esi + 0x34]
push edx
lea eax, [esi + 0x30]
push eax
push 0x1022b94
mov ecx, esi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c58fa
call fcn.01127f00
test al, al
je 0x10c58f4
mov ecx, dword [ebp - 0x120]
push ecx
push 0x1022b30
push 0x1022aa0
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
lea edx, [esi + 0x44]
push edx
lea eax, [esi + 0x40]
push eax
lea ecx, [esi + 0x3c]
push ecx
push 0x1022a78
mov ecx, esi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c5945
call fcn.01127f00
test al, al
je 0x10c593f
mov edx, dword [ebp - 0x120]
push edx
push 0x1022a10
push 0x1022980
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
lea eax, [ebp - 0x124]
push eax
lea ecx, [esi + 0x4c]
push ecx
lea edx, [esi + 0x48]
push edx
push 0x1022950
mov ecx, esi
mov dword [ebp - 0x124], edi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c5999
call fcn.01127f00
test al, al
je 0x10c5993
mov eax, dword [ebp - 0x120]
push eax
push 0x10228e0
push 0x1022850
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
lea ecx, [ebp - 0x124]
push ecx
lea edx, [esi + 0x54]
push edx
lea eax, [esi + 0x50]
push eax
push 0x102281c
mov ecx, esi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c59e7
call fcn.01127f00
test al, al
je 0x10c59e1
mov ecx, dword [ebp - 0x120]
push ecx
push 0x10227a8
push 0x1022718
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
lea edx, [ebp - 0x124]
push edx
lea eax, [esi + 0x5c]
push eax
lea ecx, [esi + 0x58]
push ecx
push 0x10226f0
mov ecx, esi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c5a35
call fcn.01127f00
test al, al
je 0x10c5a2f
mov edx, dword [ebp - 0x120]
push edx
push 0x1022688
push 0x10225f8
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
lea eax, [ebp - 0x124]
push eax
lea ecx, [esi + 0x64]
push ecx
lea edx, [esi + 0x60]
push edx
push 0x10225d0
mov ecx, esi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c5a83
call fcn.01127f00
test al, al
je 0x10c5a7d
mov eax, dword [ebp - 0x120]
push eax
push 0x1022568
push 0x10224d8
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
lea ecx, [ebp - 0x124]
push ecx
lea edx, [esi + 0x6c]
push edx
lea eax, [esi + 0x68]
push eax
push 0x10224a8
mov ecx, esi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c5ad1
call fcn.01127f00
test al, al
je 0x10c5acb
mov ecx, dword [ebp - 0x120]
push ecx
push 0x1022438
push 0x10223a8
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
lea edx, [ebp - 0x124]
push edx
lea eax, [esi + 0x74]
push eax
lea ecx, [esi + 0x70]
push ecx
push 0x1022380
mov ecx, esi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c5b1f
call fcn.01127f00
test al, al
je 0x10c5b19
mov edx, dword [ebp - 0x120]
push edx
push 0x1022318
push 0x1022288
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
lea eax, [esi + 0x20]
push eax
lea ecx, [esi + 0x1c]
push ecx
lea edx, [esi + 0x18]
push edx
push 0x1022260
mov ecx, esi
call fcn.010c4260
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c5b6a
call fcn.01127f00
test al, al
je 0x10c5b64
mov eax, dword [ebp - 0x120]
push eax
push 0x10221f8
push 0x1022168
push edi
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
call fcn.01127f00
test al, al
je 0x10c5b87
push 0x1022120
push 0x1022090
push 1
call fcn.01128b70
add esp, 0xc
call fcn.010f91e0
cmp byte [eax + 0x81], 0
jne 0x10c5c13
lea ecx, [ebp - 0x124]
call fcn.01099650
push ecx
mov ecx, esp
mov dword [ebp - 0x134], esp
push ecx
mov byte [ebp - 4], 6
call fcn.010f91e0
mov ecx, eax
call fcn.010f26e0
lea ebx, [esi + 0x78]
mov ecx, ebx
call fcn.0111d2f0
cmp eax, edi
mov dword [ebp - 0x120], eax
jge 0x10c5be2
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 4
call fcn.0111cdb0
jmp 0x10c56c1
lea edx, [ebp - 0x124]
push edx
mov ecx, ebx
call fcn.0111dc90
cmp eax, edi
mov dword [ebp - 0x120], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x124]
jge 0x10c5c0e
call fcn.0111cdb0
jmp 0x10c56c1
call fcn.0111cdb0
call fcn.01127f00
test al, al
je 0x10c5c30
push 0x1022050
push 0x1021fc0
push 1
call fcn.01128b70
add esp, 0xc
lea ecx, [esi + 0xc0]
call fcn.01072f80
cmp eax, edi
mov dword [ebp - 0x120], eax
jl 0x10c56cf
call fcn.01127f00
test al, al
je 0x10c5c66
push 0x1021f98
push 0x1021f08
push 1
call fcn.01128b70
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
mov dword [esi + 0x3dc], eax
jne 0x10c5cbc
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
test eax, eax
jg 0x10c5c87
call ebx
jmp 0x10c5c93
call ebx
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x120], eax
call fcn.01127f00
test al, al
je 0x10c56c1
mov eax, dword [ebp - 0x120]
push eax
push 0x1021eb0
push 0x1021e20
jmp 0x10c56b8
call fcn.01127f00
test al, al
je 0x10c5ce0
mov ecx, dword [esi + 0x3dc]
push ecx
push 0x1021df8
push 0x1021d68
push 1
call fcn.01128b70
add esp, 0x10
mov dword [ebp - 0x120], edi
jmp 0x10c5cf2
mov dword [ebp - 0x120], 0x8004801a
mov eax, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x120]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10c5d1e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x128]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10c5d44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x130]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10c5d6a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x11c]
mov dword [ebp - 4], 0xffffffff
call fcn.01075230
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.010840d6
mov esp, ebp
pop ebp
ret 0x10