Function at 0x100d4500
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x200
mov eax, dword [0x101e0048]
xor eax, ebp
mov dword [ebp - 8], eax
cmp byte [ebp + 8], 0
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x110], esi
je 0x100d452c
xor edi, edi
xor eax, eax
jmp 0x100d4543
movzx eax, byte [esi + 0x102e5]
neg eax
sbb eax, eax
and eax, 0x40cf503
add eax, 0x42415443
xor edi, edi
mov dword [ebp - 0x148], eax
lea eax, [ebp - 0x140]
push 0x3c
mov dword [ebp - 0x13c], eax
xor eax, eax
lea ecx, [ebp - 0x1fc]
push edi
push ecx
mov dword [ebp - 0x144], edi
mov dword [ebp - 0x140], edi
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x184], edi
mov dword [ebp - 0x180], edi
mov dword [ebp - 0x17c], edi
mov byte [ebp - 0x178], al
mov byte [ebp - 0x177], 1
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x12c], edi
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x194], edi
mov dword [ebp - 0x188], edi
call sub.msvcrt.dll_memset
mov edx, dword [esi + 0x8118]
add esp, 0xc
mov ecx, 0x18
push edi
mov dword [ebp - 0x1d8], ecx
mov dword [ebp - 0x1d0], ecx
mov ecx, dword [esi + 0x8124]
mov dword [ebp - 0x1a8], edx
push 1
lea edx, [ebp - 0x1b0]
mov dword [ebp - 0x19c], ecx
mov eax, 0x1c
push edx
lea ecx, [ebp - 0x148]
push ecx
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d4], 0x20
mov dword [ebp - 0x1cc], 0x10
mov dword [ebp - 0x1c8], 8
mov dword [ebp - 0x1b0], eax
call fcn.100b41f0
mov esi, eax
cmp esi, edi
jl 0x100d56a5
mov edx, dword [ebp - 0x110]
xor eax, eax
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x128], eax
mov eax, dword [edx + 8]
or ebx, 0xffffffff
mov dword [ebp - 0x120], eax
inc ebx
cmp ebx, dword [ebp - 0x120]
jae 0x100d47c1
mov edi, dword [ebp - 0x110]
mov ecx, dword [edi + 0x7f2c]
mov edx, dword [ecx + ebx*4]
cmp dword [edx + 0x24], 0
je 0x100d4680
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x160], eax
mov eax, ecx
and eax, 0x200
xor esi, esi
or eax, esi
je 0x100d4680
and ecx, 0x800100
xor eax, eax
or ecx, eax
jne 0x100d4680
mov eax, dword [edi + 0x7f2c]
mov dword [ebp - 0x124], eax
mov edx, dword [edx + 0x24]
mov ecx, dword [edx]
mov eax, dword [edx + 0x40]
mov esi, dword [edx + 0x50]
mov dword [ebp - 0x170], ecx
and eax, 0x100
xor ecx, ecx
or eax, ecx
jne 0x100d476c
mov ecx, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov eax, ecx
and eax, 0x80
xor edi, edi
or eax, edi
je 0x100d471f
and esi, 0x40
xor eax, eax
or eax, esi
jne 0x100d471f
mov edx, dword [edx + 0x60]
cmp dword [ebp - 0x118], edx
ja 0x100d476c
inc edx
mov dword [ebp - 0x118], edx
jmp 0x100d476c
mov edx, dword [edx + 0x60]
mov eax, ecx
and eax, 0x2000
xor esi, esi
or eax, esi
je 0x100d4740
cmp dword [ebp - 0x11c], edx
ja 0x100d476c
inc edx
mov dword [ebp - 0x11c], edx
jmp 0x100d476c
and ecx, 0x20000
xor eax, eax
or ecx, eax
je 0x100d475d
cmp dword [ebp - 0x128], edx
ja 0x100d476c
inc edx
mov dword [ebp - 0x128], edx
jmp 0x100d476c
cmp dword [ebp - 0x114], edx
ja 0x100d476c
inc edx
mov dword [ebp - 0x114], edx
mov edx, dword [ebp - 0x170]
test edx, edx
jne 0x100d46d6
mov edx, dword [ebp - 0x124]
lea edi, [edx + ebx*4]
inc ebx
add edi, 4
cmp ebx, dword [ebp - 0x120]
jae 0x100d47c1
mov edx, dword [edi]
cmp dword [edx + 0x24], 0
je 0x100d4783
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x160], eax
mov eax, ecx
and eax, 0x200
xor esi, esi
or eax, esi
je 0x100d4783
and ecx, 0x800100
xor eax, eax
or ecx, eax
jne 0x100d4783
jmp 0x100d46d3
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x11c]
lea edx, [eax + ecx]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x118]
lea esi, [edx + eax]
add esi, ecx
mov dword [ebp - 0x120], esi
mov esi, dword [ebp - 0x128]
lea ebx, [esi + edx]
add ebx, eax
add ebx, ecx
mov dword [ebp - 0x114], ebx
cmp ebx, 0x3ffffffd
jbe 0x100d4809
mov eax, 0x80070216
jmp 0x100d487d
lea eax, [ebx*4]
test eax, eax
jne 0x100d4819
mov eax, 4
mov esi, dword [ebp - 0x110]
add esi, 0x8158
mov dword [ebp - 0x12c], eax
mov edi, eax
test eax, eax
ja 0x100d4836
mov edi, 1
mov eax, dword [esi]
test eax, eax
je 0x100d4846
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp edi, ecx
jbe 0x100d4855
mov ecx, edi
call fcn.100daf50
test eax, eax
je 0x100d4855
xor eax, eax
jmp 0x100d4869
mov ecx, dword [esi]
test ecx, ecx
je 0x100d4864
mov edx, dword [ecx + 8]
lea eax, [edx + ecx + 0x10]
jmp 0x100d4866
xor eax, eax
add dword [ecx + 8], edi
mov dword [ebp - 0x138], eax
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
mov esi, eax
test eax, eax
jl 0x100d56a5
cmp ebx, 0x3ffffffd
jbe 0x100d4896
mov esi, 0x80070216
jmp 0x100d48d5
lea eax, [ebx*4]
test eax, eax
jne 0x100d48a6
mov eax, 4
mov ecx, dword [ebp - 0x110]
add ecx, 0x8140
mov dword [ebp - 0x14c], eax
call fcn.100daff0
mov esi, eax
neg esi
sbb esi, esi
and esi, 0x7ff8fff2
mov dword [ebp - 0x158], eax
add esi, 0x8007000e
test esi, esi
jl 0x100d56a5
mov eax, dword [ebp - 0x114]
mov edx, dword [ebp - 0x138]
lea ecx, [eax*4]
push ecx
push 0
push edx
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x110]
mov edi, dword [eax + 8]
add esp, 0xc
or ebx, 0xffffffff
inc ebx
cmp ebx, edi
jae 0x100d4a4a
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x7f2c]
mov edx, dword [edx + ebx*4]
cmp dword [edx + 0x24], 0
je 0x100d4908
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x160], eax
mov eax, ecx
and eax, 0x200
xor esi, esi
or eax, esi
je 0x100d4908
and ecx, 0x800100
xor eax, eax
or ecx, eax
jne 0x100d4908
mov edx, dword [edx + 0x24]
mov edi, dword [edx]
mov eax, dword [edx + 0x50]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
and eax, 0x40
xor ecx, ecx
or ecx, eax
jne 0x100d49f0
mov eax, dword [edx + 0x40]
and eax, 0x100
or eax, ecx
jne 0x100d49f0
cmp dword [edx + 0x8c], eax
je 0x100d49f0
cmp dword [edx + 0x5c], 0xffffffff
jne 0x100d49f0
mov eax, esi
and eax, 0x80
or eax, ecx
je 0x100d4993
mov ecx, dword [ebp - 0x124]
jmp 0x100d49b8
mov eax, esi
and eax, 0x2000
xor ecx, ecx
or eax, ecx
jne 0x100d49b8
mov ecx, dword [ebp - 0x120]
and esi, 0x20000
xor eax, eax
or esi, eax
jne 0x100d49b8
mov ecx, dword [ebp - 0x11c]
mov eax, dword [edx + 0x60]
mov esi, dword [edx + 0xac]
add eax, ecx
shr esi, 2
mov ecx, eax
sub ecx, esi
inc eax
cmp eax, ecx
jbe 0x100d49f0
nop
dec eax
cmp eax, dword [ebp - 0x114]
jae 0x100d549d
mov esi, dword [ebp - 0x138]
cmp dword [esi + eax*4], 0
jne 0x100d49f0
mov dword [esi + eax*4], edx
cmp eax, ecx
ja 0x100d49d0
test edi, edi
je 0x100d49fd
mov edx, edi
mov edi, dword [edi]
jmp 0x100d4950
mov ecx, dword [ebp - 0x110]
mov edi, dword [ecx + 8]
inc ebx
cmp ebx, edi
jae 0x100d4a4a
mov edx, dword [ebp - 0x110]
mov eax, dword [edx + 0x7f2c]
mov edx, dword [eax + ebx*4]
cmp dword [edx + 0x24], 0
je 0x100d4a06
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x160], eax
mov eax, ecx
and eax, 0x200
xor esi, esi
or eax, esi
je 0x100d4a06
and ecx, 0x800100
xor eax, eax
or ecx, eax
jne 0x100d4a06
jmp 0x100d494b
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x128], esi
cmp dword [ebp - 0x114], ecx
jbe 0x100d4a7e
mov edi, dword [ebp - 0x114]
mov edx, dword [ebp - 0x138]
mov eax, dword [edx + ecx*4]
test eax, eax
je 0x100d4a73
mov dword [edx + esi*4], eax
inc esi
inc ecx
cmp ecx, edi
jb 0x100d4a68
mov dword [ebp - 0x128], esi
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x114], ecx
cmp esi, ecx
jbe 0x100d4b10
mov edi, dword [ebp - 0x138]
test eax, eax
je 0x100d4adc
mov edx, dword [edi + ecx*4]
mov ebx, dword [edx + 0x50]
cmp ebx, dword [eax + 0x50]
jne 0x100d4adc
mov edx, dword [edx + 0x8c]
cmp edx, dword [eax + 0x8c]
jne 0x100d4adc
mov edx, dword [edi + ecx*4]
mov edi, dword [edx + 0xac]
mov edx, dword [edx + 0x60]
mov ebx, dword [eax + 0x60]
shr edi, 2
sub edx, edi
mov edi, dword [eax + 0xac]
shr edi, 2
sub ebx, edi
mov edi, dword [ebp - 0x138]
cmp edx, ebx
je 0x100d4b0b
mov eax, dword [edi + ecx*4]
test eax, eax
je 0x100d4b0b
mov edx, dword [eax + 0x8c]
cmp dword [edx + 4], 2
jne 0x100d4b0b
cmp dword [edx + 0xc], 0
je 0x100d4b0b
mov edx, dword [ebp - 0x114]
mov ebx, dword [ebp - 0x158]
mov dword [ebx + edx*4], ecx
inc edx
mov dword [ebp - 0x114], edx
inc ecx
cmp ecx, esi
jb 0x100d4a96
cmp dword [ebp - 0x114], 0
mov dword [ebp - 0x118], 0
jbe 0x100d4c7f
jmp 0x100d4b30
mov eax, dword [ebp - 0x158]
mov esi, dword [ebp - 0x118]
mov eax, dword [eax + esi*4]
mov ecx, dword [ebp - 0x138]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x16c], eax
mov eax, dword [edx + 0x50]
mov eax, dword [eax + 8]
xor ebx, ebx
and eax, 0x80
xor ecx, ecx
or eax, ecx
mov dword [ebp - 0x124], edx
mov dword [ebp - 0x11c], ebx
je 0x100d4b91
mov eax, dword [edx + 0xa4]
cmp eax, ebx
je 0x100d4b91
mov ecx, dword [edx + 0x8c]
mov eax, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
jmp 0x100d4ba0
mov eax, dword [edx + 0x8c]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x120], ecx
cmp esi, ebx
jbe 0x100d4c66
jmp 0x100d4bb0
mov edx, dword [ebp - 0x158]
mov eax, dword [edx + ebx*4]
mov ecx, dword [ebp - 0x138]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi + 0x50]
mov eax, dword [eax + 8]
and eax, 0x80
xor ecx, ecx
xor esi, esi
or eax, ecx
je 0x100d4bed
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x100d4bed
mov edx, dword [eax + 0xc]
mov eax, dword [edi + 0x8c]
mov esi, dword [eax + 0xc]
jmp 0x100d4bf6
mov ecx, dword [edi + 0x8c]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x120]
lea esp, [esp]
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x100d4c20
test cl, cl
je 0x100d4c1c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x100d4c20
add eax, 2
add edx, 2
test cl, cl
jne 0x100d4c00
xor eax, eax
jmp 0x100d4c25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jl 0x100d4c41
jg 0x100d4cfa
mov eax, dword [ebp - 0x11c]
test eax, eax
jne 0x100d4caf
test esi, esi
je 0x100d4ce4
mov eax, dword [ebp - 0x118]
cmp eax, ebx
jbe 0x100d4c66
mov ecx, dword [ebp - 0x158]
mov edx, dword [ecx + eax*4 - 4]
mov dword [ecx + eax*4], edx
dec eax
cmp eax, ebx
ja 0x100d4c51
mov eax, dword [ebp - 0x16c]
mov dword [ecx + ebx*4], eax
mov eax, dword [ebp - 0x118]
inc eax
mov dword [ebp - 0x118], eax
cmp eax, dword [ebp - 0x114]
jb 0x100d4b30
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx]
mov eax, dword [edx + 0xb4]
call eax
mov edi, eax
add edi, dword [ebp - 0x114]
je 0x100d54b1
cmp edi, 0xccccccc
jbe 0x100d4d0c
mov eax, 0x80070216
jmp 0x100d4d82
test esi, esi
je 0x100d4cfa
mov ecx, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100d4cd5
test dl, dl
je 0x100d4cd1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100d4cd5
add eax, 2
add ecx, 2
test dl, dl
jne 0x100d4cb5
xor eax, eax
jmp 0x100d4cda
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jl 0x100d4c41
jg 0x100d4cfa
mov eax, dword [ebp - 0x124]
mov ecx, dword [eax + 0x50]
mov edx, dword [edi + 0x50]
mov eax, dword [ecx]
cmp eax, dword [edx]
jb 0x100d4c41
inc ebx
cmp ebx, dword [ebp - 0x118]
jb 0x100d4bb0
jmp 0x100d4c66
lea eax, [edi + edi*4]
add eax, eax
add eax, eax
jne 0x100d4d1a
mov eax, 0x14
mov esi, dword [ebp - 0x110]
add eax, 7
and eax, 0xfffffff8
mov dword [ebp - 0x188], eax
mov ebx, eax
lea esi, [esi + 0x8224]
ja 0x100d4d3b
mov ebx, 1
mov eax, dword [esi]
test eax, eax
je 0x100d4d4b
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp ebx, ecx
jbe 0x100d4d5a
mov ecx, ebx
call fcn.100daf50
test eax, eax
je 0x100d4d5a
xor eax, eax
jmp 0x100d4d6e
mov ecx, dword [esi]
test ecx, ecx
je 0x100d4d69
mov edx, dword [ecx + 8]
lea eax, [edx + ecx + 0x10]
jmp 0x100d4d6b
xor eax, eax
add dword [ecx + 8], ebx
mov dword [ebp - 0x194], eax
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
mov esi, eax
test eax, eax
jl 0x100d56a5
mov ebx, dword [ebp - 0x194]
lea esi, [edi + edi*4]
add esi, esi
add esi, esi
push esi
push 0
push ebx
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x1a0]
push eax
push 1
push ebx
lea ecx, [ebp - 0x148]
push ecx
mov eax, esi
call fcn.100b41f0
mov esi, eax
test esi, esi
jl 0x100d56a5
mov dword [ebp - 0x1a4], edi
xor edi, edi
mov dword [ebp - 0x118], edi
cmp dword [ebp - 0x114], edi
jbe 0x100d54b1
mov edx, dword [ebp - 0x158]
mov eax, dword [edx + edi*4]
mov ecx, dword [ebp - 0x138]
mov edx, dword [ecx + eax*4]
mov ecx, dword [edx + 0x8c]
mov ebx, dword [ecx + 0xc]
mov eax, dword [edx + 0x50]
mov dword [ebp - 0x120], ecx
mov ecx, dword [ebp - 0x110]
cmp byte [ecx + 0x102e5], 0
mov dword [ebp - 0x160], edx
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x124], ebx
jne 0x100d4e76
mov eax, dword [eax + 8]
and eax, 0x80
xor ecx, ecx
or eax, ecx
je 0x100d4e61
mov eax, dword [edx + 0xa4]
test eax, eax
je 0x100d4e61
mov eax, dword [eax + 0xc]
push ebx
push eax
push 0x100875c0
lea edx, [ebp - 0x10c]
push 0xff
push edx
call fcn.100b4010
add esp, 0x14
jmp 0x100d4ee2
mov edx, dword [ebp - 0x194]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4]
push eax
push 7
push ebx
jmp 0x100d4ef8
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x170], eax
mov eax, ecx
and eax, 0x2000
xor esi, esi
or eax, esi
mov edx, 0x100875c8
je 0x100d4e9b
mov edx, 0x100875d0
jmp 0x100d4ec0
mov eax, ecx
and eax, 0x20000
xor esi, esi
or eax, esi
je 0x100d4eaf
mov edx, 0x100875d8
jmp 0x100d4ec0
and ecx, 0x80
xor eax, eax
or ecx, eax
je 0x100d4ec0
mov edx, 0x100875e0
push ebx
push edx
lea ecx, [ebp - 0x10c]
push 0xff
push ecx
call fcn.100b4010
lea edx, [ebp - 0x10c]
add esp, 0x10
mov dword [ebp - 0x124], edx
mov ecx, dword [ebp - 0x194]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
push eax
push 6
lea edx, [ebp - 0x10c]
push edx
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x148]
push eax
or eax, 0xffffffff
call fcn.100b41f0
mov esi, eax
test esi, esi
jl 0x100d56a5
mov ecx, dword [ebp - 0x158]
mov eax, dword [ecx + edi*4]
lea ecx, [eax + 1]
mov edx, 1
cmp ecx, dword [ebp - 0x128]
jae 0x100d4fde
mov esi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x158]
mov eax, dword [eax + esi*4]
mov esi, dword [ebp - 0x138]
lea eax, [esi + eax*4]
mov esi, dword [eax]
mov esi, dword [esi + 0x50]
mov dword [ebp - 0x16c], esi
mov esi, ecx
lea edi, [eax + 4]
lea esp, [esp]
mov ecx, dword [edi]
mov eax, dword [ebp - 0x16c]
mov ebx, dword [ebp - 0x138]
cmp eax, dword [ecx + 0x50]
jne 0x100d4fde
mov ecx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x118]
mov eax, dword [ecx + eax*4]
lea ecx, [eax + edx]
mov eax, dword [ebx + eax*4]
mov ecx, dword [ebx + ecx*4]
mov eax, dword [eax + 0x8c]
cmp eax, dword [ecx + 0x8c]
jne 0x100d4fde
mov ecx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x118]
mov eax, dword [ecx + eax*4]
lea ecx, [eax + edx]
mov eax, dword [ebx + eax*4]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [eax + 0xac]
mov eax, dword [eax + 0x60]
shr ebx, 2
sub eax, ebx
mov ebx, dword [ecx + 0xac]
mov ecx, dword [ecx + 0x60]
shr ebx, 2
sub ecx, ebx
cmp eax, ecx
jne 0x100d4fde
inc esi
inc edx
add edi, 4
cmp esi, dword [ebp - 0x128]
jb 0x100d4f60
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x170], eax
mov eax, ecx
and eax, 0x80
xor esi, esi
or eax, esi
je 0x100d5002
lea eax, [esi + 3]
jmp 0x100d5029
mov eax, ecx
and eax, 0x2000
xor esi, esi
or eax, esi
je 0x100d5013
xor eax, eax
jmp 0x100d5029
xor eax, eax
and ecx, 0x20000
or ecx, eax
mov eax, 1
jne 0x100d5029
mov eax, 2
mov edi, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x158]
mov esi, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x138]
mov word [edi + 4], ax
mov eax, dword [ecx + esi*4]
mov eax, dword [ebx + eax*4]
mov ebx, dword [eax + 0xac]
mov ax, word [eax + 0x60]
shr ebx, 2
sub ax, bx
mov ebx, dword [ebp - 0x120]
mov word [edi + 6], ax
mov word [edi + 8], dx
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x100d50c3
mov ecx, dword [ecx + esi*4]
mov edx, dword [ebp - 0x138]
lea ecx, [edx + ecx*4]
mov ecx, dword [ecx]
push 0
lea edx, [edi + 0xc]
push edx
mov edx, dword [ecx + 0x30]
mov ecx, dword [ebp - 0x110]
push edx
movzx edx, byte [ecx + 0x7fd4]
push 1
shr edx, 6
and edx, 1
push edx
push eax
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x148]
push ecx
lea edx, [ebp - 0x1fc]
push edx
call fcn.100bfd20
mov esi, eax
test esi, esi
jl 0x100d56a5
mov edx, dword [ebp - 0x160]
mov eax, dword [edx + 0x40]
and eax, 0x2000
xor ecx, ecx
or eax, ecx
je 0x100d50f7
cmp dword [edx + 0x60], 0x1fff
ja 0x100d547b
or word [edi + 0xa], 2
mov ax, word [edx + 0x60]
add ax, ax
add ax, ax
or word [edi + 0xa], ax
cmp dword [ebx + 0x70], 0
je 0x100d5119
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx]
mov eax, dword [edx + 0xbc]
push edi
push ebx
call eax
mov esi, eax
test esi, esi
jl 0x100d56a5
mov esi, dword [ebx + 0x90]
test esi, esi
je 0x100d542b
mov ecx, dword [ebp - 0x11c]
movzx eax, word [ecx + 4]
mov edx, 1
cmp dx, ax
jne 0x100d524e
add esi, 3
and esi, 0xfffffffc
cmp esi, 0x3fffffff
ja 0x100d5447
mov eax, dword [0x101e316c]
test eax, eax
jge 0x100d515e
xor eax, eax
jmp 0x100d5165
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [eax]
lea ebx, [esi*4]
push ebx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
test edi, edi
je 0x100d5449
push ebx
push 0
push edi
call sub.msvcrt.dll_memset
shr esi, 2
add esp, 0xc
test esi, esi
jbe 0x100d51ae
lea eax, [edi + 8]
jmp 0x100d51a0
mov dword [eax], 1
add eax, 0x10
sub esi, 1
jne 0x100d51a0
mov edx, dword [ebp - 0x120]
xor esi, esi
cmp dword [edx + 0x90], esi
jbe 0x100d520d
mov ecx, dword [edx + 0x94]
mov eax, dword [ecx + esi*4]
test eax, eax
je case.default.0x100d51d2
mov ecx, dword [eax]
cmp ecx, 3
ja case.default.0x100d51d2
jmp dword [ecx*4 + 0x100d57d4]
xor ecx, ecx
cmp dword [eax + 8], ecx
setne cl
mov dword [edi + esi*4], ecx
jmp case.default.0x100d51d2
mov eax, dword [eax + 8]
jmp 0x100d5201
mov ecx, dword [eax + 8]
mov dword [edi + esi*4], ecx
jmp case.default.0x100d51d2
fld qword [eax + 8]
call fcn.101dc8f9
mov edx, dword [ebp - 0x120]
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [edx + 0x90]
jb 0x100d51be
mov edx, dword [ebp - 0x11c]
add edx, 0x10
push edx
push 0xb
push edi
lea eax, [ebp - 0x148]
push eax
mov eax, ebx
call fcn.100b41f0
mov esi, eax
test esi, esi
jge 0x100d542b
test edi, edi
je 0x100d56a5
mov eax, dword [0x101e316c]
test eax, eax
jge 0x100d5692
xor eax, eax
jmp 0x100d5699
mov ecx, 2
cmp cx, ax
jne 0x100d5367
add esi, 3
and esi, 0xfffffffc
cmp esi, 0x3fffffff
ja 0x100d54a7
mov eax, dword [0x101e316c]
test eax, eax
jge 0x100d527b
xor eax, eax
jmp 0x100d5282
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [eax]
add esi, esi
add esi, esi
push esi
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
test edi, edi
je 0x100d54a7
push esi
push 0
push edi
call sub.msvcrt.dll_memset
xor ecx, ecx
add esp, 0xc
cmp dword [ebx + 0x90], ecx
jbe 0x100d5321
fldz
fld1
mov eax, dword [ebx + 0x94]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.default.0x100d52ca
mov edx, dword [eax]
cmp edx, 3
ja case.default.0x100d52ca
jmp dword [edx*4 + 0x100d57e4]
cmp dword [eax + 8], 0
je 0x100d52e5
fst dword [ebp - 0x120]
fld dword [ebp - 0x120]
jmp 0x100d5311
fxch st(1)
fst dword [ebp - 0x120]
fxch st(1)
fld dword [ebp - 0x120]
jmp 0x100d5311
fild dword [eax + 8]
jmp 0x100d5311
mov edx, dword [eax + 8]
fild dword [eax + 8]
test edx, edx
jge 0x100d5311
fadd dword [0x100a3138]
jmp 0x100d5311
fld qword [eax + 8]
fstp dword [edi + ecx*4]
inc ecx
cmp ecx, dword [ebx + 0x90]
jb 0x100d52b6
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x11c]
add eax, 0x10
push eax
push 0xb
push edi
lea ecx, [ebp - 0x148]
push ecx
mov eax, esi
call fcn.100b41f0
mov esi, eax
test esi, esi
jge 0x100d542b
test edi, edi
je 0x100d56a5
mov eax, dword [0x101e316c]
test eax, eax
jge 0x100d5674
xor eax, eax
mov edx, dword [eax]
push edi
push eax
push edx
jmp 0x100d569f
xor edx, edx
cmp dx, ax
jne 0x100d542b
mov esi, dword [ebx + 0x34]
cmp esi, 0x3fffffff
ja 0x100d5453
mov eax, dword [0x101e316c]
test eax, eax
jge 0x100d538e
xor eax, eax
jmp 0x100d5395
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [eax]
add esi, esi
add esi, esi
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
test edi, edi
je 0x100d5455
push esi
push 0
push edi
call sub.msvcrt.dll_memset
xor ecx, ecx
add esp, 0xc
cmp dword [ebx + 0x34], ecx
jbe 0x100d540a
fldz
mov edx, dword [ebx + 0x98]
mov eax, dword [edx + ecx*4]
test eax, eax
je case.default.0x100d53d8
mov edx, dword [eax]
cmp edx, 3
ja case.default.0x100d53d8
jmp dword [edx*4 + 0x100d57f4]
xor edx, edx
cmp dword [eax + 8], edx
setne dl
mov dword [edi + ecx*4], edx
jmp case.default.0x100d53d8
fcom qword [eax + 8]
fnstsw ax
test ah, 0x44
jnp 0x100d53fd
mov eax, 1
jmp 0x100d53ff
xor eax, eax
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, dword [ebx + 0x34]
jb 0x100d53c4
fstp st(0)
mov eax, dword [ebp - 0x11c]
add eax, 0x10
push eax
push 0xb
push edi
lea ecx, [ebp - 0x148]
push ecx
mov eax, esi
call fcn.100b41f0
mov esi, eax
test esi, esi
jl 0x100d545a
mov eax, dword [ebp - 0x118]
inc eax
mov dword [ebp - 0x118], eax
cmp eax, dword [ebp - 0x114]
jae 0x100d54b1
mov edi, eax
jmp 0x100d4de1
xor edi, edi
mov esi, 0x8007000e
jmp 0x100d5232
xor edi, edi
mov esi, 0x8007000e
test edi, edi
je 0x100d56a5
mov eax, dword [0x101e316c]
test eax, eax
jge 0x100d5683
xor eax, eax
push edi
push eax
mov eax, dword [eax]
push eax
jmp 0x100d569f
mov edx, dword [edx + 0x60]
mov eax, dword [ebp - 0x124]
mov esi, dword [ebp - 0x110]
push edx
push eax
push 0x10081360
xor ecx, ecx
xor edx, edx
call fcn.10168ee0
add esp, 0xc
mov esi, 0x80004005
jmp 0x100d56a5
mov esi, 0x8007000e
jmp 0x100d56a5
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx]
mov edx, dword [edx + 0xb8]
push eax
mov eax, dword [ebp - 0x194]
push eax
lea eax, [ebp - 0x148]
push eax
call edx
mov esi, eax
test esi, esi
jl 0x100d56a5
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x811c]
lea eax, [ebp - 0x1c0]
push eax
push 0
push 0
push 0xffffffffffffffff
push edx
call fcn.101daaa0
mov esi, eax
test esi, esi
jl 0x100d56a5
mov ecx, dword [ebp - 0x1c0]
lea eax, [ebp - 0x198]
push eax
push 5
push ecx
lea edx, [ebp - 0x148]
push edx
or eax, 0xffffffff
call fcn.100b41f0
mov esi, eax
test esi, esi
jl 0x100d56a5
lea eax, [ebp - 0x1ac]
push eax
push 5
push 0x100875e8
lea ecx, [ebp - 0x148]
push ecx
or eax, 0xffffffff
call fcn.100b41f0
mov esi, eax
test esi, esi
jl 0x100d56a5
mov ebx, dword [ebp - 0x144]
mov edx, dword [ebp - 0x148]
add ebx, 3
shr ebx, 2
neg edx
sbb edx, edx
and edx, 2
add ebx, edx
cmp byte [ebp + 8], 0
je 0x100d55d7
mov edi, dword [ebp - 0x110]
mov eax, ebx
call fcn.100d61e0
mov esi, eax
test esi, esi
jl 0x100d56a5
mov eax, edi
add dword [eax + 0x102a0], ebx
mov ecx, dword [eax + 0x102a0]
mov eax, dword [eax + 0x1029c]
push ecx
lea ecx, [ebp - 0x148]
push ecx
call fcn.100b4410
mov esi, eax
test esi, esi
jl 0x100d56a5
mov eax, edi
mov edx, dword [eax + 0x102a0]
add dword [eax + 0x102b0], ebx
mov dword [eax + 0x102ac], edx
xor esi, esi
jmp 0x100d56a5
cmp ebx, 0x8000
ja 0x100d5653
mov edi, dword [ebp - 0x110]
mov eax, ebx
call fcn.100d61e0
mov esi, eax
test esi, esi
jl 0x100d56a5
mov ecx, dword [edi + 0x102a0]
mov eax, dword [edi + 0x1029c]
lea edx, [ecx*4 - 4]
push edx
lea ecx, [eax + 4]
push ecx
lea edx, [eax + ebx*4 + 4]
push edx
call sub.msvcrt.dll_memmove
mov eax, dword [edi + 0x1029c]
add esp, 0xc
push ebx
lea ecx, [ebp - 0x148]
add eax, 4
push ecx
call fcn.100b4410
mov esi, eax
test esi, esi
jl 0x100d56a5
add dword [edi + 0x102a0], ebx
mov eax, dword [edi + 0x102a0]
add dword [edi + 0x102b0], ebx
mov dword [edi + 0x102ac], eax
xor esi, esi
jmp 0x100d56a5
mov esi, dword [ebp - 0x110]
push 0x1008758c
mov ecx, 0x11c4
xor edx, edx
call fcn.10168ee0
add esp, 4
mov esi, 0x80004005
jmp 0x100d56a5
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [eax]
push edi
push 0
push edx
jmp 0x100d569f
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [eax]
push edi
push 0
push eax
jmp 0x100d569f
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax]
push edi
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x188]
add edi, 0x8224
cmp dword [ebp - 0x194], 0
je 0x100d56e0
test ecx, ecx
ja 0x100d56c9
mov ecx, 1
mov eax, dword [edi]
cmp ecx, dword [eax + 8]
jae 0x100d56d5
sub dword [eax + 8], ecx
jmp 0x100d56e0
mov edx, dword [eax]
mov ebx, eax
mov dword [edi], edx
call fcn.100daed0
mov edi, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x14c]
add edi, 0x8140
cmp dword [ebp - 0x158], 0
je 0x100d571b
test ecx, ecx
ja 0x100d5704
mov ecx, 1
mov eax, dword [edi]
cmp ecx, dword [eax + 8]
jae 0x100d5710
sub dword [eax + 8], ecx
jmp 0x100d571b
mov ecx, dword [eax]
mov ebx, eax
mov dword [edi], ecx
call fcn.100daed0
mov edi, dword [ebp - 0x110]
mov eax, dword [ebp - 0x12c]
add edi, 0x8158
cmp dword [ebp - 0x138], 0
je 0x100d5754
test eax, eax
ja 0x100d573f
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x100d574b
sub dword [ebx + 8], eax
jmp 0x100d5754
mov edx, dword [ebx]
mov dword [edi], edx
call fcn.100daed0
cmp byte [ebp - 0x178], 0
mov dword [ebp - 0x17c], 0
je 0x100d57a4
mov eax, dword [ebp - 0x184]
mov edi, eax
test eax, eax
je 0x100d579d
mov eax, dword [0x101e316c]
test eax, eax
jl 0x100d578d
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x100d578d
mov eax, dword [eax]
test eax, eax
jne 0x100d5793
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebp - 0x178], 0
xor eax, eax
lea ebx, [ebp - 0x148]
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], eax
call fcn.100b4160
mov ecx, dword [ebp - 8]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.101dc51a
mov esp, ebp
pop ebp
ret 4