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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x538
call 0x5caca8
pop eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0xa4], eax
push 0x18
pop ecx
lea edi, [esp + 0x320]
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x28], edx
mov eax, dword [edx + 0x68]
cmp eax, 0x3b9aca00
jne 0x5cacdc
mov dword [esp], 0x3b9aca00
jmp 0x5cad77
mov ecx, dword [edx + 0x60]
mov esi, edx
mov edx, dword [edx + 0x64]
mov dword [esp + 0x384], edx
mov dword [esp + 0x380], ecx
mov dword [esp + 0x388], eax
mov eax, dword [0xa7101c]
cmp eax, 5
jb 0x5cad42
lea eax, [esp + 0x380]
lea edx, [esp + 0x30]
lea ecx, [esp + 0xc8]
mov dword [edx], eax
xor eax, eax
mov dword [ecx], str.wait_at_most
mov dword [edx + 4], fcn.004489c0
inc eax
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
push 5
pop edx
push 0xa05290
call fcn.00565e75
pop eax
call fcn.005f2e70
mov esi, ecx
mov ecx, eax
push dword [esp + 0x388]
push dword [esp + 0x388]
push dword [esp + 0x388]
push esi
call fcn.005f3590
add esp, 0x10
mov dword [esp + 4], eax
mov dword [esp + 0xa8], edx
mov dword [esp], ecx
call fcn.005dec70
mov ecx, eax
call fcn.005c95cf
lea ecx, [esp + 0xb0]
add eax, 8
mov dword [ecx], 0x9fe024
mov dword [ecx + 4], eax
lea eax, [esp + 0xc]
mov dword [eax], ecx
push 0x18
pop ecx
lea eax, [esp + 0xc8]
lea esi, [esp + 0x320]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax + 0x60], str.utf_8
mov dword [eax + 0x64], 5
lea eax, [esp + 0x380]
lea esi, [esp + 0x130]
push 0x1b4
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx eax, word [esp + 0x2d]
mov byte [esi + 0x1b4], 0
lea ebx, [esp + 0x280]
mov word [esi + 0x1b5], ax
mov al, byte [esp + 0x2f]
mov byte [esi + 0x1b7], al
xor eax, eax
test al, al
je 0x5cae4f
movzx eax, al
cmp eax, 3
jne 0x5cb6d7
movzx eax, byte [esp + 0x2d8]
test eax, eax
je 0x5caf18
cmp eax, 3
jne 0x5cb6e6
movzx eax, byte [esp + 0x2b5]
mov eax, dword [eax*4 + 0x5cb70c]
add eax, dword [esp + 0xa4]
jmp eax
push 0x18
pop ecx
lea eax, [esp + 0x130]
lea esi, [esp + 0xc8]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x30]
mov dword [esp + 0x34], 0x1d
mov ecx, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
and dword [esp + 0x3c], 0
and dword [esp + 0x38], 0
and dword [esp + 0x30], 0
mov edx, edi
mov dword [esp + 8], ecx
mov ecx, eax
call fcn.004cdbb8
test eax, eax
je 0x5caec5
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
call fcn.004e1d41
test eax, eax
je 0x5caec5
mov esi, edx
mov ecx, edi
mov edx, eax
push esi
call fcn.00566bec
pop eax
cmp dword [esp + 0x30], 2
jne 0x5cb12c
mov esi, dword [esp + 8]
mov dword [esp + 0x190], 2
xor eax, eax
test eax, eax
cmovne ebx, eax
cmove edx, esi
mov ecx, ebx
call fcn.0049795d
test eax, eax
mov ecx, 0x83249c
cmove eax, ecx
mov dword [esp + 0x2e0], eax
push 0x18
pop ecx
lea edi, [esp + 0x1c0]
lea esi, [esp + 0x130]
lea ebx, [esp + 0x280]
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x2d8], 0
push 0x18
pop ecx
lea eax, [esp + 0x1c0]
lea edi, [esp + 0x220]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
push 0x16
pop ecx
lea edx, [esp + 0x30]
mov esi, eax
lea eax, [esp + 0x78]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x2f0], xmm1
movsd qword [esp + 0x2e8], xmm0
call fcn.005795d9
push 0x35
pop ecx
mov edi, ebx
lea esi, [esp + 0x2e8]
rep movsb byte es:[edi], byte [esi]
mov byte [esp + 0x2b5], 0
mov byte [esp + 0x2b4], 0
lea eax, [esp + 0x290]
lea edx, [esp + 0x2b0]
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2b8], edx
lea edi, [esp + 0x30]
lea eax, [esp + 0xc]
mov ecx, edi
push eax
call fcn.005c81a8
pop eax
mov eax, dword [esp + 0x30]
cmp eax, 2
jne 0x5cafcd
mov al, 3
jmp 0x5cb1b3
test eax, eax
je 0x5cb435
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
test eax, eax
je 0x5cb448
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov byte [esp + 0x2b4], 1
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x2a4], esi
mov dword [esp + 0x2a8], edx
lea edx, [esp + 0x2b0]
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0x2b8], edx
lea eax, [esp + 0xc]
mov ecx, edi
push eax
call fcn.005c81a8
pop eax
mov eax, dword [esp + 0x30]
cmp eax, 2
jne 0x5cb03c
mov al, 4
jmp 0x5cb1b3
test eax, eax
je 0x5cb4b0
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
test eax, eax
je 0x5cb4ac
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2bc], esi
mov dword [esp + 0x2c4], ecx
mov dword [esp + 0x2c0], edx
mov ecx, edi
mov edx, dword [esp + 0x2b0]
call fcn.0058b82f
mov eax, dword [esp + 0x40]
mov ecx, 0x4000
mov edx, 0xffffffff
cmp eax, ecx
cmovae eax, ecx
mov ecx, dword [esp + 0x2a8]
add ecx, dword [esp + 0x2c0]
cmovb ecx, edx
add ecx, eax
cmovb ecx, edx
xor edx, edx
call fcn.00567657
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2cc], edx
and dword [esp + 0x2d0], 0
mov byte [esp + 0x2b4], 0
lea ecx, [esp + 0x2a0]
lea esi, [esp + 0x2c8]
mov edx, edi
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, esi
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x38], xmm1
call fcn.005c86bc
lea eax, [esp + 0xc8]
mov ecx, esi
mov edx, edi
movsd xmm0, qword [eax + 0x1f0]
movsd xmm1, qword [eax + 0x1f8]
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm0
jmp 0x5cb3bc
mov esi, edi
push 0xc
pop ecx
lea edi, [esp + 0x190]
xor eax, eax
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x190], 2
mov esi, dword [esp + 8]
je 0x5caed6
lea ecx, [esp + 0x30]
lea edx, [esp + 0x190]
push str.charset
call fcn.005c81b5
pop eax
xor eax, eax
cmp byte [esp + 0x38], 2
je 0x5cb171
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
jmp 0x5caed6
lea eax, [esp + 0xc]
mov ecx, edi
push eax
call fcn.005c81a8
pop eax
mov eax, dword [esp + 0x30]
cmp eax, 2
jne 0x5cb381
mov al, 5
mov esi, dword [esp]
mov byte [esp + 0x2b5], al
mov al, 3
mov byte [esp + 0x2d8], al
mov byte [esp + 0x2e4], al
cmp esi, 0x3b9aca00
jne 0x5cb261
mov eax, dword [0xa7101c]
cmp eax, 4
jbe 0x5cb257
call fcn.005dec70
mov dword [esp + 0x98], eax
lea edx, [esp + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], 0xa05164
mov dword [esp + 0x34], 2
and dword [esp + 0x40], 0
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], 0x5deea0
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x88]
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], 1
mov ecx, edi
push 5
pop edx
push 0xa051e4
call fcn.00565e75
pop eax
lea ecx, [esp + 0x98]
call fcn.005c224c
call fcn.005def80
jmp 0x5cb375
call fcn.005f2e70
mov ebx, ecx
mov edi, edx
mov ecx, eax
mov dword [esp + 8], eax
push esi
mov esi, dword [esp + 0xac]
push esi
push dword [esp + 0xc]
push ebx
call fcn.005c95ea
add esp, 0x10
mov ecx, dword [0xa7101c]
test al, al
jne 0x5cb3d4
cmp ecx, 4
jbe 0x5cb34b
call fcn.005dec70
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 4]
mov edx, esi
movsd xmm0, qword [eax + 8]
movsd qword [esp + 0x98], xmm0
push ebx
push edi
push dword [esp + 0x10]
push dword [esp + 0xc]
call fcn.00605599
add esp, 0x10
mov dword [esp + 0x10], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], 0xa0524c
mov dword [esp + 0x88], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x8c], 0x5deea0
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], fcn.004489c0
push 2
pop eax
mov dword [esp + 0x34], eax
and dword [esp + 0x40], 0
lea ecx, [esp + 0x88]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x30]
push 5
pop edx
push 0xa0525c
call fcn.00565e75
pop eax
lea ecx, [esp + 0xac]
call fcn.005c224c
mov ecx, dword [esp + 4]
mov edx, esi
push ebx
push edi
push dword [esp + 0x10]
push dword [esp + 0xc]
call fcn.00605599
add esp, 0x10
mov esi, ecx
mov ecx, eax
push esi
call fcn.005df0f0
pop eax
lea ebx, [esp + 0x280]
mov al, byte [esp + 0x2e4]
jmp 0x5cae02
test eax, eax
je 0x5cb45e
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
test eax, eax
je 0x5cb499
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x2c8]
lea edx, [esp + 0x10]
call fcn.005c86bc
lea edx, [esp + 0x2b0]
mov dword [esp + 0x2d4], edx
jmp 0x5cb197
cmp ecx, 5
jb 0x5cb407
lea ecx, [esp + 0x30]
mov dword [ecx], str.wait_timeout_exceeded
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.dest_is_out_of_bounds
and dword [ecx + 0xc], 0
push 5
pop edx
push 0xa05220
call fcn.00565e75
pop eax
movzx eax, byte [esp + 0x2e4]
mov edi, dword [esp + 0x28]
cmp eax, 3
je 0x5cb65a
test eax, eax
jne 0x5cb672
lea ecx, [esp + 0xc8]
call fcn.005b8e45
jmp 0x5cb672
mov dword [esp], 0
mov esi, str.dest_is_out_of_bounds
mov edi, 0xa00c50
jmp 0x5cb451
xor edi, edi
mov dword [esp], 0
mov dword [esp + 4], 0
jmp 0x5cb4f2
lea ecx, [esp + 0x2c8]
lea ebx, [esp + 0x30]
lea edx, [esp + 0x88]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov ecx, ebx
mov dword [edx + 8], eax
movsd qword [edx], xmm0
call fcn.0043ce53
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edi, dword [ebx]
mov esi, dword [ebx + 4]
mov dword [esp], eax
mov dword [esp + 4], ecx
jmp 0x5cb4f2
mov ecx, dword [esp + 0x2c8]
mov edx, dword [esp + 0x2cc]
call fcn.004bdbce
xor edi, edi
jmp 0x5cb4dc
lea ebx, [esp + 0x30]
lea edx, [esp + 0x2a0]
mov ecx, ebx
push dword [esp + 0x2a8]
call fcn.0043d1bf
pop eax
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edi, dword [ebx]
mov esi, dword [ebx + 4]
mov dword [esp], eax
mov dword [esp + 4], ecx
cmp byte [esp + 0x2b4], 0
je 0x5cb4f2
lea ecx, [esp + 0x2a0]
call fcn.00579450
lea ecx, [esp + 0x290]
mov byte [esp + 0x2b4], 0
call fcn.00579417
mov bl, 1
lea ecx, [esp + 0x280]
mov byte [esp + 0x2b5], bl
call fcn.005cac34
mov ecx, dword [esp + 0x278]
call fcn.005b8e5e
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x2d8], bl
call fcn.005cac00
test edi, edi
je 0x5cb58c
mov eax, dword [esp + 4]
mov dword [esp + 0xb8], edi
mov edi, dword [esp]
mov dword [esp + 0xbc], esi
mov ecx, esi
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0xc0], edi
mov edx, edi
mov dword [esp + 4], eax
push 3
push 0x9fdf7c
call fcn.004ec515
pop ecx
pop edx
test al, al
je 0x5cb593
push 3
pop ecx
mov ebx, 0x83249c
jmp 0x5cb5d7
xor ebx, ebx
jmp 0x5cb648
mov ecx, esi
mov edx, edi
push 2
push 0x9fdf7f
call fcn.004ec515
pop ecx
pop edx
mov ebx, 0x832480
test al, al
je 0x5cb5b3
push 2
pop ecx
jmp 0x5cb5d7
mov ecx, esi
mov edx, edi
push 2
push 0x9fdf81
call fcn.004ec515
pop ecx
pop edx
test al, al
mov ebx, 0x832464
mov eax, esi
push 2
pop ecx
mov edx, dword [esp + 4]
je 0x5cb5ed
mov edx, esi
push 0x9fdf6c
push dword [esp + 4]
call fcn.00596326
pop ecx
pop ecx
mov edi, edx
mov edx, ebx
lea ebx, [esp + 0x30]
mov ecx, ebx
push edi
push eax
call fcn.00497b94
pop eax
pop ecx
mov ebx, dword [ebx]
test ebx, ebx
je 0x5cb61b
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
lea ecx, [esp + 0xb8]
mov dword [esp], eax
call fcn.00579450
jmp 0x5cb648
mov edi, dword [esp]
xor edx, edx
mov ecx, edi
call fcn.00567657
mov ebx, eax
mov dword [esp + 4], edx
push edi
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0xb8]
call fcn.00579450
mov esi, dword [esp + 4]
lea ecx, [esp + 0x190]
call fcn.005cb724
mov edi, dword [esp + 0x28]
jmp 0x5cb676
lea ecx, [esp + 0x1c0]
call fcn.005cac00
lea ecx, [esp + 0x190]
call fcn.005cb724
xor esi, esi
xor ebx, ebx
mov eax, dword [esp + 0xb0]
push dword [esp + 0xb4]
call dword [eax + 0xc]
add esp, 4
test ebx, ebx
je 0x5cb69f
mov eax, dword [esp + 0x24]
mov ecx, dword [esp]
mov dword [eax], ebx
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
jmp 0x5cb6b4
test esi, esi
jne 0x5cb6aa
call fcn.005c88fa
mov esi, eax
mov eax, dword [esp + 0x24]
mov dword [eax + 4], esi
and dword [eax], 0
mov ecx, dword [edi + 0x70]
mov edx, dword [edi + 0x74]
call fcn.0045e01c
cmp dword [edi + 0x78], 0
je 0x5cb6cf
add edi, 0x78
mov ecx, edi
call fcn.005c983a
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x23
pop edx
mov ecx, str._async_fn__resumed_after_completion
push 0xa04bf8
jmp 0x5cb6f3
push 0x23
pop edx
mov ecx, str._async_fn__resumed_after_completion
push 0xa04c08
call fcn.0063cd70
pop eax
ud2