Function at 0x1019d5a0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x74
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov byte [ebp - 2], 0
call fcn.10164550
push esi
call fcn.10175ad0
or eax, 0xffffffff
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x10]
test eax, eax
jbe 0x1019d5d4
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx]
jmp 0x1019d5d6
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], 0
test eax, eax
jbe 0x1019e5e7
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [ebx + 0x3c]
mov eax, ecx
shr eax, 0x1c
xor edx, edx
cmp eax, edx
je 0x1019e5b1
mov esi, dword [ebp + 8]
mov edi, dword [esi + 0xc]
mov dword [ebp - 0x30], edi
cmp eax, 1
jne 0x1019d98d
mov ebx, dword [ebx + 8]
mov dword [ebp - 8], edx
mov byte [ebp - 1], al
cmp ebx, edx
jbe 0x1019d670
mov eax, dword [ebp - 0x4c]
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 8]
cmp byte [ebp - 1], 0
mov edx, dword [esi]
je 0x1019d664
mov eax, dword [edx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x40211028
xor ecx, ecx
or eax, ecx
jne 0x1019d664
mov ecx, dword [edx + 0x40]
mov edx, dword [edx + 0x44]
mov eax, ecx
mov dword [ebp - 0x3c], edx
and eax, 0x800000
xor edx, edx
or eax, edx
je 0x1019d664
and ecx, 0x400000
xor eax, eax
or ecx, eax
mov byte [ebp - 1], 1
je 0x1019d668
mov byte [ebp - 1], 0
add esi, 4
sub edi, 1
jne 0x1019d625
xor eax, eax
mov dword [ebp - 0xc], eax
test ebx, ebx
jbe 0x1019d8cc
jmp 0x1019d683
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x4c]
mov ecx, dword [esi + 0xc]
mov edi, dword [ecx + eax*4]
mov edx, dword [esi + 4]
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x24], edi
cmp ecx, 0xffffffff
jne 0x1019d69e
or eax, ecx
jmp 0x1019d6b3
mov edx, dword [ecx + 0x74]
mov eax, ecx
cmp ecx, edx
je 0x1019d6b0
mov eax, edx
mov edx, dword [eax + 0x74]
cmp eax, edx
jne 0x1019d6a7
mov dword [ecx + 0x74], eax
mov ecx, dword [esi + 0x3c]
and ecx, 0xfff00000
cmp ecx, 0x10000000
je 0x1019d6cc
cmp ecx, 0x10100000
jne 0x1019d740
mov esi, dword [edi + 0x4c]
mov ecx, dword [eax + 0x4c]
cmp esi, 2
je 0x1019d70f
cmp ecx, 2
je 0x1019d70f
cmp esi, 3
je 0x1019d708
cmp ecx, 3
je 0x1019d708
cmp esi, 4
je 0x1019d701
cmp ecx, 4
je 0x1019d701
cmp esi, 5
je 0x1019d6fa
cmp ecx, 5
jne 0x1019d740
mov edx, 5
jmp 0x1019d714
mov edx, 4
jmp 0x1019d714
mov edx, 3
jmp 0x1019d714
mov edx, 2
cmp edx, esi
je 0x1019d71f
mov dword [edi + 0x4c], edx
mov byte [ebp - 2], 1
cmp edx, dword [eax + 0x4c]
je 0x1019d740
mov ecx, dword [eax + 0x50]
mov ecx, dword [ecx + 8]
and ecx, 2
xor esi, esi
or ecx, esi
je 0x1019d740
cmp dword [eax + 0x20], 1
jne 0x1019d740
mov dword [eax + 0x4c], edx
mov byte [ebp - 2], 1
cmp byte [ebp - 1], 0
je 0x1019d88f
mov eax, dword [edi + 0x40]
and eax, 0x800000
xor ecx, ecx
or eax, ecx
jne 0x1019d765
mov esi, dword [ebp - 0x18]
mov ebx, 0x80004005
jmp 0x1019d880
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x8024]
mov eax, dword [0x101e316c]
test eax, eax
jge 0x1019d77b
xor eax, eax
jmp 0x1019d782
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], 0
je 0x1019d7a9
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x1019d793
mov esi, ecx
jmp 0x1019d7ba
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
test edx, edx
jne 0x1019d79f
mov dword [eax + 0x10], edx
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x1019d7ba
mov ecx, dword [eax + 8]
push 0x10
push pe_nt_image_headers32
call fcn.101d8457
mov esi, eax
xor ecx, ecx
cmp esi, ecx
je 0x1019d809
or eax, 0xffffffff
push ecx
push ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x48], eax
push ebx
mov eax, esi
mov dword [esi], ecx
mov dword [esi + 4], ecx
mov dword [esi + 0x94], ecx
mov dword [esi + 0x98], ecx
mov dword [esi + 0x24], ecx
call fcn.10165570
mov ebx, eax
test ebx, ebx
jl 0x1019d810
mov edi, dword [ebp + 8]
push 0
mov ebx, esi
call fcn.10169830
mov ebx, eax
test ebx, ebx
jl 0x1019d810
mov edi, dword [ebp - 0x24]
xor ebx, ebx
mov dword [ebp - 0x18], esi
jmp 0x1019d85d
mov ebx, 0x8007000e
jmp 0x1019d85a
mov edi, esi
call fcn.101654a0
mov eax, dword [0x101e316c]
test eax, eax
jge 0x1019d824
xor edi, edi
jmp 0x1019d82d
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 0x1019d851
mov dword [eax], esi
jmp 0x1019d854
mov dword [edi + 0xc], esi
mov dword [edi + 0x10], esi
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x18]
test ebx, ebx
jl 0x1019d880
mov ecx, dword [edi + 0x4c]
mov dword [esi + 0x4c], ecx
mov ecx, edi
mov eax, esi
mov dword [esi + 0x74], esi
call fcn.10166070
mov edx, dword [esi + 0x44]
or dword [esi + 0x40], 0x800010
mov dword [esi + 0x44], edx
mov eax, ebx
test ebx, ebx
jl 0x1019e619
mov dword [edi + 0x74], esi
jmp 0x1019d8a4
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp + 8]
push ecx
push edx
call fcn.1019e640
test eax, eax
jl 0x1019e619
mov eax, dword [edi + 0x74]
cmp eax, edi
jne 0x1019d8b0
inc dword [ebp - 8]
jmp 0x1019d8b9
cmp dword [eax + 0x74], 0xffffffff
jne 0x1019d8b9
mov dword [eax + 0x74], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ecx + 8]
jb 0x1019d680
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 8]
cmp dword [ebp - 8], eax
je 0x1019e5b1
xor edi, edi
xor ebx, ebx
test eax, eax
jbe 0x1019d97e
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + ebx*4]
cmp dword [eax + 0x74], eax
jne 0x1019d901
mov dword [ecx + edi*4], eax
mov eax, dword [edx + 4]
mov ecx, dword [eax + ebx*4]
mov dword [eax + edi*4], ecx
inc edi
jmp 0x1019d95a
cmp eax, 0xffffffff
jne 0x1019d90a
or ecx, eax
jmp 0x1019d91f
mov esi, dword [eax + 0x74]
mov ecx, eax
cmp eax, esi
je 0x1019d91c
mov ecx, esi
mov esi, dword [ecx + 0x74]
cmp ecx, esi
jne 0x1019d913
mov dword [eax + 0x74], ecx
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + 8]
and eax, 2
xor esi, esi
or eax, esi
je 0x1019d95a
cmp dword [ecx + 0x8c], esi
jne 0x1019d95a
mov eax, dword [edx + 0xc]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x8c]
mov dword [ecx + 0x8c], eax
mov eax, dword [edx + 0xc]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x90]
mov dword [ecx + 0x90], eax
inc ebx
cmp ebx, dword [edx + 8]
jb 0x1019d8e7
test edi, edi
je 0x1019d97e
mov eax, dword [edx + 0x3c]
xor eax, edi
and eax, 0xfffff
xor eax, dword [edx + 0x3c]
mov dword [edx], edi
mov dword [edx + 0x3c], eax
mov dword [edx + 8], edi
jmp 0x1019e5ad
xor eax, eax
mov dword [edx + 0x3c], eax
mov dword [edx], edi
mov dword [edx + 8], edi
jmp 0x1019e5ad
cmp eax, 2
jne 0x1019df33
mov ebx, dword [ebx + 8]
mov dword [ebp - 8], edx
mov byte [ebp - 1], 1
cmp ebx, edx
jbe 0x1019d9fb
mov eax, dword [ebp - 0x4c]
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 8]
lea ecx, [ecx]
cmp byte [ebp - 1], 0
mov edx, dword [esi]
je 0x1019d9ef
mov eax, dword [edx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x40211028
xor ecx, ecx
or eax, ecx
jne 0x1019d9ef
mov ecx, dword [edx + 0x40]
mov edx, dword [edx + 0x44]
mov eax, ecx
mov dword [ebp - 0x3c], edx
and eax, 0x800000
xor edx, edx
or eax, edx
je 0x1019d9ef
and ecx, 0x400000
xor eax, eax
or ecx, eax
mov byte [ebp - 1], 1
je 0x1019d9f3
mov byte [ebp - 1], 0
add esi, 4
sub edi, 1
jne 0x1019d9b0
mov edi, dword [ebp - 0x4c]
xor esi, esi
mov dword [ebp - 0x24], esi
test ebx, ebx
jbe 0x1019dd11
jmp 0x1019da10
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + esi*4]
mov edx, dword [edi + 4]
mov dword [ebp - 0xc], ecx
mov ecx, dword [edx + esi*4]
cmp ecx, 0xffffffff
jne 0x1019da28
or ebx, ecx
jmp 0x1019da3f
mov edx, dword [ecx + 0x74]
mov eax, ecx
cmp ecx, edx
je 0x1019da3a
mov eax, edx
mov edx, dword [eax + 0x74]
cmp eax, edx
jne 0x1019da31
mov dword [ecx + 0x74], eax
mov ebx, eax
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
add eax, esi
mov ecx, dword [ecx + eax*4]
cmp ecx, 0xffffffff
jne 0x1019da53
or esi, ecx
jmp 0x1019da6e
mov edx, dword [ecx + 0x74]
mov eax, ecx
cmp ecx, edx
je 0x1019da69
lea esp, [esp]
mov eax, edx
mov edx, dword [eax + 0x74]
cmp eax, edx
jne 0x1019da60
mov dword [ecx + 0x74], eax
mov esi, eax
mov eax, dword [edi + 0x3c]
and eax, 0xfff00000
cmp eax, 0x20000000
je 0x1019da88
cmp eax, 0x20100000
jne 0x1019dbb2
mov edx, dword [ebx + 0x4c]
mov edi, dword [esi + 0x4c]
cmp esi, 0xffffffff
je 0x1019dab4
mov eax, dword [esi + 0x50]
mov eax, dword [eax + 8]
and eax, 0x100
xor ecx, ecx
or eax, ecx
je 0x1019dab4
mov eax, dword [esi + 0x40]
and eax, 0x800000
or eax, ecx
je 0x1019dab4
mov eax, edx
jmp 0x1019db23
cmp ebx, 0xffffffff
je 0x1019dada
mov eax, dword [ebx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x100
xor ecx, ecx
or eax, ecx
je 0x1019dada
mov eax, dword [ebx + 0x40]
and eax, 0x800000
or eax, ecx
je 0x1019dada
mov eax, edi
jmp 0x1019db23
cmp edx, 5
je 0x1019db1e
cmp edi, 5
je 0x1019db1e
cmp edx, 4
je 0x1019db17
cmp edi, 4
je 0x1019db17
cmp edx, 3
je 0x1019db10
cmp edi, 3
je 0x1019db10
cmp edx, 2
je 0x1019db09
cmp edi, 2
je 0x1019db09
mov eax, 0x10
jmp 0x1019db23
mov eax, 2
jmp 0x1019db23
mov eax, 3
jmp 0x1019db23
mov eax, 4
jmp 0x1019db23
mov eax, 5
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + 0x4c]
cmp eax, 2
je 0x1019db6d
cmp ecx, 2
je 0x1019db6d
cmp eax, 3
je 0x1019db66
cmp ecx, 3
je 0x1019db66
cmp eax, 4
je 0x1019db5f
cmp ecx, 4
je 0x1019db5f
cmp eax, 5
je 0x1019db58
cmp ecx, 5
je 0x1019db58
mov ecx, 0x10
jmp 0x1019db72
mov ecx, 5
jmp 0x1019db72
mov ecx, 4
jmp 0x1019db72
mov ecx, 3
jmp 0x1019db72
mov ecx, 2
cmp ecx, edx
je 0x1019db92
mov eax, dword [ebx + 0x50]
mov eax, dword [eax + 8]
and eax, 2
xor edx, edx
or eax, edx
je 0x1019db92
cmp dword [ebx + 0x20], 1
jne 0x1019db92
mov dword [ebx + 0x4c], ecx
mov byte [ebp - 2], 1
cmp ecx, edi
je 0x1019dbb2
mov eax, dword [esi + 0x50]
mov eax, dword [eax + 8]
and eax, 2
xor edx, edx
or eax, edx
je 0x1019dbb2
cmp dword [esi + 0x20], 1
jne 0x1019dbb2
mov dword [esi + 0x4c], ecx
mov byte [ebp - 2], 1
cmp byte [ebp - 1], 0
je 0x1019dcd1
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x40]
and eax, 0x800000
xor ecx, ecx
xor edi, edi
or eax, ecx
jne 0x1019dbdc
mov esi, dword [ebp - 0x1c]
mov ebx, 0x80004005
jmp 0x1019dcba
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x8024]
mov eax, dword [0x101e316c]
cmp eax, edi
jge 0x1019dbf2
xor eax, eax
jmp 0x1019dbf9
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], edi
je 0x1019dc21
mov ecx, dword [eax + 0xc]
cmp ecx, edi
jne 0x1019dc0b
xor ecx, ecx
mov esi, ecx
jmp 0x1019dc32
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
cmp edx, edi
jne 0x1019dc17
mov dword [eax + 0x10], edi
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x1019dc32
mov ecx, dword [eax + 8]
push 0x10
push pe_nt_image_headers32
call fcn.101d8457
mov esi, eax
cmp esi, edi
je 0x1019dc7e
or eax, 0xffffffff
push edi
push edi
mov dword [esi + 0x50], eax
mov dword [esi + 0x48], eax
push ebx
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
mov ebx, eax
cmp ebx, edi
jl 0x1019dc85
mov edi, dword [ebp + 8]
push 0
mov ebx, esi
call fcn.10169830
mov ebx, eax
test ebx, ebx
jl 0x1019dc85
xor ebx, ebx
mov dword [ebp - 0x1c], esi
xor edi, edi
jmp 0x1019dc96
mov ebx, 0x8007000e
jmp 0x1019dc93
mov edi, esi
call fcn.101654a0
call fcn.10168d60
xor edi, edi
mov esi, dword [ebp - 0x1c]
cmp ebx, edi
jl 0x1019dcba
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x4c]
mov eax, esi
mov dword [esi + 0x4c], edx
mov dword [esi + 0x74], esi
call fcn.10166070
mov eax, dword [esi + 0x44]
or dword [esi + 0x40], 0x800010
mov dword [esi + 0x44], eax
cmp ebx, edi
mov eax, ebx
jl 0x1019e619
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x4c]
mov dword [ecx + 0x74], esi
mov esi, ecx
jmp 0x1019dcec
mov edi, dword [ebp - 0x4c]
mov edx, dword [ebp + 8]
push esi
mov esi, dword [ebp - 0xc]
push ebx
push esi
push edi
push edx
call fcn.1019e790
test eax, eax
jl 0x1019e619
mov eax, dword [esi + 0x74]
cmp eax, esi
jne 0x1019dcf8
inc dword [ebp - 8]
jmp 0x1019dd01
cmp dword [eax + 0x74], 0xffffffff
jne 0x1019dd01
mov dword [eax + 0x74], eax
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, dword [edi + 8]
jb 0x1019da10
mov eax, dword [edi + 8]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 8], eax
je 0x1019e5b1
mov ebx, dword [ebp - 0x4c]
mov eax, dword [ebx + 0x3c]
mov esi, eax
and esi, 0xfffff
mov ecx, 0
mov dword [ebp - 0x24], esi
mov byte [ebp - 1], cl
jbe 0x1019de5d
mov edx, dword [ebx + 0xc]
mov edi, dword [edx]
mov edi, dword [edi + 0x74]
cmp dword [edi + 0x88], ebx
je 0x1019dd50
inc ecx
add edx, 4
sub esi, 1
jne 0x1019dd42
test ecx, ecx
jbe 0x1019de5d
cmp ecx, dword [ebp - 0x2c]
je 0x1019de5d
mov edi, dword [ebp - 0x24]
sub edi, ecx
and eax, 0xfff00000
mov edx, eax
push edi
xor edx, edi
lea ecx, [edi + edi]
push ecx
mov ecx, dword [ebp + 8]
and edx, 0xfffff
xor edx, eax
push edx
lea eax, [ebp - 0x34]
push eax
push ecx
mov dword [ebp - 0x3c], edi
call fcn.10169e20
test eax, eax
jl 0x1019e619
mov edx, dword [ebx + 0x34]
mov esi, dword [ebp - 0x34]
mov dword [esi + 0x34], edx
mov eax, dword [ebx + 0x38]
lea edx, [edi*4]
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x24]
mov dword [esi + 0x38], eax
xor ecx, ecx
add edx, edx
xor eax, eax
add edx, edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x20], edx
mov edx, dword [ebx + 0xc]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x38], edx
mov edx, dword [edx + 0x74]
cmp dword [edx + 0x88], ebx
je 0x1019ddf7
mov edx, dword [ebp - 0x38]
mov dword [edx + 0xc], 0xffffffff
mov edx, dword [ebx + 0xc]
mov edx, dword [edx + eax*4]
mov dword [edx + 0x88], 0xffffffff
jmp 0x1019de31
mov edx, dword [ebx + 4]
mov edx, dword [edx + eax*4]
mov edi, dword [esi + 4]
mov dword [ecx + edi], edx
mov ecx, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
mov ecx, dword [edi + ecx]
mov edx, dword [esi + 4]
mov edi, dword [ebp - 0xc]
mov dword [edi + edx], ecx
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x2c]
mov edi, dword [esi + 0xc]
mov edx, dword [edx + eax*4]
mov dword [ecx + edi], edx
mov edi, dword [ebp - 0x3c]
add ecx, 4
add dword [ebp - 0xc], 4
mov dword [ebp - 0x2c], ecx
add dword [ebp - 0x20], 4
inc eax
cmp eax, dword [ebp - 0x24]
jb 0x1019ddc7
push esi
push ebx
call fcn.10172c80
test eax, eax
jl 0x1019e619
xor eax, eax
mov dword [esi + 0x3c], eax
mov dword [esi], eax
mov dword [esi + 8], eax
cmp dword [ebp - 8], edi
jne 0x1019de5d
mov byte [ebp - 1], 1
cmp dword [ebp - 8], 0
jne 0x1019de97
mov esi, dword [ebx + 8]
mov eax, 1
cmp esi, eax
jbe 0x1019de97
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
mov edx, dword [edx + 0x74]
mov edx, dword [edx + 0x50]
add ecx, 4
lea ecx, [ecx]
mov edi, dword [ecx]
mov edi, dword [edi + 0x74]
cmp edx, dword [edi + 0x50]
jne 0x1019de94
inc eax
add ecx, 4
cmp eax, esi
jb 0x1019de80
jmp 0x1019de97
mov dword [ebp - 8], esi
cmp byte [ebp - 1], 0
jne 0x1019e5ad
cmp dword [ebp - 8], 0
je 0x1019ded6
xor ecx, ecx
cmp dword [ebx + 8], ecx
jbe 0x1019dec4
mov edi, edi
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x74], eax
je 0x1019debe
mov dword [eax + 0x74], eax
inc ecx
cmp ecx, dword [ebx + 8]
jb 0x1019deb0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp + 8]
push ecx
push edx
call fcn.1016a4a0
jmp 0x1019e5b1
xor edi, edi
cmp dword [ebx + 8], edi
jbe 0x1019df24
lea ecx, [ecx]
mov eax, dword [ebx + 0xc]
mov esi, dword [eax + edi*4]
mov ecx, dword [esi + 0x74]
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + 8]
and eax, 2
xor edx, edx
or eax, edx
je 0x1019df1e
cmp dword [ecx + 0x8c], edx
jne 0x1019df1e
mov edx, dword [esi + 0x8c]
mov dword [ecx + 0x8c], edx
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + edi*4]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x90], eax
inc edi
cmp edi, dword [ebx + 8]
jb 0x1019dee0
xor eax, eax
mov dword [ebx + 0x3c], eax
mov dword [ebx], eax
mov dword [ebx + 8], eax
jmp 0x1019e5ad
cmp eax, 3
jne 0x1019e256
mov dword [ebp - 0x20], edx
mov byte [ebp - 1], 1
cmp dword [ebx + 8], edx
jbe 0x1019df9b
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 8]
mov edi, edi
cmp byte [ebp - 1], 0
mov edx, dword [esi]
je 0x1019df8f
mov eax, dword [edx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x40211028
xor ecx, ecx
or eax, ecx
jne 0x1019df8f
mov ecx, dword [edx + 0x40]
mov edx, dword [edx + 0x44]
mov eax, ecx
mov dword [ebp - 0x3c], edx
and eax, 0x800000
xor edx, edx
or eax, edx
je 0x1019df8f
and ecx, 0x400000
xor eax, eax
or ecx, eax
mov byte [ebp - 1], 1
je 0x1019df93
mov byte [ebp - 1], 0
add esi, 4
sub edi, 1
jne 0x1019df50
cmp dword [ebx + 8], 0
mov dword [ebp - 0x24], 0
jbe 0x1019e186
lea esp, [esp]
mov edx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + edi*4]
mov eax, dword [edx + 4]
mov ecx, dword [eax + edi*4]
mov ecx, dword [ecx + 0x74]
mov dword [ebp - 0x38], ecx
mov ecx, dword [edx + 8]
lea esi, [ecx + edi]
mov esi, dword [eax + esi*4]
mov esi, dword [esi + 0x74]
lea ecx, [edi + ecx*2]
mov eax, dword [eax + ecx*4]
mov ecx, dword [edx + 0x3c]
mov edi, dword [eax + 0x74]
and ecx, 0xfff00000
cmp ecx, 0x30000000
jne 0x1019e0d1
mov edx, dword [esi + 0x4c]
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x3c], eax
cmp edx, 5
je 0x1019e03f
cmp eax, 5
je 0x1019e03f
cmp edx, 4
je 0x1019e038
cmp eax, 4
je 0x1019e038
cmp edx, 3
je 0x1019e031
cmp eax, 3
je 0x1019e031
cmp edx, 2
je 0x1019e02a
cmp eax, 2
je 0x1019e02a
mov eax, 0x10
jmp 0x1019e044
mov eax, 2
jmp 0x1019e044
mov eax, 3
jmp 0x1019e044
mov eax, 4
jmp 0x1019e044
mov eax, 5
mov ecx, dword [ebx + 0x4c]
cmp eax, 2
je 0x1019e08b
cmp ecx, 2
je 0x1019e08b
cmp eax, 3
je 0x1019e084
cmp ecx, 3
je 0x1019e084
cmp eax, 4
je 0x1019e07d
cmp ecx, 4
je 0x1019e07d
cmp eax, 5
je 0x1019e076
cmp ecx, 5
je 0x1019e076
mov ecx, 0x10
jmp 0x1019e090
mov ecx, 5
jmp 0x1019e090
mov ecx, 4
jmp 0x1019e090
mov ecx, 3
jmp 0x1019e090
mov ecx, 2
cmp ecx, edx
je 0x1019e0b0
mov eax, dword [esi + 0x50]
mov eax, dword [eax + 8]
and eax, 2
xor edx, edx
or eax, edx
je 0x1019e0b0
cmp dword [esi + 0x20], 1
jne 0x1019e0b0
mov dword [esi + 0x4c], ecx
mov byte [ebp - 2], 1
cmp ecx, dword [ebp - 0x3c]
je 0x1019e0d1
mov eax, dword [edi + 0x50]
mov eax, dword [eax + 8]
and eax, 2
xor edx, edx
or eax, edx
je 0x1019e0d1
cmp dword [edi + 0x20], 1
jne 0x1019e0d1
mov dword [edi + 0x4c], ecx
mov byte [ebp - 2], 1
cmp byte [ebp - 1], 0
je 0x1019e140
mov eax, dword [ebx + 0x40]
and eax, 0x800000
xor ecx, ecx
or eax, ecx
jne 0x1019e0fc
mov edi, 0x80004005
mov esi, dword [ebp - 0x28]
mov eax, edi
test edi, edi
jl 0x1019e619
mov dword [ebx + 0x74], esi
jmp 0x1019e15c
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x8024]
push 0x11
push 0
push 0
push edx
lea ecx, [ebp - 0x28]
push ecx
push eax
call fcn.10169c20
mov edi, eax
test edi, edi
jl 0x1019e0ea
mov edx, dword [ebx + 0x4c]
mov esi, dword [ebp - 0x28]
mov dword [esi + 0x4c], edx
mov ecx, ebx
mov eax, esi
mov dword [esi + 0x74], esi
call fcn.10166070
mov eax, dword [esi + 0x44]
or dword [esi + 0x40], 0x800010
mov dword [esi + 0x44], eax
jmp 0x1019e0ed
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp + 8]
push edi
push esi
push ecx
push ebx
push edx
push eax
call fcn.1019f340
test eax, eax
jl 0x1019e619
mov eax, dword [ebx + 0x74]
cmp eax, ebx
jne 0x1019e168
inc dword [ebp - 0x20]
jmp 0x1019e171
cmp dword [eax + 0x74], 0xffffffff
jne 0x1019e171
mov dword [eax + 0x74], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, dword [ecx + 8]
jb 0x1019dfb0
mov ebx, ecx
mov esi, dword [ebx + 8]
mov eax, dword [ebp - 0x20]
cmp eax, esi
je 0x1019e5b1
mov edx, dword [ebp - 0x4c]
test eax, eax
jne 0x1019e227
mov eax, 1
cmp esi, eax
jbe 0x1019e1c9
mov ecx, dword [edx + 0xc]
mov edi, dword [ecx]
mov edi, dword [edi + 0x74]
mov edi, dword [edi + 0x50]
add ecx, 4
mov ebx, dword [ecx]
mov ebx, dword [ebx + 0x74]
cmp edi, dword [ebx + 0x50]
jne 0x1019e223
inc eax
add ecx, 4
cmp eax, dword [edx + 8]
jb 0x1019e1b6
xor edi, edi
test esi, esi
jbe 0x1019e214
nop
mov eax, dword [edx + 0xc]
mov esi, dword [eax + edi*4]
mov ecx, dword [esi + 0x74]
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + 8]
and eax, 2
xor ebx, ebx
or eax, ebx
je 0x1019e20e
cmp dword [ecx + 0x8c], ebx
jne 0x1019e20e
mov eax, dword [esi + 0x8c]
mov dword [ecx + 0x8c], eax
mov eax, dword [edx + 0xc]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x90]
mov dword [ecx + 0x90], eax
inc edi
cmp edi, dword [edx + 8]
jb 0x1019e1d0
xor eax, eax
mov dword [edx + 0x3c], eax
mov dword [edx], eax
mov dword [edx + 8], eax
jmp 0x1019e5ad
test esi, esi
je 0x1019e1c9
xor ecx, ecx
test esi, esi
jbe 0x1019e244
lea ecx, [ecx]
mov eax, dword [edx + 0xc]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x74], eax
je 0x1019e23e
mov dword [eax + 0x74], eax
inc ecx
cmp ecx, dword [edx + 8]
jb 0x1019e230
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp + 8]
push ecx
push edx
call fcn.1016a4a0
jmp 0x1019e5b1
mov eax, ecx
and eax, 0xfff00000
cmp eax, 0x50000000
je 0x1019e26f
cmp eax, 0x70800000
jne 0x1019e33a
mov ecx, dword [ebx + 0xc]
mov edi, dword [ecx]
mov eax, dword [edi + 0x50]
mov eax, dword [eax + 8]
and eax, 0x40211028
xor ecx, ecx
or eax, ecx
jne 0x1019e2b9
mov eax, dword [edi + 0x40]
and eax, 0x800000
or eax, ecx
je 0x1019e2b9
mov eax, edi
call fcn.100fa410
test al, al
jne 0x1019e2b9
mov edx, dword [ebp + 8]
lea esi, [ebp - 0x44]
mov ebx, edi
call fcn.1019c8d0
test eax, eax
jl 0x1019e619
mov edx, dword [ebp - 0x44]
mov dword [edi + 0x74], edx
jmp 0x1019e2ca
push 1
push ebx
push esi
call fcn.1019fb10
test eax, eax
jl 0x1019e619
cmp eax, 1
je 0x1019e2d3
mov byte [ebp - 2], 1
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0xc]
mov esi, dword [eax]
mov ecx, dword [esi + 0x74]
cmp ecx, esi
je 0x1019e5b1
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + 8]
and eax, 2
xor edx, edx
or eax, edx
je 0x1019e32a
cmp dword [ecx + 0x8c], edx
jne 0x1019e32a
mov eax, dword [esi + 0x8c]
mov dword [ecx + 0x8c], eax
mov eax, dword [ebp - 0x4c]
mov esi, dword [eax + 0xc]
mov esi, dword [esi]
mov esi, dword [esi + 0x90]
mov dword [ecx + 0x90], esi
mov dword [eax + 0x3c], edx
mov dword [eax], edx
mov dword [eax + 8], edx
jmp 0x1019e5b1
mov eax, dword [ebp - 0x4c]
mov dword [eax + 0x3c], edx
mov dword [eax], edx
mov dword [eax + 8], edx
jmp 0x1019e5b1
cmp eax, 0x50100000
jne 0x1019e5b1
mov eax, dword [ebp - 0x4c]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov ecx, dword [ebp + 8]
add esi, 0x1c
call fcn.1017c6c0
test al, al
je 0x1019e5b1
mov esi, dword [ebp - 0x4c]
mov eax, 1
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x74], eax
or eax, 0xffffffff
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x70], eax
mov eax, dword [esi + 4]
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov eax, ebx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], edx
call fcn.100db360
test al, al
je 0x1019e462
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x54]
push eax
call fcn.101658d0
test eax, eax
jne 0x1019e462
fldz
fcomp qword [ebp - 0x54]
fnstsw ax
test ah, 5
jp 0x1019e456
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x70], 2
call fcn.100db360
test al, al
je 0x1019e475
mov ebx, dword [ebp - 0x30]
lea ecx, [ebp - 0x5c]
push ecx
call fcn.101658d0
test eax, eax
jne 0x1019e475
fldz
fcomp qword [ebp - 0x5c]
fnstsw ax
test ah, 5
jp 0x1019e44b
mov eax, dword [ebp - 0x2c]
call fcn.100db360
test al, al
je 0x1019e475
mov ebx, dword [ebp - 0x2c]
lea edx, [ebp - 0x64]
push edx
call fcn.101658d0
test eax, eax
jne 0x1019e475
fld qword [ebp - 0x64]
fcom qword [0x100a2ff8]
fnstsw ax
test ah, 0x44
jp 0x1019e433
fstp st(0)
mov dword [ebp - 0x6c], 1
xor ebx, ebx
jmp 0x1019e4a6
fcomp qword [0x100a2fe0]
fnstsw ax
test ah, 0x44
jp 0x1019e475
mov dword [ebp - 0x6c], 3
xor ebx, ebx
jmp 0x1019e4a6
mov dword [ebp - 0x6c], 0
xor ebx, ebx
jmp 0x1019e4a6
xor eax, eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
xor ebx, ebx
jmp 0x1019e4a6
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
cmp dword [ecx + 0x20], 0
jne 0x1019e475
mov dword [ebp - 0x70], 0
mov edx, dword [esi + 0xc]
mov eax, dword [edx + 8]
cmp dword [eax + 0x20], 0
jne 0x1019e488
mov dword [ebp - 0x6c], 0
cmp dword [ebp - 0x70], 0xffffffff
je 0x1019e5b1
cmp dword [ebp - 0x6c], 0xffffffff
je 0x1019e5b1
mov edi, dword [ebp + 8]
xor ebx, ebx
jmp 0x1019e4a6
mov edi, dword [ebp + 8]
mov eax, dword [ebp + ebx - 0x74]
cmp eax, 3
ja case.default.0x1019e4b3
jmp dword [eax*4 + 0x1019e624]
cmp dword [ebp - 0x10], 0xffffffff
jne 0x1019e4ec
fldz
mov ecx, dword [edi + 0x8024]
sub esp, 8
fstp qword [esp]
push ecx
lea edx, [ebp - 0x10]
push edx
push edi
mov eax, 4
call fcn.10169cc0
test eax, eax
jl 0x1019e619
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x74], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + ebx]
mov edx, dword [ebp - 0x10]
mov dword [ecx + 0x74], edx
jmp case.default.0x1019e4b3
cmp dword [ebp - 0x14], 0xffffffff
jne 0x1019e52c
fld1
mov eax, dword [edi + 0x8024]
sub esp, 8
fstp qword [esp]
push eax
lea ecx, [ebp - 0x14]
push ecx
push edi
mov eax, 4
call fcn.10169cc0
test eax, eax
jl 0x1019e619
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x74], eax
mov edx, dword [esi + 0xc]
mov eax, dword [edx + ebx]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x74], ecx
jmp case.default.0x1019e4b3
mov edx, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + ebx]
mov edx, dword [edx]
mov dword [ecx + 0x74], edx
jmp case.default.0x1019e4b3
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + ebx]
mov eax, dword [eax + 4]
mov dword [edx + 0x74], eax
mov ecx, dword [esi + 0xc]
mov edx, dword [ebx + ecx]
mov ecx, dword [edx + 0x74]
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + 8]
and eax, 2
xor edi, edi
or eax, edi
je 0x1019e597
cmp dword [ecx + 0x8c], edi
jne 0x1019e597
mov edx, dword [edx + 0x8c]
mov dword [ecx + 0x8c], edx
mov eax, dword [esi + 0xc]
mov edx, dword [eax + ebx]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x90], eax
add ebx, 4
cmp ebx, 0x10
jb 0x1019e4a3
xor eax, eax
mov dword [esi + 0x3c], eax
mov dword [esi], eax
mov dword [esi + 8], eax
mov byte [ebp - 2], 1
mov ecx, dword [ebp - 0x48]
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x10]
inc ecx
mov dword [ebp - 0x48], ecx
cmp ecx, eax
jb 0x1019e5d0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], eax
mov ecx, eax
jmp 0x1019e5d9
mov edx, dword [edi + 0x14]
mov edx, dword [edx + ecx*4]
mov dword [ebp - 0x4c], edx
cmp ecx, eax
jb 0x1019d5e8
cmp byte [ebp - 2], 0
jne 0x1019e5f5
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 4
push edi
call fcn.101645a0
mov esi, eax
call fcn.10164720
test eax, eax
je 0x1019e611
test esi, esi
je 0x1019e611
mov eax, 1
jmp 0x1019e613
xor eax, eax
test eax, eax
jl 0x1019e619
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4