Function at 0x552e4a
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x150
mov dword [esp + 0xf8], ecx
lea ecx, [esp + 0x118]
mov ebx, edx
call fcn.00554091
lea eax, [ebx + 8]
lea ecx, [ebx + 0x8c]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x553010
cmp eax, 1
jne 0x55319e
and dword [esp + 0xa0], 0
xorps xmm0, xmm0
mov dword [esp + 0x78], 0x3b9aca00
movaps xmmword [esp + 0x90], xmm0
and dword [esp + 0x20], 0
mov eax, dword [ebx]
mov edi, dword [ebx + 4]
mov ecx, eax
shr ecx, 1
mov edx, ecx
and edx, 0x1f
cmp edx, 0x1f
je 0x552f24
lea esi, [eax + 2]
test al, 1
mov dword [esp + 0xc], esi
jne 0x552f07
mfence
mov esi, edi
mov edi, edx
mov ebx, dword [ebx + 0x40]
mov edx, ebx
shr edx, 1
cmp ecx, edx
je 0x552f2f
mov edx, dword [esp + 0xc]
xor ebx, eax
xor ecx, ecx
cmp ebx, 0x40
mov ebx, dword [esp + 0x4c]
setae cl
or edx, ecx
mov ecx, edx
mov edx, edi
mov edi, esi
jmp 0x552f0b
mov ecx, dword [esp + 0xc]
test edi, edi
je 0x552f24
lock cmpxchg dword [ebx], ecx
je 0x553376
lea ecx, [esp + 0x20]
call fcn.0040fc2b
jmp 0x552ebb
lea ecx, [esp + 0x20]
call fcn.0040154e
jmp 0x552ebb
test bl, 1
jne 0x5537e4
mov eax, dword [esp + 0x78]
cmp eax, 0x3b9aca00
je 0x552f82
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xc], eax
call fcn.005f2e70
cmp eax, esi
mov edi, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], esi
sbb edx, ebx
mov edx, dword [esp + 0xc]
jb 0x552f82
xor eax, dword [esp + 0x1c]
xor edi, ebx
mov ecx, ebx
or edi, eax
jne 0x553835
cmp dword [esp + 0x10], edx
jae 0x553835
mov ebx, dword [esp + 0x4c]
lea eax, [esp + 0x90]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], eax
call fcn.005f7a40
test eax, eax
je 0x552fec
mov esi, dword [eax]
and dword [eax], 0
mov edi, eax
test esi, esi
je 0x552fec
lea ecx, [esp + 0x20]
lea edx, [esp + 0xe8]
mov dword [esp + 0xe8], esi
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.00554d97
mov eax, dword [edi]
lea ecx, [esp + 0x50]
mov dword [edi], esi
mov dword [esp + 0x50], eax
call fcn.00554576
jmp 0x552eb6
call fcn.006432a0
lea esi, [esp + 0x50]
lea ecx, [esp + 0x20]
mov dword [esp + 0x50], eax
mov edx, esi
call fcn.00554d97
mov ecx, esi
call fcn.00550c4f
jmp 0x552eb6
and dword [esp + 0xa0], 0
xorps xmm0, xmm0
mov dword [esp + 0x78], 0x3b9aca00
movaps xmmword [esp + 0x90], xmm0
and dword [esp + 0x20], 0
mov ecx, dword [ebx]
mov edi, dword [ebx + 0x88]
mov edx, dword [ebx + 0xd4]
xor eax, eax
mov esi, ebx
sub eax, dword [ebx + 0x84]
dec edi
mov dword [esp + 0xc], edx
and edi, ecx
imul ebx, edi, 0x24
mov dword [esp + 0x1c], ebx
mov ebx, dword [edx + ebx + 0x20]
lea edx, [ecx + 1]
cmp edx, ebx
jne 0x553083
inc edi
cmp edi, dword [esi + 0x80]
jb 0x553074
and eax, ecx
add eax, dword [esi + 0x84]
mov ebx, eax
mov eax, ecx
lock cmpxchg dword [esi], ebx
mov ebx, esi
jne 0x5530a1
jmp 0x5532d9
cmp ebx, ecx
jne 0x5530ac
mfence
mov ebx, dword [esp + 0x4c]
mov eax, dword [ebx + 0x40]
mov edx, dword [ebx + 0x88]
mov esi, edx
not esi
and esi, eax
cmp esi, ecx
je 0x5530be
lea ecx, [esp + 0x20]
call fcn.0040fc2b
jmp 0x553030
lea ecx, [esp + 0x20]
call fcn.0040154e
mov ebx, dword [esp + 0x4c]
jmp 0x553030
test edx, eax
jne 0x553820
mov eax, dword [esp + 0x78]
cmp eax, 0x3b9aca00
je 0x553110
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xc], eax
call fcn.005f2e70
cmp eax, esi
mov edi, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], esi
sbb edx, ebx
mov edx, dword [esp + 0xc]
jb 0x553110
xor eax, dword [esp + 0x1c]
xor edi, ebx
mov ecx, ebx
or edi, eax
jne 0x553835
cmp dword [esp + 0x10], edx
jae 0x553835
mov ebx, dword [esp + 0x4c]
lea eax, [esp + 0x90]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], eax
call fcn.005f7a40
test eax, eax
je 0x55317a
mov esi, dword [eax]
and dword [eax], 0
mov edi, eax
test esi, esi
je 0x55317a
lea ecx, [esp + 0x20]
lea edx, [esp + 0xe8]
mov dword [esp + 0xe8], esi
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.00554e75
mov eax, dword [edi]
lea ecx, [esp + 0x50]
mov dword [edi], esi
mov dword [esp + 0x50], eax
call fcn.00554576
jmp 0x55302b
call fcn.006432a0
lea esi, [esp + 0x50]
lea ecx, [esp + 0x20]
mov dword [esp + 0x50], eax
mov edx, esi
call fcn.00554e75
mov ecx, esi
call fcn.00550c4f
jmp 0x55302b
mov edx, dword [esp + 0x18]
and dword [esp + 0x80], 0
lea esi, [esp + 0x20]
xorps xmm0, xmm0
mov dword [esp + 0xf0], 0x3b9aca00
mov ecx, esi
movaps xmmword [esp + 0x70], xmm0
call fcn.00438e75
mov ecx, esi
mov edx, 0x9f459c
call fcn.00550c5e
lea esi, [esp + 0xfc]
mov byte [esp + 0xc], dl
lea edx, [eax + 8]
mov edi, eax
mov ecx, esi
call fcn.005544c4
mov al, byte [esp + 0xc]
cmp dword [esp + 0xfc], 0
movzx edx, al
je 0x553460
mov eax, dword [esp + 0x104]
movsd xmm0, qword [esp + 0xfc]
mov ecx, edi
movsd qword [esp + 0xd8], xmm0
mov dword [esp + 0xe0], eax
mov dword [esp + 0x80], eax
call fcn.00608264
mov edi, dword [esp + 0x80]
test edi, edi
je 0x55352a
cmp byte [edi + 0x21], 0
je 0x553545
mov edx, edi
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 3
lea ecx, [esp + 0x50]
push eax
call fcn.00554d40
pop eax
mov edx, dword [esp + 0x50]
cmp edx, 3
je 0x554037
lea ecx, [esp + 0x54]
movsd xmm0, qword [ecx + 0x10]
mov eax, dword [ecx + 0x18]
movsd xmm1, qword [ecx + 8]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [ecx]
mov dword [esp + 0x38], eax
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
mov byte [edi + 0x20], 1
mov eax, dword [esp + 0x38]
movsd xmm0, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x28]
mov dword [esp + 0xa8], eax
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0x98], xmm1
movsd qword [esp + 0x90], xmm2
jmp 0x5535be
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
lea eax, [edx + edi]
mov dword [esp + 0x90], eax
add ecx, dword [ebx + 0x84]
mov dword [esp + 0x94], ecx
mov eax, dword [edx + edi + 0x1c]
mov esi, dword [edx + edi]
mov dword [esp + 0x38], eax
movsd xmm0, qword [edx + edi + 0x14]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [edx + edi + 0xc]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [edx + edi + 4]
movsd qword [esp + 0x20], xmm0
mov dword [edx + edi + 0x20], ecx
mov ecx, dword [esp + 0x14]
call fcn.00554836
mov eax, dword [esp + 0x38]
movsd xmm0, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x28]
cmp esi, 3
mov dword [esp + 0x68], eax
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x50], xmm2
jne 0x553459
mov byte [esp + 0xb8], 1
jmp 0x5534e8
cmp edx, 0x1e
jne 0x5533a5
mov esi, ecx
mov ecx, edi
mov dword [esp + 0xc], edi
mov edi, edx
call fcn.00551059
mov ecx, dword [eax]
and esi, 0xfffffffe
xor edx, edx
test ecx, ecx
setne dl
lea ecx, [esi + edx + 2]
mov edx, edi
mov edi, dword [esp + 0xc]
mov dword [ebx + 4], eax
mov dword [ebx], ecx
test edi, edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edx
je 0x5534d5
mov eax, dword [esp + 0x9c]
lea ebx, [edi + 4]
mov dword [esp + 0x1c], eax
imul eax, eax, 0x24
lea esi, [edi + eax + 4]
mov dword [esp + 0x10], eax
mov ecx, esi
call fcn.00551078
mov edx, dword [esi + 0x1c]
mov eax, dword [esi]
xor ecx, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0xc], eax
movsd xmm0, qword [esi + 0x14]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esi + 0xc]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esi + 4]
mov esi, dword [esp + 0x1c]
inc esi
movsd qword [esp + 0x20], xmm0
cmp esi, 0x1f
je 0x553430
mov eax, dword [esp + 0x10]
lea ecx, [ebx + eax + 0x20]
mov eax, dword [ecx]
mov edx, eax
or edx, 2
lock cmpxchg dword [ecx], edx
jne 0x55341f
test al, 4
mov ecx, esi
je 0x55349c
cmp ecx, 0x1e
jae 0x553495
imul eax, ecx, 0x24
inc ecx
mov edx, dword [ebx + eax + 0x20]
test dl, 2
jne 0x553430
lea edx, [ebx + eax + 0x20]
mov eax, dword [edx]
mov esi, eax
or esi, 4
lock cmpxchg dword [edx], esi
jne 0x553448
test al, 2
jne 0x553430
jmp 0x55349c
mov edx, esi
jmp 0x5534f7
mov ecx, esi
mov dword [esp + 0x1c], edx
call fcn.00554576
cmp byte [edi + 0x38], 0
je 0x5536c4
mov edx, dword [esp + 0x1c]
mov ecx, edi
mov byte [esp + 0xb8], 1
mov dword [esp + 0xb4], 3
call fcn.00608264
jmp 0x5534e8
mov ecx, edi
call fcn.0043c986
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
movsd xmm0, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
cmp edx, 3
mov dword [esp + 0x68], eax
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x50], xmm2
jne 0x5534f0
mov byte [esp + 0xb8], 1
mov dword [esp + 0xb4], 3
push 3
pop edx
jmp 0x55360f
mov dword [esp + 0xb4], edx
mov eax, dword [esp + 0x68]
movsd xmm0, qword [esp + 0x60]
movsd xmm2, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
lea ecx, [esp + 0xb8]
mov dword [ecx + 0x18], eax
movsd qword [ecx + 0x10], xmm0
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm2
jmp 0x55360f
mov byte [esp + 0xb8], 1
mov dword [esp + 0xb4], 3
push 3
pop esi
jmp 0x553601
mov ecx, edi
call fcn.00554d20
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 3
lea ecx, [esp + 0x50]
mov edx, edi
push eax
call fcn.00554d40
pop eax
mov eax, dword [esp + 0x50]
cmp eax, 3
je 0x554046
lea ecx, [esp + 0x54]
mov esi, eax
mov eax, dword [ecx + 0x18]
movsd xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, edi
mov dword [esp + 0xa8], eax
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0x98], xmm1
movsd qword [esp + 0x90], xmm2
call fcn.00554d8d
mov ecx, edi
push 4
pop edx
call fcn.00404240
mov edx, esi
mov eax, dword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa0]
movsd xmm2, qword [esp + 0x90]
movsd xmm1, qword [esp + 0x98]
lea ecx, [esp + 0xb8]
mov dword [esp + 0xb4], edx
mov esi, edx
mov dword [ecx + 0x18], eax
movsd qword [ecx + 0x10], xmm0
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm2
lea ecx, [esp + 0xd8]
call fcn.00550c4f
mov edx, esi
cmp edx, 3
je 0x553e4e
lea ecx, [esp + 0xb8]
mov edi, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
test edx, edx
movsd xmm0, qword [ecx + 0xc]
movsd xmm1, qword [ecx + 0x14]
movsd qword [esp + 0x108], xmm0
movsd qword [esp + 0x110], xmm1
je 0x553683
cmp edx, 1
jne 0x553874
and dword [esp + 0x20], 0
lea ecx, [esp + 0x118]
lea edx, [esp + 0x20]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], eax
call fcn.00554222
jmp 0x552e83
movsd xmm0, qword [esp + 0x108]
movsd xmm1, qword [esp + 0x110]
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x20]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
mov dword [esp + 0x20], edi
and dword [esp + 0x24], 0
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], eax
call fcn.00554132
jmp 0x552e83
lea eax, [esp + 0x70]
mov dword [esp + 0x90], eax
lea eax, [esp + 0xe8]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x98], eax
mov al, byte [esp + 0xc]
mov dword [esp + 0x9c], edi
mov byte [esp + 0xa0], al
call fcn.005f7a40
test eax, eax
je 0x5537f5
mov esi, dword [eax]
and dword [eax], 0
mov edi, eax
test esi, esi
je 0x553849
lea eax, [esp + 0xd8]
mov dword [esp + 0xd8], esi
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
lea ecx, [esp + 0x20]
lea edx, [esp + 0x90]
push eax
call fcn.00554ac0
pop eax
mov eax, dword [edi]
lea ecx, [esp + 0x50]
mov dword [edi], esi
mov dword [esp + 0x50], eax
call fcn.00554576
lea ecx, [esp + 0x2c]
mov eax, dword [esp + 0x20]
movsd xmm1, qword [ecx]
movsd xmm0, qword [ecx - 8]
cmp eax, 4
movsd qword [esp + 0x58], xmm1
movsd xmm1, qword [ecx + 8]
mov ecx, dword [ecx + 0x10]
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0x60], xmm1
mov dword [esp + 0x68], ecx
je 0x5537f5
mov ecx, dword [esp + 0x68]
movsd xmm0, qword [esp + 0x60]
movsd xmm2, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
lea edx, [esp + 0xb8]
mov dword [edx + 0x18], ecx
movsd qword [edx + 0x10], xmm0
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm2
mov dword [esp + 0xb4], eax
mov al, byte [esp + 0xa0]
cmp al, 2
je 0x5537d8
mov ecx, dword [esp + 0x9c]
movzx edx, al
call fcn.00608264
mov edx, dword [esp + 0xb4]
jmp 0x55360f
mov ebx, dword [esp + 0x4c]
and dword [esp + 0x98], 0
jmp 0x5534d5
call fcn.006432a0
lea esi, [esp + 0x20]
mov dword [esp + 0x20], eax
lea ecx, [esp + 0xb4]
lea edx, [esp + 0x90]
push esi
call fcn.00554ac0
pop eax
mov ecx, esi
call fcn.00550c4f
jmp 0x5537be
and dword [esp + 0x90], 0
and dword [esp + 0x94], 0
jmp 0x553369
mov byte [esp + 0xb8], 0
push 3
pop edx
mov ebx, dword [esp + 0x4c]
jmp 0x55360f
call fcn.006432a0
lea esi, [esp + 0x50]
mov dword [esp + 0x50], eax
lea ecx, [esp + 0x20]
lea edx, [esp + 0x90]
push esi
call fcn.00554ac0
pop eax
mov ecx, esi
call fcn.00550c4f
jmp 0x553755
mov edx, dword [esp + 0x118]
lea ecx, [esp + 0xd8]
push 0
push dword [esp + 0x124]
call fcn.00554471
pop eax
pop ecx
test edi, edi
je 0x5539b0
cmp edi, 1
jne 0x553bd9
mov eax, dword [esp + 0xd8]
movsd xmm0, qword [esp + 0xdc]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x20]
movsd qword [esp + 0x50], xmm0
and dword [eax], 0
xor eax, eax
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
mov dword [esp + 0xc], 0
test cl, 1
jne 0x553cae
mov ebx, ecx
shr ebx, 1
and ebx, 0x1f
cmp ebx, 0x1f
jne 0x5538f7
lea ecx, [esp + 0x20]
call fcn.0040154e
jmp 0x553992
mov eax, dword [esp + 0xc]
cmp ebx, 0x1e
jne 0x55393c
test eax, eax
jne 0x55393c
mov dword [esp + 0x14], ecx
mov ecx, 0x1f4
mov dword [esp + 0x18], edx
push 4
pop edx
call fcn.004c2304
push 0x1f4
push 0
mov dword [esp + 0x14], eax
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor ecx, ecx
call fcn.005777fa
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x553979
mov dword [esp + 0x14], ecx
mov ecx, 0x1f4
push 4
pop edx
call fcn.004c2304
mov dword [esp + 0x18], eax
push 0x1f4
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x24]
add esp, 0xc
xor eax, eax
lock cmpxchg dword [esi + 0x44], edx
jne 0x55399f
mov dword [esi + 4], edx
mov ecx, dword [esp + 0x14]
mov eax, ecx
add ecx, 2
lock cmpxchg dword [esi + 0x40], ecx
je 0x553da7
lea ecx, [esp + 0x20]
call fcn.0040fc2b
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
xor eax, eax
jmp 0x5538d4
mov ecx, dword [esp + 0xc]
mov ebx, edx
call fcn.005777fa
mov dword [esp + 0xc], ebx
jmp 0x553992
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
and dword [esp + 0x30], 0
xorps xmm0, xmm0
mov dword [esp + 0x58], 0x3b9aca00
mov dword [esp + 0x1c], edi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
and dword [esp + 0xb4], 0
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x88]
test eax, ecx
jne 0x553cfe
mov edi, dword [esi + 0xd4]
dec eax
xor ebx, ebx
mov edx, esi
and eax, ecx
sub ebx, dword [esi + 0x84]
mov esi, eax
shl esi, 4
mov dword [esp + 0xc], edi
mov edi, dword [edi + esi]
cmp ecx, edi
jne 0x553a34
inc eax
cmp eax, dword [edx + 0x80]
jae 0x553a64
lea ebx, [ecx + 1]
jmp 0x553a6c
add edi, dword [edx + 0x84]
lea eax, [ecx + 1]
mov esi, edx
cmp edi, eax
jne 0x553a92
mfence
mov eax, dword [esi]
mov edi, dword [esp + 0x1c]
add eax, dword [esi + 0x84]
cmp eax, ecx
je 0x553aa7
lea ecx, [esp + 0xb4]
call fcn.0040fc2b
jmp 0x5539f2
and ebx, ecx
add ebx, dword [edx + 0x84]
mov eax, ecx
mov edi, edx
lock cmpxchg dword [edx + 0x40], ebx
je 0x553d68
lea ecx, [esp + 0xb4]
call fcn.0040fc2b
mov esi, edi
mov edi, dword [esp + 0x1c]
jmp 0x5539f2
lea ecx, [esp + 0xb4]
call fcn.0040154e
mov edi, dword [esp + 0x1c]
jmp 0x5539f2
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x58]
cmp esi, 0x3b9aca00
je 0x553afe
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
call fcn.005f2e70
mov dword [esp + 0xd4], edi
cmp eax, edi
mov edi, edx
mov dword [esp + 0xe4], ecx
sbb edi, ebx
mov edi, dword [esp + 0x1c]
jb 0x553afe
xor eax, dword [esp + 0xd4]
xor edx, ebx
mov ecx, ebx
or edx, eax
jne 0x554014
cmp dword [esp + 0xe4], esi
jae 0x554014
mov esi, dword [esp + 0xc]
lea eax, [esp + 0x20]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x50]
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], eax
call fcn.005f7a40
test eax, eax
je 0x553b7b
mov esi, dword [eax]
and dword [eax], 0
mov ebx, eax
test esi, esi
je 0x553ba8
lea ecx, [esp + 0xb4]
lea edx, [esp + 0xe8]
mov dword [esp + 0xe8], esi
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.005548aa
mov eax, dword [ebx]
lea ecx, [esp + 0x90]
mov dword [ebx], esi
mov dword [esp + 0x90], eax
call fcn.00554576
mov esi, dword [esp + 0xc]
jmp 0x5539ea
call fcn.006432a0
lea ebx, [esp + 0x90]
lea ecx, [esp + 0xb4]
mov dword [esp + 0x90], eax
mov edx, ebx
call fcn.005548aa
mov ecx, ebx
call fcn.00550c4f
jmp 0x5539ea
call fcn.006432a0
lea esi, [esp + 0x90]
lea ecx, [esp + 0xb4]
mov dword [esp + 0x90], eax
mov edx, esi
call fcn.005548aa
mov ecx, esi
call fcn.00550c4f
mov esi, dword [esp + 0xc]
jmp 0x5539ea
mov ebx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov eax, dword [esp + 0xd8]
and dword [esp + 0x60], 0
lea edx, [esi + 8]
xorps xmm0, xmm0
mov dword [esp + 0x98], 0x3b9aca00
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0xe4], edx
mov dword [esp + 0x10], ebx
lea ebx, [esp + 0x20]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x14], eax
mov ecx, ebx
call fcn.00438e75
mov ecx, ebx
mov edx, 0x9f460c
call fcn.00550c5e
lea ebx, [esp + 0xb4]
mov byte [esp + 0x18], dl
lea edx, [eax + 0x20]
mov dword [esp + 0xc], eax
mov ecx, ebx
call fcn.005544c4
cmp dword [ebx], 0
je 0x553d2a
mov ebx, esi
mov esi, dword [esp + 0xbc]
movsd xmm0, qword [esp + 0xb4]
movzx edx, byte [esp + 0x18]
mov ecx, dword [esp + 0xc]
movsd qword [esp + 0x20], xmm0
mov dword [esp + 0x28], esi
mov dword [esp + 0x60], esi
call fcn.00608264
test esi, esi
je 0x553e0d
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov byte [esi + 0xc], 1
jmp 0x553e19
xor ebx, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0xc]
call fcn.005777fa
movsd xmm0, qword [esp + 0x50]
cmp dword [esp + 0x14], 0
mov eax, dword [esp + 0x10]
movsd qword [esp + 0x20], xmm0
jne 0x553de1
test eax, eax
je 0x553e08
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], eax
jmp 0x553d60
mov eax, dword [esp + 0x18]
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
test eax, eax
je 0x553e08
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ecx
jmp 0x553d60
mov bl, byte [esp + 0x18]
lea ecx, [esp + 0xb4]
call fcn.00554576
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x38], 0
je 0x553e9f
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
movzx edx, bl
call fcn.00608264
xor eax, eax
inc eax
jmp 0x553e27
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc ecx
add edx, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [edx + 4], eax
mov dword [edx + 0xc], ebx
mov dword [edx + 8], esi
mov dword [edx], ecx
lea ecx, [edi + 0xb0]
mov esi, edi
call fcn.00554836
push 2
pop eax
mov edi, dword [esp + 0x1c]
jmp 0x553e27
cmp ebx, 0x1e
mov dword [esp + 0x18], edx
jne 0x553e96
mov eax, dword [esp + 0xc]
test eax, eax
je 0x554082
mov dword [esi + 0x44], eax
lock add dword [esi + 0x40], 2
mov dword [edx + 0x1f0], eax
movsd xmm0, qword [esp + 0x50]
movsd qword [esp + 0x20], xmm0
push 0x1e
pop ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
shl ebx, 4
mov dword [ecx + ebx], eax
movsd xmm0, qword [esp + 0x20]
movsd qword [ecx + ebx + 4], xmm0
lock or dword [ecx + ebx + 0xc], 1
lea ecx, [esi + 0x80]
call fcn.00554836
push 2
pop eax
jmp 0x553e27
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x55406a
lea ecx, [esp + 0x20]
call fcn.00550c4f
push 2
pop eax
mov esi, ebx
cmp eax, 2
je 0x553e45
test eax, eax
je 0x55405b
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x553e45
mov edx, dword [esp + 0x78]
call fcn.004bd77e
mov ecx, edi
mov edx, esi
call fcn.00550e49
lea edi, [esp + 0x118]
mov ecx, edi
call fcn.005511ad
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
call fcn.00570f40
mov ebx, dword [edi + 0x18]
mov edx, dword [edi + 0x20]
mov ecx, ebx
call fcn.005544aa
mov edx, dword [edi + 0x1c]
mov ecx, ebx
call fcn.00473334
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0x4c]
call fcn.00550993
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x14], edx
jmp 0x553cbc
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov byte [esp + 0x3c], bl
call fcn.005f7a40
test eax, eax
je 0x553fb8
mov dword [esp + 0xc], esi
mov esi, dword [eax]
and dword [eax], 0
mov ebx, eax
test esi, esi
je 0x553fe3
lea eax, [esp + 0xfc]
mov dword [esp + 0xfc], esi
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
lea ecx, [esp + 0xb4]
lea edx, [esp + 0x20]
push eax
call fcn.00554580
pop eax
mov eax, dword [ebx]
lea ecx, [esp + 0xe8]
mov dword [ebx], esi
mov dword [ecx], eax
call fcn.00554576
mov eax, dword [esp + 0xb4]
movsd xmm0, qword [esp + 0xb8]
mov ecx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc]
cmp eax, 3
movsd qword [esp + 0xe8], xmm0
mov dword [esp + 0xf0], ecx
je 0x553fb8
mov ecx, dword [esp + 0xf0]
movsd xmm0, qword [esp + 0xe8]
mov dword [esp + 0x7c], ecx
movsd qword [esp + 0x74], xmm0
mov dword [esp + 0x70], eax
cmp byte [esp + 0x3c], 2
je 0x553faf
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
call fcn.004bd77e
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
call fcn.00608264
mov eax, dword [esp + 0x70]
jmp 0x553e27
call fcn.006432a0
lea ebx, [esp + 0xb4]
mov dword [esp + 0xb4], eax
lea ecx, [esp + 0x70]
lea edx, [esp + 0x20]
push ebx
call fcn.00554580
pop eax
mov ecx, ebx
call fcn.00550c4f
jmp 0x553f8e
call fcn.006432a0
lea esi, [esp + 0xe8]
mov dword [esp + 0xe8], eax
lea ecx, [esp + 0xb4]
lea edx, [esp + 0x20]
push esi
call fcn.00554580
pop eax
mov ecx, esi
call fcn.00550c4f
jmp 0x553f40
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x7c], eax
xor eax, eax
jmp 0x553e27
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x9f457c
jmp 0x554053
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x9f458c
call fcn.0063cd70
pop eax
ud2
push 0x28
pop edx
mov ecx, str.internal_error:_entered_unreachable_codecannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_8ede3aae28fe6e4d52b38157d7bfe0d3bceef225library_std_src_threadlocal.rs
push 0x9f4484
jmp 0x554053
mov edx, dword [esp + 0x10]
call fcn.00550f89
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x9f461c
jmp 0x554053
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x9f44e8
jmp 0x554053