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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x450
mov eax, dword [edx + 8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [edx + 0xc]
mov ebx, edx
mov edx, eax
xor edx, 3
or edx, ecx
je 0x476243
mov edx, eax
xor edx, 2
or edx, ecx
je 0x476243
or eax, ecx
mov dword [esp + 8], ebx
je 0x475d04
mov eax, dword [ebx + 0x10]
lea edi, [ebx + 0x18]
or eax, dword [ebx + 0x14]
jne 0x475d0f
lea eax, [ebx + 0x1c]
lea esi, [esp + 0x130]
mov dword [esp + 0x14], edi
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
add eax, 0xfffffffa
adc ecx, 0xffffffff
cmp eax, 3
sbb ecx, 0
mov ecx, 1
cmovae eax, ecx
test eax, eax
jne 0x475f00
cmp dword [edi], 0
jne 0x476243
mov edx, dword [esp + 4]
mov ecx, esi
push dword [ebp + 8]
call fcn.00475868
pop eax
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
mov eax, ecx
xor eax, 6
or eax, edx
je 0x475ef2
movsd xmm1, qword [esp + 0x140]
movsd xmm0, qword [esp + 0x148]
movsd xmm2, qword [esp + 0x130]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0x138]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x30], xmm1
push 0x1c
pop ecx
mov ebx, edi
lea edi, [esp + 0x270]
lea esi, [esp + 0x158]
rep movsd dword es:[edi], dword [esi]
cmp dword [ebx], 0
jne 0x476252
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x1c8]
mov edi, dword [esp + 0x1cc]
call fcn.00475aa0
mov ecx, dword [esp + 0x10]
mov dword [ebx], 1
xor ebx, ebx
mov eax, ecx
and al, 7
cmp al, 4
push 0x20
pop eax
push 4
pop edx
je 0x475c8f
mov eax, ecx
and eax, 7
cmp eax, 5
je 0x47627b
movsd xmm1, qword [esp + 0x38]
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov edx, esi
mov ebx, edi
movsd qword [esp + 0xa0], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0xa8], xmm0
movsd qword [esp + 0x90], xmm2
movsd qword [esp + 0x98], xmm1
mov dword [esp + 0xb4], eax
mov eax, 0x98
mov dword [esp + 0xb0], ecx
push 0x1c
pop ecx
lea edi, [esp + 0xb8]
lea esi, [esp + 0x270]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + eax + 0x90], edx
mov dword [esp + eax + 0x94], ebx
mov eax, dword [esp + 0xb0]
xor eax, 6
or eax, dword [esp + 0xb4]
je 0x475ef2
mov ebx, 0xa0
push ebx
lea eax, [esp + 0x94]
push eax
lea esi, [esp + 0x138]
push esi
call fcn.004fea40
add esp, 0xc
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.004762e7
push ebx
push esi
push edi
call fcn.004fea40
add esp, 0xc
mov ebx, dword [esp + 8]
jmp 0x475b42
mov eax, dword [ebx + 0x10]
lea edi, [ebx + 0x18]
or eax, dword [ebx + 0x14]
je 0x475d22
lea ecx, [esp + 0x1d0]
mov edx, edi
call fcn.0047631f
jmp 0x475f3b
lea eax, [ebx + 0x1c]
lea esi, [esp + 0x130]
mov dword [esp + 0x14], edi
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
add eax, 0xfffffffa
adc ecx, 0xffffffff
cmp eax, 3
sbb ecx, 0
mov ecx, 1
cmovae eax, ecx
test eax, eax
jne 0x475f00
cmp dword [edi], 0
jne 0x476243
mov edx, dword [esp + 4]
mov ecx, esi
push dword [ebp + 8]
call fcn.00475868
pop eax
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
mov eax, ecx
xor eax, 6
or eax, edx
je 0x475ef2
movsd xmm1, qword [esp + 0x140]
movsd xmm0, qword [esp + 0x148]
movsd xmm2, qword [esp + 0x130]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0x138]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x30], xmm1
push 0x1c
pop ecx
mov ebx, edi
lea edi, [esp + 0x270]
lea esi, [esp + 0x158]
rep movsd dword es:[edi], dword [esi]
cmp dword [ebx], 0
jne 0x476252
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x1c8]
mov edi, dword [esp + 0x1cc]
call fcn.00475aa0
mov ecx, dword [esp + 0x10]
mov dword [ebx], 1
xor ebx, ebx
mov eax, ecx
and al, 7
cmp al, 4
push 0x20
pop eax
push 4
pop edx
je 0x475e81
mov eax, ecx
and eax, 7
cmp eax, 5
je 0x47628a
movsd xmm1, qword [esp + 0x38]
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov edx, esi
mov ebx, edi
movsd qword [esp + 0xa0], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0xa8], xmm0
movsd qword [esp + 0x90], xmm2
movsd qword [esp + 0x98], xmm1
mov dword [esp + 0xb4], eax
mov eax, 0x98
mov dword [esp + 0xb0], ecx
push 0x1c
pop ecx
lea edi, [esp + 0xb8]
lea esi, [esp + 0x270]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + eax + 0x90], edx
mov dword [esp + eax + 0x94], ebx
mov eax, dword [esp + 0xb0]
xor eax, 6
or eax, dword [esp + 0xb4]
je 0x475ef2
mov ebx, 0xa0
push ebx
lea eax, [esp + 0x94]
push eax
lea esi, [esp + 0x138]
push esi
call fcn.004fea40
add esp, 0xc
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.004762e7
push ebx
push esi
push edi
call fcn.004fea40
add esp, 0xc
mov ebx, dword [esp + 8]
jmp 0x475d34
and dword [esp + 0x1f4], 0
mov ebx, dword [esp + 8]
jmp 0x475f30
cmp eax, 1
jne 0x47626c
lea esi, [esp + 0x130]
mov edx, edi
mov ecx, esi
call fcn.0047631f
mov eax, dword [esi + 0x20]
xor eax, 5
or eax, dword [esi + 0x24]
jne 0x476216
and dword [esp + 0x1f4], 0
mov dword [esp + 0x1f0], 5
mov ecx, dword [esp + 0x1f0]
mov edx, dword [esp + 0x1f4]
mov eax, ecx
xor eax, 5
or eax, edx
jne 0x475f66
mov eax, dword [esp + 0x1c]
and dword [eax + 0x1c], 0
mov dword [eax + 0x18], 5
jmp 0x47620e
lea esi, [esp + 0x1f8]
mov dword [esp + 8], edx
lea edx, [ebx + 8]
mov dword [esp + 4], ecx
mov eax, dword [esi - 0x28]
movsd xmm0, qword [esi - 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esi - 0x20]
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [esi - 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esi - 0xc]
movsd qword [esp + 0x80], xmm0
mov dword [esp + 0x88], eax
push 0x1e
pop ecx
lea edi, [esp + 0x3d0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [edx]
xor eax, 2
or eax, dword [edx + 4]
je 0x47629f
mov al, byte [ebx + 0xb8]
mov ecx, edx
mov dword [esp + 0xc], edx
mov byte [esp + 0x14], al
call fcn.004762c6
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
and dword [ebx + 0xc], 0
mov dword [ebx + 8], 2
mov eax, ecx
xor eax, 4
or eax, edx
jne 0x47601b
push 0x1c
pop ecx
lea edi, [esp + 0x2e0]
lea esi, [esp + 0x3d0]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 8], 0
push 4
pop eax
mov dword [esp + 4], eax
jmp 0x4760ae
mov eax, ecx
xor eax, 3
or eax, edx
mov eax, dword [esp + 0x10]
je 0x47606e
mov eax, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x78]
movsd xmm1, qword [esp + 0x80]
mov dword [esp + 0xa0], eax
movsd qword [esp + 0x98], xmm1
movsd qword [esp + 0x90], xmm0
push 0x1e
pop ecx
lea edi, [esp + 0x130]
lea esi, [esp + 0x3d0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xa0]
movsd xmm0, qword [esp + 0x90]
movsd xmm1, qword [esp + 0x98]
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], ecx
movsd qword [esp + 0x50], xmm1
movsd qword [esp + 0x48], xmm0
push 0x1e
pop ecx
lea edi, [esp + 0x2e0]
lea esi, [esp + 0x130]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x50]
mov eax, dword [esp + 0x58]
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x68], xmm1
mov dword [esp + 0x70], eax
push 0x1e
pop ecx
lea edi, [esp + 0x358]
lea esi, [esp + 0x2e0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx]
mov al, byte [esp + 0x27]
movzx esi, word [esp + 0x25]
xor ecx, 3
mov byte [esp + 0x1a], al
mov word [esp + 0x18], si
or ecx, dword [edx + 4]
je 0x4762ab
mov esi, ebx
mov ebx, dword [ebx]
mov ecx, edx
mov edi, dword [esi + 4]
call fcn.004762b7
mov ecx, dword [esp + 4]
and dword [esi + 0xc], 0
mov dword [esi + 8], 3
mov esi, dword [esp + 8]
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x1d4], edi
mov eax, ecx
xor eax, 4
or eax, esi
jne 0x47619c
mov edx, edi
push 0x1c
pop ecx
lea edi, [esp + 0x130]
lea esi, [esp + 0x358]
test ebx, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x1c]
lea edi, [eax + 0x20]
je 0x47617f
lea esi, [esp + 0x90]
lea eax, [esp + 0x198]
mov dword [esi], ebx
mov dword [esi + 4], edx
push eax
push ebx
call dword [edx + 0x14]
add esp, 8
mov ecx, esi
call fcn.00470396
push 0x1c
pop ecx
lea esi, [esp + 0x130]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x1c]
and dword [eax + 0x1c], 0
mov dword [eax + 0x18], 4
jmp 0x47620e
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
movsd xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
mov dword [edx], eax
mov eax, dword [esp + 0x70]
movsd qword [edx + 4], xmm0
movsd qword [edx + 0xc], xmm1
lea edi, [edx + 0x20]
mov dword [edx + 0x14], eax
mov dword [edx + 0x1c], esi
mov dword [edx + 0x18], ecx
push 0x1e
pop ecx
lea esi, [esp + 0x358]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
mov ch, byte [esp + 0x14]
mov cl, byte [esp + 0x1a]
movzx esi, word [esp + 0x18]
mov dword [edx + 0x98], eax
mov byte [edx + 0x9c], ch
mov byte [edx + 0x9f], cl
lea ecx, [esp + 0x1d0]
mov word [edx + 0x9d], si
call fcn.004463f7
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x1d0]
push 0xa0
push esi
push eax
call fcn.004fea40
add esp, 0xc
mov ecx, edi
call fcn.004762e7
and dword [ebx + 0x3c], 0
mov dword [ebx + 0x38], 8
jmp 0x475f3b
push 0x36
pop edx
mov ecx, str.Map_must_not_be_polled_after_it_returned__Poll::Ready_.cargo_registry_srcindex.crates.io_1cd66030c949c28d_futures_util_0.3.28_src_future_futuremap.rs
push 0x5388e4
jmp 0x476297
mov dword [ebx], 1
push 0x28
pop edx
mov ecx, 0x56e192
push 0x5388f4
call fcn.0050af40
jmp 0x47629c
push 0x1f
pop edx
mov ecx, str.Flatten_polled_after_completion.cargo_registry_srcindex.crates.io_1cd66030c949c28d_futures_util_0.3.28_src_future_future_flatten.rs
push 0x539564
jmp 0x476297
push 0x28
pop edx
mov ecx, 0x53afb0
push 0x53afe8
jmp 0x476297
push 0x28
pop edx
mov ecx, 0x53afb0
push 0x53afd8
call fcn.0050ceed
pop eax
ud2
and dword [edx + 4], 0
mov dword [edx], 2
jmp 0x476258
and dword [edx + 4], 0
mov dword [edx], 3
jmp 0x476258