Function at 0x100e18e0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xe0
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebx + 0x10294]
push edi
mov edi, dword [esi + 0x3c]
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
test edi, 0xf0000000
jne 0x100e1913
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, esi
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax]
mov edx, ecx
and edx, 0xfffff
mov dword [ebp - 0x18], edx
xor edx, edx
div dword [ebp - 0x18]
and ecx, 0xfff00000
mov dword [ebp - 0x10], eax
cmp ecx, 0x50200000
je 0x100e194d
mov eax, edi
and eax, 0xfff00000
cmp eax, 0x70800000
je 0x100e194d
xor dl, dl
jmp 0x100e194f
mov dl, 1
mov ecx, edi
and ecx, 0xfff00000
cmp ecx, 0x50000000
sete byte [ebp - 0x28]
mov eax, edi
shr eax, 0x1c
mov byte [ebp - 5], 0
cmp eax, 6
je 0x100e27fc
cmp eax, 0xa
je 0x100e27fc
mov eax, edi
call fcn.101709e0
test al, al
jne 0x100e27fc
cmp ecx, 0x67a00000
je 0x100e27fc
cmp ecx, 0x50700000
je 0x100e27fc
test dl, dl
jne 0x100e27dc
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x10], eax
jbe 0x100e1a6e
mov ecx, dword [ebp - 0x18]
lea edi, [ebp - 0xdc]
mov dword [ebp - 0x24], eax
lea edx, [ecx*4]
mov eax, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], eax
or eax, 0xffffffff
mov dword [edi], eax
mov dword [edi + 4], eax
xor ecx, ecx
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
cmp dword [ebp - 0x18], ecx
jbe 0x100e1a4e
mov edx, dword [ebp - 0xc]
lea eax, [edx*4]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 0x10294]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], edx
jmp 0x100e1a10
cmp byte [ebp - 0x28], 0
mov esi, dword [eax]
je 0x100e1a22
mov edx, dword [esi + 0x64]
mov esi, dword [ebp - 0x14]
mov dword [esi], edx
jmp 0x100e1a41
mov edx, dword [ebx + 0x10294]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + ecx*4]
mov edx, dword [edx + 0x64]
add edx, dword [ebp - 0x3c]
mov esi, dword [esi + 0x64]
mov edi, dword [ebp - 0x1c]
mov dword [ebp + edx*4 - 0xdc], esi
add dword [ebp - 0x14], 4
inc ecx
add eax, 4
cmp ecx, dword [ebp - 0x18]
jb 0x100e1a10
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
add dword [ebp - 0x34], 0x10
add dword [ebp - 0x24], ecx
inc eax
add edi, 0x10
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x1c], edi
cmp eax, dword [ebp - 0x10]
jb 0x100e19d7
mov eax, dword [ebx + 0x10294]
mov edx, dword [eax + 0xc]
mov eax, dword [edx]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
and eax, 0x20
xor ecx, ecx
or eax, ecx
je 0x100e1c0b
mov eax, dword [ebx + 0x10294]
mov edx, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov eax, dword [edx]
mov ecx, dword [ecx]
mov edx, dword [ebx]
mov edx, dword [edx + 0x14]
mov dword [ebp - 0x38], eax
mov eax, dword [ecx + 0xa8]
push eax
mov ecx, ebx
call edx
mov dword [ebp - 0x3c], eax
cmp eax, 0xffff
je 0x100e1c5b
cmp eax, 0xb
je 0x100e1b0b
cmp eax, 0x1b
je 0x100e1b0b
cmp eax, 0xd
jne 0x100e1b27
mov byte [ebp - 7], 0
mov esi, 0x101e2a28
xor edi, edi
jmp 0x100e1ae0
mov ecx, esi
lea eax, [ebp - 0xdc]
call fcn.100e1410
test al, al
jne 0x100e1b01
add edi, 0x10
add esi, 0x10
cmp edi, 0x40
jb 0x100e1ae0
cmp byte [ebp - 7], al
jmp 0x100e1b1d
mov byte [ebp - 7], 1
cmp byte [ebp - 7], 0
jmp 0x100e1b1d
mov ecx, 0x101e2a68
lea eax, [ebp - 0xdc]
call fcn.100e1410
test al, al
sete byte [ebp - 5]
cmp byte [ebp - 5], 0
jne 0x100e1b36
mov eax, dword [ebp - 0x38]
test dword [eax + 0x80], 0x1f80
je 0x100e1b4f
mov ecx, dword [ebp - 0x18]
push ecx
lea edx, [ebp - 0x2c]
push edx
mov eax, ebx
call fcn.100e1750
mov edi, eax
test edi, edi
jl 0x100e2830
xor eax, eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
lea esi, [ebp - 0x8c]
lea eax, [ebp - 0xdc]
call fcn.100e1450
test al, al
jne 0x100e1b92
cmp dword [ebp - 0x3c], 0xd
jne 0x100e1c5b
cmp dword [ebp - 0xdc], 0
jne 0x100e1c5b
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
push eax
push ecx
push edx
lea eax, [ebp - 0x8c]
push eax
push ebx
call fcn.100d1930
mov edi, eax
xor esi, esi
cmp edi, esi
jl 0x100e2830
cmp byte [ebp - 0x28], 0
je 0x100e1bd7
mov ecx, dword [ebx + 0x10294]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
mov eax, dword [ecx + eax*4 - 4]
mov ecx, dword [eax + 0xc]
mov edx, dword [edx]
mov dword [ecx], edx
mov eax, dword [ebx + 0x10294]
mov dword [eax + 0x3c], esi
mov dword [eax], esi
mov dword [eax + 8], esi
mov eax, dword [ebp - 0x2c]
cmp eax, esi
je 0x100e28d0
push eax
mov edi, ebx
call fcn.101699c0
mov edi, eax
cmp edi, esi
jl 0x100e2830
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0x10], ecx
jbe 0x100e1c5b
lea edi, [ebp - 0xdc]
lea esp, [esp]
xor edx, edx
xor eax, eax
mov ecx, dword [edi + eax*4]
cmp ecx, 0xffffffff
je 0x100e1c38
lea esi, [edx + eax]
cmp ecx, dword [esi*4 + 0x101e2a28]
jne 0x100e1c4f
inc eax
cmp eax, 4
jb 0x100e1c24
mov eax, dword [ebp - 0xc]
inc eax
add edi, 0x10
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jb 0x100e1c20
jmp 0x100e1c5b
add edx, 4
cmp edx, 0x20
jb 0x100e1c22
mov byte [ebp - 5], 1
mov eax, dword [ebx + 0x10294]
mov ecx, dword [eax + 0x3c]
and ecx, 0xfff00000
cmp ecx, 0x10e00000
je 0x100e1c7e
cmp ecx, 0x11000000
jne 0x100e1f35
mov ecx, dword [eax]
xor dl, dl
test ecx, ecx
jbe 0x100e1f35
mov eax, dword [eax + 4]
mov edi, ecx
nop
mov ecx, dword [eax]
test dword [ecx + 0x80], 0x1f80
je 0x100e1ca0
mov dl, 1
add eax, 4
sub edi, 1
jne 0x100e1c90
test dl, dl
je 0x100e1f35
mov eax, dword [ebx + 0x8040]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], edi
lea esp, [esp]
mov eax, dword [ebx + 0x8040]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x101e316c]
mov dword [ebp - 0x38], edx
test eax, eax
jge 0x100e1cdf
xor eax, eax
jmp 0x100e1ce6
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], 0
je 0x100e1d0d
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x100e1cf7
mov esi, ecx
jmp 0x100e1d1e
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
test edx, edx
jne 0x100e1d03
mov dword [eax + 0x10], edx
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x100e1d1e
mov ecx, dword [eax + 8]
push 0x10
push pe_nt_image_headers32
call fcn.101d8457
mov esi, eax
xor edi, edi
cmp esi, edi
je 0x100e1d7e
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x38]
or eax, 0xffffffff
push ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x48], eax
mov eax, dword [ebp - 0x3c]
push edx
push eax
mov eax, esi
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 0x94], edi
mov dword [esi + 0x98], edi
mov dword [esi + 0x24], edi
call fcn.10165570
cmp eax, edi
mov dword [ebp - 0xc], eax
jl 0x100e1d87
push edi
mov edi, dword [ebp + 8]
mov ebx, esi
call fcn.10169830
mov dword [ebp - 0xc], eax
test eax, eax
jl 0x100e1d87
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp + 8]
xor edi, edi
mov dword [ebp + ecx*4 - 0x9c], esi
jmp 0x100e1dd4
mov dword [ebp - 0xc], 0x8007000e
jmp 0x100e1dd1
mov edi, esi
call fcn.101654a0
mov eax, dword [0x101e316c]
test eax, eax
jge 0x100e1d9b
xor edi, edi
jmp 0x100e1da4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
push pe_nt_image_headers32
push 0xfe
push esi
call sub.msvcrt.dll_memset
mov dword [esi], 0
mov eax, dword [edi + 0x10]
add esp, 0xc
test eax, eax
je 0x100e1dc8
mov dword [eax], esi
jmp 0x100e1dcb
mov dword [edi + 0xc], esi
mov ebx, dword [ebp + 8]
mov dword [edi + 0x10], esi
mov edi, dword [ebp - 0xc]
test edi, edi
jl 0x100e2830
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 4
jb 0x100e1cc0
mov eax, dword [ebp - 0x1c]
inc dword [eax + 0x10]
mov eax, dword [0x101e316c]
xor ecx, ecx
cmp eax, ecx
jge 0x100e1e01
xor eax, eax
jmp 0x100e1e0a
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
xor ecx, ecx
cmp dword [eax + 0x18], ecx
je 0x100e1e32
mov edx, dword [eax + 0x18]
cmp edx, ecx
jne 0x100e1e1c
xor edx, edx
mov esi, edx
jmp 0x100e1e42
mov esi, dword [edx]
mov dword [eax + 0x18], esi
cmp esi, ecx
jne 0x100e1e28
mov dword [eax + 0x1c], ecx
mov dword [edx], 0xfefefefe
mov esi, edx
jmp 0x100e1e42
mov ecx, dword [eax + 0x14]
push 0x10
push 0x44
call fcn.101d8457
mov esi, eax
xor ecx, ecx
cmp esi, ecx
je 0x100e1f6b
or eax, 0xffffffff
mov dword [esi + 0x10], eax
xor edx, edx
mov dword [esi + 0x20], eax
mov dword [esi], ecx
mov dword [esi + 8], ecx
mov dword [esi + 0x3c], ecx
mov dword [esi + 4], ecx
mov word [esi + 0x40], dx
mov dword [esi + 0xc], ecx
mov word [esi + 0x42], dx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x34], ecx
mov dword [esi + 0x38], ecx
mov edx, dword [ebx + 0x10294]
mov ecx, dword [edx]
mov edx, dword [edx + 8]
mov eax, ecx
push 0
and eax, 0xfffff
or eax, 0x10000000
push esi
mov dword [ebp - 0x30], esi
call fcn.10172020
mov edi, eax
test edi, edi
jl 0x100e2830
mov eax, dword [ebx + 0x10294]
mov ecx, dword [eax + 0x34]
mov dword [esi + 0x34], ecx
mov edx, dword [eax + 0x38]
mov dword [esi + 0x38], edx
mov eax, dword [ebx + 0x10294]
mov eax, dword [eax + 8]
lea ecx, [eax*4]
mov eax, dword [esi + 0xc]
push ecx
lea edx, [ebp - 0x9c]
push edx
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 0x10294]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [esi + 4]
add ecx, ecx
add esp, 0xc
add ecx, ecx
push ecx
push eax
push edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 0x10294]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
add ecx, ecx
add esp, 0xc
add ecx, ecx
push ecx
lea edx, [ebp - 0x9c]
push edx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push esi
mov edi, ebx
call fcn.101699c0
mov edi, eax
test edi, edi
jl 0x100e2830
mov dword [ebp - 0x30], 0
cmp byte [ebp - 5], 0
je 0x100e2798
test byte [ebx + 0x7fcc], 2
je 0x100e2798
mov eax, dword [ebp - 0x18]
mov byte [ebp - 5], 0
mov byte [ebp - 0x1e], 0
cmp eax, 4
jne 0x100e234b
xor ecx, ecx
mov byte [ebp - 6], 1
mov dword [ebp - 0xc], ecx
jmp 0x100e1f83
mov dword [ebp - 0x30], ecx
mov edi, 0x8007000e
jmp 0x100e2830
mov ecx, dword [ebp - 0xc]
cmp byte [ebp - 6], 0
je 0x100e2027
xor eax, eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
or eax, 0xffffffff
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp + ecx*4 - 0x8c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x7c], 0
mov byte [ebp - 6], 0
test eax, eax
jbe 0x100e204f
lea edi, [ebp - 0xdc]
mov dword [ebp - 0x1c], eax
lea ebx, [ebx]
lea esi, [ebp - 0x8c]
mov eax, edi
call fcn.100e1450
mov byte [ebp - 7], al
lea esi, [ebp - 0x7c]
mov eax, edi
call fcn.100e1450
cmp byte [ebp - 7], 0
je 0x100e2004
test al, al
jne 0x100e2008
mov byte [ebp - 6], 1
add edi, 0x10
sub dword [ebp - 0x1c], 1
jne 0x100e1fe0
cmp byte [ebp - 6], 0
je 0x100e204f
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, 4
jb 0x100e1f80
cmp byte [ebp - 0x28], 0
jne 0x100e255a
mov byte [ebp - 6], 1
mov dword [ebp - 0xc], 0
cmp byte [ebp - 6], 0
je 0x100e22a2
xor edx, edx
xor ebx, ebx
jmp 0x100e2182
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x10]
push esi
push 4
push ecx
lea edx, [ebp - 0x8c]
push edx
push ebx
call fcn.100d1930
mov edi, eax
test edi, edi
jl 0x100e2830
mov eax, dword [ebp - 0x10]
push esi
push 4
push eax
lea ecx, [ebp - 0x7c]
push ecx
push ebx
call fcn.100d1930
mov edi, eax
test edi, edi
jl 0x100e2830
cmp byte [ebp - 0x28], 0
je 0x100e2519
call fcn.101751a0
test eax, eax
je 0x100e2126
call fcn.10171da0
mov esi, eax
test esi, esi
je 0x100e2128
push 0
mov edx, 1
push esi
lea ecx, [edx + 1]
mov eax, 0x20400001
call fcn.10172020
mov edi, eax
test edi, edi
jl 0x100e212d
mov eax, dword [ebx + 0x10294]
mov edx, dword [eax + 0x34]
mov dword [esi + 0x34], edx
mov eax, dword [eax + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + ecx*4 - 8]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov dword [edx], eax
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + ecx*4 - 4]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov dword [edx + 4], eax
mov ecx, dword [ebx + 0x10294]
mov edx, dword [ecx + 0xc]
mov eax, dword [esi + 0xc]
mov ecx, dword [edx]
push esi
mov edi, ebx
mov dword [eax], ecx
call fcn.101699c0
mov edi, eax
test edi, edi
jl 0x100e212d
jmp 0x100e2519
xor esi, esi
mov edi, 0x8007000e
test esi, esi
je 0x100e2830
call fcn.10171ee0
mov eax, dword [0x101e316c]
test eax, eax
jl 0x100e2830
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test ebx, ebx
je 0x100e2830
push 0x44
push 0xfe
push esi
call sub.msvcrt.dll_memset
mov dword [esi], 0
mov eax, dword [ebx + 0x1c]
add esp, 0xc
test eax, eax
je 0x100e282a
mov dword [eax], esi
jmp 0x100e282d
xor edx, edx
mov ecx, dword [ebp - 0xc]
cmp ebx, ecx
je 0x100e2282
xor eax, eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
or eax, 0xffffffff
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x8c]
mov dword [eax + ecx*4], 0xffffffff
mov dword [eax + ebx*4], 0xffffffff
mov dword [ebp + ecx*4 - 0x7c], edx
mov dword [ebp + ebx*4 - 0x7c], edx
mov byte [ebp - 6], 0
mov byte [ebp - 0x1d], 0
cmp dword [ebp - 0x10], edx
jbe 0x100e228e
mov edx, dword [ebp - 0x10]
lea edi, [ebp - 0xdc]
mov dword [ebp - 0x1c], edx
lea esp, [esp]
lea esi, [ebp - 0x8c]
mov eax, edi
call fcn.100e1450
mov byte [ebp - 7], al
lea esi, [ebp - 0x7c]
mov eax, edi
call fcn.100e1450
cmp byte [ebp - 7], 0
jne 0x100e2216
mov byte [ebp - 0x1d], 1
jmp 0x100e221a
test al, al
jne 0x100e221e
mov byte [ebp - 6], 1
add edi, 0x10
sub dword [ebp - 0x1c], 1
jne 0x100e21f0
cmp byte [ebp - 6], 0
je 0x100e228e
cmp byte [ebp - 0x1d], 0
jne 0x100e2282
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x60], eax
or eax, 0xffffffff
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
or eax, eax
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
xor eax, eax
mov dword [ebp - 0x64], edx
mov dword [ebp + ecx*4 - 0x5c], eax
mov dword [ebp + ebx*4 - 0x4c], eax
mov byte [ebp - 0x1e], 1
inc ebx
cmp ebx, 4
jb 0x100e2180
jmp 0x100e2292
mov byte [ebp - 5], 1
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, 4
jb 0x100e203c
cmp byte [ebp - 5], 0
je 0x100e22df
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
push 0
push 4
push edx
lea eax, [ebp - 0x8c]
push eax
push ecx
call fcn.100d1930
mov edi, eax
test edi, edi
jl 0x100e2830
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
push 0
push 4
push edx
lea eax, [ebp - 0x7c]
push eax
push ecx
jmp 0x100e249c
cmp byte [ebp - 0x1e], 0
je 0x100e24b1
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
push 0
push 4
push edx
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.100d1930
mov edi, eax
test edi, edi
jl 0x100e2830
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
push 0
push 4
push edx
lea eax, [ebp - 0x5c]
push eax
push ecx
call fcn.100d1930
mov edi, eax
test edi, edi
jl 0x100e2830
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
push 0
push 4
push edx
lea eax, [ebp - 0x4c]
push eax
push ecx
call fcn.100d1930
mov edi, eax
test edi, edi
jl 0x100e2830
jmp 0x100e2519
cmp eax, 3
jne 0x100e2550
cmp byte [ebp - 0x28], 0
jne 0x100e255a
or ecx, 0xffffffff
mov dword [ebp - 0x14], ecx
xor eax, eax
cmp dword [ebp + eax*4 - 0xdc], ecx
jne 0x100e2372
mov dword [ebp - 0x14], eax
inc eax
cmp eax, 4
jb 0x100e2366
mov dword [ebp - 0xc], 0
cmp byte [ebp - 5], 0
jne 0x100e2470
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
xor ebx, ebx
or edx, 0xffffffff
cmp byte [ebp - 5], 0
jne 0x100e245d
cmp ebx, ecx
je 0x100e2453
cmp ebx, esi
je 0x100e2453
cmp ecx, esi
je 0x100e2453
mov eax, edx
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
xor eax, eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x8c]
mov dword [eax + ecx*4], 0
mov dword [eax + ebx*4], 0
mov dword [ebp + ecx*4 - 0x7c], edx
xor edi, edi
mov dword [ebp + ebx*4 - 0x7c], edx
mov dword [ebp + esi*4 - 0x7c], edx
mov byte [ebp - 6], 0
cmp dword [ebp - 0x10], edi
jbe 0x100e2444
lea edx, [ebp - 0xdc]
mov dword [ebp - 0x24], edx
cmp byte [ebp - 6], 0
jne 0x100e244a
mov eax, dword [ebp - 0x24]
lea esi, [ebp - 0x8c]
call fcn.100e1450
test al, al
jne 0x100e242b
mov byte [ebp - 6], 1
add dword [ebp - 0x24], 0x10
inc edi
cmp edi, dword [ebp - 0x10]
jb 0x100e240f
cmp byte [ebp - 6], 0
jne 0x100e244a
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
or edx, 0xffffffff
mov byte [ebp - 5], 1
jmp 0x100e2453
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
or edx, 0xffffffff
inc ebx
cmp ebx, 4
jb 0x100e2394
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, 4
jb 0x100e237f
cmp byte [ebp - 5], 0
je 0x100e24b1
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
push 0
push 3
push esi
lea eax, [ebp - 0x8c]
push eax
push ebx
call fcn.100d1930
mov edi, eax
test edi, edi
jl 0x100e2830
push 0
push 3
push esi
lea ecx, [ebp - 0x7c]
push ecx
push ebx
call fcn.100d1930
mov edi, eax
test edi, edi
jl 0x100e2830
cmp byte [ebp - 5], 0
jne 0x100e2519
xor esi, esi
cmp dword [ebp - 0x18], esi
jbe 0x100e2519
mov ebx, dword [ebp + 8]
jmp 0x100e24c0
mov edx, dword [ebx + 0x10294]
or eax, 0xffffffff
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov eax, dword [edx + 0xc]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x64]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
push 0
push edx
mov dword [ebp + ecx*4 - 0x8c], 0
push eax
lea ecx, [ebp - 0x8c]
push ecx
push ebx
call fcn.100d1930
mov edi, eax
test edi, edi
jl 0x100e2830
inc esi
cmp esi, dword [ebp - 0x18]
jb 0x100e24c0
mov eax, dword [ebp - 0x2c]
xor esi, esi
cmp eax, esi
je 0x100e2538
mov edi, dword [ebp + 8]
push eax
call fcn.101699c0
mov edi, eax
cmp edi, esi
jl 0x100e2830
mov dword [ebp - 0x2c], esi
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10294]
mov dword [eax + 0x3c], esi
mov dword [eax], esi
mov dword [eax + 8], esi
xor edi, edi
jmp 0x100e2830
cmp byte [ebp - 0x28], 0
je 0x100e24b1
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
push edx
push eax
lea ecx, [ebp - 0x30]
push ecx
mov eax, ebx
call fcn.100e14e0
mov edi, eax
test edi, edi
jl 0x100e2830
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x100e2597
push eax
mov edi, ebx
call fcn.101699c0
mov edi, eax
test edi, edi
jl 0x100e2830
mov dword [ebp - 0x30], 0
call fcn.101751a0
mov esi, eax
xor eax, eax
cmp esi, eax
je 0x100e1f6e
or ecx, 0xffffffff
xor edx, edx
mov dword [esi], eax
mov dword [esi + 8], eax
mov dword [esi + 0x10], ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 4], eax
mov word [esi + 0x40], dx
mov dword [esi + 0xc], eax
mov word [esi + 0x42], dx
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov eax, dword [ebx + 0x8040]
push edx
lea edx, [ecx + 2]
mov dword [ebp - 0x1c], eax
push esi
lea ecx, [edx + 1]
mov eax, 0x20500001
call fcn.10172020
mov edi, eax
test edi, edi
jl 0x100e212d
mov eax, dword [ebx + 0x10294]
mov ecx, dword [eax + 0x34]
mov dword [esi + 0x34], ecx
mov edx, dword [eax + 0x38]
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0x38], edx
mov eax, dword [ecx + 0x10]
push 0x11
push 0
lea edx, [eax + 1]
push eax
mov dword [ecx + 0x10], edx
mov eax, dword [ebx + 0x8040]
push eax
lea ecx, [ebp - 0x14]
push ecx
push ebx
call fcn.10169c20
mov edi, eax
test edi, edi
jl 0x100e212d
mov edx, dword [esi + 0xc]
mov eax, dword [ebp - 0x14]
mov dword [edx], eax
mov ecx, dword [ebx + 0x10294]
mov edx, dword [ecx + 4]
mov ecx, dword [edx]
mov eax, dword [esi + 4]
mov dword [eax], ecx
mov edx, dword [ebx + 0x10294]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x18]
mov ecx, dword [esi + 4]
mov eax, dword [eax + edx*4]
push esi
mov edi, ebx
mov dword [ecx + 4], eax
call fcn.101699c0
mov edi, eax
test edi, edi
jl 0x100e212d
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], 1
cmp eax, 1
jbe 0x100e2519
lea ecx, [eax*4 + 4]
mov dword [ebp - 0x34], ecx
lea ebx, [ebx]
call fcn.101751a0
test eax, eax
je 0x100e2126
call fcn.10171da0
mov esi, eax
test esi, esi
je 0x100e2128
push 0
mov edx, 1
push esi
lea ecx, [edx + 2]
mov eax, 0x70300001
call fcn.10172020
mov edi, eax
test edi, edi
jl 0x100e212d
mov eax, dword [ebx + 0x10294]
mov edx, dword [eax + 0x34]
mov edi, dword [ebp - 0x34]
mov dword [esi + 0x34], edx
mov eax, dword [eax + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [ebx + 0x10294]
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x24]
mov edx, dword [edx + eax*4]
mov dword [ecx], edx
mov ecx, dword [ebx + 0x10294]
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 4]
mov edx, dword [edi + edx]
mov dword [ecx + 4], edx
mov ecx, dword [esi + 4]
mov edx, dword [ebp - 0x14]
mov dword [ecx + 8], edx
mov ecx, dword [ebp - 0x18]
dec ecx
cmp eax, ecx
je 0x100e275d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x10]
push 0x11
push 0
lea edx, [eax + 1]
push eax
mov dword [ecx + 0x10], edx
mov eax, dword [ebx + 0x8040]
push eax
lea ecx, [ebp - 0x14]
push ecx
push ebx
call fcn.10169c20
mov edi, eax
test edi, edi
jl 0x100e212d
mov edx, dword [esi + 0xc]
mov eax, dword [ebp - 0x14]
mov dword [edx], eax
jmp 0x100e276d
mov ecx, dword [ebx + 0x10294]
mov edx, dword [ecx + 0xc]
mov eax, dword [esi + 0xc]
mov ecx, dword [edx]
mov dword [eax], ecx
push esi
mov edi, ebx
call fcn.101699c0
mov edi, eax
test edi, edi
jl 0x100e212d
mov eax, dword [ebp - 0x24]
add dword [ebp - 0x34], 4
inc eax
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp - 0x18]
jb 0x100e26a0
jmp 0x100e2519
mov eax, dword [ebx + 0x10294]
xor esi, esi
push esi
push eax
push ebx
call fcn.1016a100
mov edi, eax
cmp edi, esi
jl 0x100e2830
mov eax, dword [ebx + 0x10294]
mov dword [eax + 0x3c], esi
mov dword [eax], esi
mov dword [eax + 8], esi
mov eax, dword [ebp - 0x2c]
cmp eax, esi
je 0x100e27d8
push eax
mov edi, ebx
call fcn.101699c0
mov edi, eax
cmp edi, esi
jl 0x100e2830
mov dword [ebp - 0x2c], esi
xor edi, edi
jmp 0x100e2830
cmp ecx, 0x50200000
je 0x100e27fc
cmp ecx, 0x70800000
je 0x100e27fc
mov edi, 0x80004005
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push esi
push ebx
call fcn.1016a100
mov edi, eax
test edi, edi
jl 0x100e28d0
mov ebx, dword [ebx + 0x10294]
xor eax, eax
mov dword [ebx + 0x3c], eax
mov dword [ebx], eax
mov dword [ebx + 8], eax
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
mov esi, dword [ebp - 0x2c]
test esi, esi
je 0x100e2879
call fcn.10171ee0
mov eax, dword [0x101e316c]
test eax, eax
jl 0x100e2879
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test ebx, ebx
je 0x100e2879
push 0x44
push 0xfe
push esi
call sub.msvcrt.dll_memset
mov dword [esi], 0
mov eax, dword [ebx + 0x1c]
add esp, 0xc
test eax, eax
je 0x100e2873
mov dword [eax], esi
jmp 0x100e2876
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x100e28d0
mov esi, ebx
call fcn.10171ee0
mov eax, dword [0x101e316c]
test eax, eax
jl 0x100e28d0
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test esi, esi
je 0x100e28d0
push 0x44
push 0xfe
push ebx
call sub.msvcrt.dll_memset
mov dword [ebx], 0
mov eax, dword [esi + 0x1c]
add esp, 0xc
test eax, eax
je 0x100e28ca
mov dword [eax], ebx
mov dword [esi + 0x1c], ebx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4