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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2d8
cmp byte [ecx + 0x2c], 2
mov dword [esp + 0x4c], edx
je 0x47c280
lea eax, [ecx + 0x20]
lea esi, [esp + 0x98]
mov ebx, ecx
mov edx, dword [eax]
mov ecx, esi
mov dword [esp + 0x14], eax
add edx, 8
call fcn.004132c0
cmp dword [esi], 0
jne 0x47c294
lea eax, [esp + 0x98]
mov esi, dword [ebx + 0x24]
mov edi, dword [eax + 4]
mov al, byte [eax + 8]
mov byte [esp + 0x18], al
mov eax, dword [ebx + 0x28]
mov ecx, dword [edi + 0x18c]
mov edx, dword [edi + 0x190]
mov dword [esp + 0x10], eax
push eax
mov dword [esp + 0x10], esi
push esi
call fcn.0041086b
add esp, 8
lea esi, [esp + 0x98]
lea edx, [eax + 0xac]
lea eax, [edi + 0x9c]
mov ecx, esi
push eax
call fcn.00416695
add esp, 4
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x1c], ebx
mov dword [esp + 8], edi
mov edx, eax
xor edx, 6
or edx, ecx
jne 0x47b9e6
mov ecx, dword [edi + 0x18c]
mov edx, dword [edi + 0x190]
mov edi, dword [esp + 0x10]
push edi
mov ebx, dword [esp + 0x10]
push ebx
call fcn.004108dd
add esp, 8
lea esi, [esp + 0x28]
lea edx, [eax + 0x20]
mov ecx, esi
call fcn.004172ba
mov al, byte [esi]
cmp al, 3
jne 0x47baa0
cmp byte [esp + 0x29], 0
je 0x47bb55
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov ecx, dword [eax]
push dword [eax + 4]
call dword [ecx]
add esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x24], edx
mov ecx, dword [eax + 0x18c]
mov edx, dword [eax + 0x190]
push edi
push ebx
call fcn.0041086b
add esp, 8
mov esi, eax
mov eax, dword [eax + 0x50]
test eax, eax
je 0x47b9c1
push dword [esi + 0x54]
call dword [eax + 0xc]
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
movzx edx, byte [esp + 0x18]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
mov ecx, dword [esp + 8]
call fcn.00422910
mov ebx, dword [esp + 0x1c]
jmp 0x47ba85
mov esi, eax
mov edx, ecx
add esi, 0xfffffffc
adc edx, 0xffffffff
xor edi, edi
xor ebx, ebx
inc ebx
cmp ebx, esi
sbb edi, edx
setb dl
cmp esi, 0xffffffff
sete dh
xor eax, 3
or eax, ecx
jne 0x47c2d9
or dl, dh
je 0x47c2d9
lea esi, [esp + 0xb4]
mov eax, dword [esi - 0x14]
movzx edi, word [esi - 0xa]
mov edx, dword [esi - 8]
mov ecx, dword [esi - 4]
mov ebx, dword [esi - 0x10]
mov dword [esp + 0xc], eax
mov al, byte [esi - 0xc]
mov word [esp + 0x22], di
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], edx
lea edi, [esp + 0x190]
mov ecx, 0xd
mov dword [esp + 0x10], eax
mov al, byte [esi - 0xb]
mov byte [esp + 7], al
rep movsd dword es:[edi], dword [esi]
movzx edx, byte [esp + 0x18]
mov ecx, dword [esp + 8]
call fcn.00422910
mov ecx, dword [esp + 0xc]
mov eax, ecx
xor eax, 3
or eax, ebx
je 0x47bae5
mov eax, ecx
mov dword [esp + 8], ebx
xor eax, 4
or eax, ebx
mov ebx, dword [esp + 0x1c]
jne 0x47baf2
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f0], 5
jmp 0x47c1a5
movzx esi, word [esp + 0x2a]
mov bl, byte [esp + 0x29]
mov edx, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov word [esp + 0x22], si
mov esi, dword [esp + 8]
mov byte [esp + 7], bl
mov dword [esp + 0x24], edx
movsd qword [esp + 0x190], xmm0
mov dword [esp + 0x198], ecx
jmp 0x47bb89
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x48]
jmp 0x47bb99
lea eax, [esp + 0x158]
lea edx, [esp + 0x19c]
mov ecx, 0xa
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
movsd xmm0, qword [edx - 0xc]
mov byte [eax - 0x18], cl
mov cl, byte [esp + 7]
mov byte [eax - 0x17], cl
movzx ecx, word [esp + 0x22]
mov word [eax - 0x16], cx
mov ecx, dword [esp + 0x48]
mov dword [eax - 0x14], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax - 0x10], ecx
mov ecx, dword [edx - 4]
mov edx, dword [esp + 0x14]
movsd qword [eax - 0xc], xmm0
mov dword [eax - 4], ecx
lea ecx, [esp + 0x180]
call fcn.0040ccd5
jmp 0x47bbf4
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x18c]
mov edx, dword [esi + 0x190]
push edi
push ebx
call fcn.004108dd
add esp, 8
mov edi, dword [eax + 0xcc]
xor eax, eax
mov byte [esp + 7], 1
mov dword [esp + 0x10], 0
inc eax
mov dword [esp + 0x24], eax
movzx edx, byte [esp + 0x18]
mov ecx, esi
call fcn.00422910
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x198]
movsd xmm0, qword [esp + 0x190]
mov byte [edx], al
mov al, byte [esp + 7]
mov byte [edx + 1], al
movzx eax, word [esp + 0x22]
mov word [edx + 2], ax
mov dword [edx + 4], edi
mov dword [edx + 8], esi
mov dword [edx + 0x14], ecx
lea ecx, [esp + 0x140]
movsd qword [edx + 0xc], xmm0
call fcn.0040c653
mov dword [esp + 8], 0
mov dword [esp + 0xc], 3
lea esi, [esp + 0x158]
lea edi, [esp + 0x298]
mov ecx, 0xe
lea eax, [ebx + 0xc]
movsd xmm0, qword [esi - 8]
movsd xmm1, qword [esi - 0x10]
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [esi - 0x18]
movsd qword [esp + 0x70], xmm1
movsd qword [esp + 0x68], xmm0
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x18], eax
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x14]
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0x58], xmm1
mov dword [esp + 0x60], eax
call fcn.0043b3b7
mov ecx, dword [esp + 0xc]
mov byte [ebx + 0x2c], 2
mov ebx, dword [esp + 8]
mov edi, ecx
xor edi, 3
mov eax, edi
or eax, ebx
je 0x47be10
movsd xmm1, qword [esp + 0x70]
mov dword [esp + 0x14], edi
lea edi, [esp + 0x1b0]
movsd xmm0, qword [esp + 0x68]
mov eax, ecx
lea esi, [esp + 0x298]
mov dword [edi - 0x20], ecx
mov dword [edi - 0x1c], ebx
mov ecx, 0xe
movsd qword [edi - 0x10], xmm1
movsd xmm1, qword [esp + 0x78]
movsd qword [edi - 0x18], xmm0
movsd qword [edi - 8], xmm1
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x60]
test eax, eax
mov dword [esp + 0xc], eax
je 0x47bd14
mov eax, dword [esp + 0xc]
lea esi, [esp + 0x98]
mov ecx, esi
lea edx, [eax + 8]
call fcn.004132c0
cmp dword [esi], 0
jne 0x47c315
mov esi, dword [esp + 0x9c]
mov al, byte [esp + 0xa0]
cmp dword [esi + 0x38], 0x3b9aca00
je 0x47bd0a
mov byte [esp + 0x10], al
call fcn.0049b460
mov dword [esi + 0x30], eax
mov al, byte [esp + 0x10]
mov dword [esi + 0x34], edx
mov dword [esi + 0x38], ecx
movzx edx, al
mov ecx, esi
call fcn.00422910
lea esi, [esp + 0x288]
lea edi, [esp + 0x190]
mov ecx, esi
mov edx, edi
call fcn.00420ad8
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movzx eax, word [edi + 0x44]
movsd qword [esp + 0x80], xmm0
movsd qword [esp + 0x88], xmm1
mov word [esp + 0x90], ax
cmp eax, 0xc8
mov eax, dword [esp + 0x80]
jne 0x47beb8
test eax, eax
je 0x47beb8
cmp dword [esp + 0x10], 0
je 0x47c031
or edx, ecx
je 0x47c031
mov esi, dword [esp + 0x18]
mov edx, 2
mov edi, ebx
mov ecx, esi
call fcn.0047ff76
lea ecx, [esp + 0x98]
mov byte [ecx], 2
mov dword [ecx + 4], 2
call fcn.0041ed0f
mov ecx, esi
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f0], 3
call fcn.0043b39c
lea esi, [esp + 0x190]
mov ecx, esi
call fcn.0040f7d4
mov ecx, dword [esi + 0x40]
call fcn.0041fe38
lea esi, [esp + 0x1d8]
mov ecx, esi
call fcn.00412ddb
mov ecx, esi
call fcn.0043b3b7
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
jmp 0x47be88
mov esi, dword [esp + 0x60]
movsd xmm0, qword [esp + 0x78]
movsd xmm2, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x70]
mov ecx, esi
movsd qword [esp + 0xa8], xmm0
movsd qword [esp + 0xa0], xmm1
movsd qword [esp + 0x98], xmm2
call fcn.0041f5c8
test eax, eax
je 0x47bfe8
xor ecx, ecx
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x14], edi
mov edi, ebx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x1f4], ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0x1f0], 3
call fcn.0043b3d0
mov ebx, dword [esp + 0x1c]
test esi, esi
je 0x47be9a
lock dec dword [esi]
jne 0x47be9a
lea ecx, [esp + 0x60]
call fcn.0042243a
or dword [esp + 0x14], edi
jne 0x47c18c
cmp dword [esp + 0x50], 0
je 0x47c18c
lea ecx, [esp + 0x50]
jmp 0x47bfde
mov dword [esp + 8], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
lea edi, [esp + 0x98]
lea esi, [esp + 0x190]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xe0]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x140], eax
movsd qword [esp + 0x138], xmm0
mov dword [esp + 0x28], esi
call fcn.00412d0b
xor edi, edi
test al, al
cmove edi, esi
test esi, esi
je 0x47bf27
mov edx, dword [esp + 8]
test al, al
je 0x47bf2b
xor edi, edi
lock dec dword [esi]
jne 0x47bf2b
lea ecx, [esp + 0x28]
call fcn.0042243a
mov edx, dword [esp + 8]
cmp dword [esp + 0x10], 0
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xc], edi
je 0x47bf44
cmp ebx, 0xfffffffe
mov eax, edx
sbb eax, 0xffffffff
jb 0x47bf62
lea ecx, [esp + 0x138]
call fcn.00412d0b
xor edx, edx
xor ecx, ecx
mov ebx, 0xfffffffe
dec edx
test al, al
cmovne edx, ecx
cmovne ebx, ecx
mov eax, dword [esp + 0x140]
movsd xmm0, qword [esp + 0x138]
lea esi, [esp + 0x98]
mov ecx, 0x12
mov dword [esp + 0x30], eax
lea eax, [esp + 0x1f8]
movsd qword [esp + 0x28], xmm0
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax + 0x48], 2
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x28]
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x58], esi
movsd qword [eax + 0x50], xmm0
mov dword [eax + 0x60], ebx
xor esi, esi
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x1c]
mov dword [eax + 0x64], edx
mov dword [eax + 0x68], esi
mov dword [eax - 4], esi
mov dword [eax - 8], 4
je 0x47c18c
lea ecx, [esp + 0x80]
call fcn.0043b39c
jmp 0x47c18c
lea ecx, [esp + 0x68]
call fcn.0041ed0f
mov ebx, dword [esp + 0x1c]
test esi, esi
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f0], 3
je 0x47bea4
lock dec dword [esi]
jne 0x47bea4
lea ecx, [esp + 0x60]
call fcn.0042243a
jmp 0x47bea4
lea eax, [esp + 0x98]
lea ebx, [esp + 0x190]
mov ecx, 0x16
lea edx, [esp + 0x138]
mov edi, eax
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x12
mov edi, edx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, ebx
mov ecx, dword [eax + 0x50]
movsd xmm0, qword [eax + 0x48]
lea eax, [esp + 0x98]
mov edi, eax
mov dword [edx + 0x50], ecx
movsd qword [edx + 0x48], xmm0
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx + 0x50]
movsd xmm0, qword [edx + 0x48]
xor esi, esi
mov dword [eax + 0x48], esi
mov dword [eax + 0x4c], esi
mov dword [esp + 0x40], ecx
movsd qword [esp + 0x38], xmm0
mov dword [eax + 0x68], esi
call fcn.00422972
mov edi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 8], edx
mov ecx, 0x30
mov edx, 4
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x30], xmm1
mov al, byte [0x538038]
call fcn.00439850
test eax, eax
je 0x47c348
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov ebx, str.C:Usersigame.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_src_aes.rs0
mov dword [eax + 0x18], ecx
mov ecx, 0x522270
movsd xmm0, qword [esp + 0x38]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x30]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], ebx
mov dword [eax + 0x24], esi
mov dword [eax + 0x28], esi
mov dword [eax + 0x2c], edx
lea edx, [esp + 0x138]
mov dword [edx + 8], ecx
mov ecx, edi
mov dword [edx + 0xc], ebx
mov dword [edx + 0x10], esi
mov dword [edx + 0x14], esi
mov dword [edx], eax
mov dword [edx + 4], 0x5240e4
call fcn.004207d2
xor edx, edx
lea ecx, [esp + 0xd8]
inc edx
push dword [esp + 8]
call fcn.004816a9
add esp, 4
test eax, 0xfffffffd
jne 0x47c25a
lea eax, [esp + 0x1f8]
lea esi, [esp + 0x98]
mov ecx, 0x1c
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax - 4], 0
mov dword [eax - 8], 4
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1f0]
mov ecx, eax
and cl, 7
cmp cl, 4
je 0x47c1c8
and eax, 7
cmp eax, 5
jne 0x47c21e
cmp dword [ebx], 2
je 0x47c2c5
mov edx, dword [esp + 0x4c]
mov ecx, ebx
call fcn.0045877a
test al, al
je 0x47c250
mov al, 1
jmp 0x47c252
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov dword [ebx], 2
cmp ecx, 2
je 0x47c2ed
lea eax, [esp + 0x138]
lea esi, [esp + 0x1f8]
mov dword [eax], ecx
mov dword [eax + 4], edx
lea edx, [esp + 0xa8]
mov dword [eax + 8], edi
mov ecx, 0x1c
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov dword [edx - 4], 0
mov dword [edx - 8], 4
lea edx, [esp + 0x98]
mov ecx, eax
jmp 0x47c24b
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [ebx], 2
cmp eax, 2
je 0x47c301
lea ecx, [esp + 0x98]
mov dword [ecx], eax
mov dword [ecx + 4], edx
lea edx, [esp + 0x1e8]
mov dword [ecx + 8], esi
call fcn.004590e3
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edx
mov esi, edx
call fcn.0046ba6a
test esi, esi
je 0x47c163
lock dec dword [esi]
jne 0x47c163
mov ecx, esi
call fcn.00422839
jmp 0x47c163
mov ecx, 0x521590
mov edx, 0x36
push 0x5215c8
call fcn.004ed079
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0xa0]
lea esi, [esp + 0x28]
mov edx, 0x2b
mov dword [esi], eax
mov byte [esi + 4], cl
mov ecx, 0x52e579
push 0x4fdecc
push 0x4f47a8
push esi
call fcn.004e8cc0
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x52402c
call fcn.004e8a30
mov ecx, str.poll_response_called_after_response_returned
mov edx, 0x2c
push 0x4fe3f4
call fcn.004ea9b7
mov ecx, str.polled_after_complete
mov edx, 0x15
push 0x52400c
call fcn.004e8d40
mov ecx, str.polled_after_complete
mov edx, 0x15
push 0x52401c
call fcn.004e8d40
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0xa0]
lea esi, [esp + 0x138]
mov edx, 0x2b
mov dword [esi], eax
mov byte [esi + 4], cl
mov ecx, 0x52e579
push 0x5019a4
push 0x5010fc
jmp 0x47c2bf
mov ecx, 4
mov edx, 0x30
call fcn.004e8590