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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2a8
mov dword [esp + 0xc], ecx
lea esi, [edx + 0xa8]
lea ecx, [edx + 0x88]
lea eax, [edx + 0x70]
mov ebx, edx
lea edi, [esp + 4]
mov dword [esp + 0x50], 2
mov dword [esp + 0x60], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], ecx
lea esi, [edx + 0x74]
lea ecx, [edx + 0x78]
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
lea eax, [esi - 3]
cmp eax, 2
jae 0x47e38e
cmp dword [ebx + 0xbc], 0
jne 0x47e3cb
mov eax, dword [ebx + 0xb8]
cmp dword [ebx + 0xac], eax
jbe 0x47e3cb
jmp 0x47e686
test esi, esi
je 0x47e3b5
xor eax, eax
cmp esi, 1
jne 0x47e3b8
mov eax, dword [ebx + 0x7c]
mov ecx, 0
sub eax, dword [ebx + 0x80]
cmovb eax, ecx
cmp dword [ebx + 0x84], ecx
cmovne eax, ecx
jmp 0x47e3b8
mov eax, dword [ebx + 0x7c]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
cmp eax, ecx
cmovb ecx, eax
test ecx, ecx
jne 0x47e7f4
xor eax, eax
cmp esi, 3
mov dword [ebx + 0xbc], eax
mov dword [ebx + 0xb8], eax
mov dword [ebx + 0xac], eax
mov dword [ebx + 0x70], 4
jne 0x47ea42
mov eax, dword [esp + 0x40]
mov edx, dword [ebx + 0x84]
mov ecx, dword [esp + 0x34]
mov word [esp + 0x84], 0x904
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [ebx + 0xc0]
mov dword [esp + 4], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x80], edx
lea ecx, [esp + 0x80]
mov edx, edi
add eax, 9
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
mov dword [esp + 8], eax
call fcn.0040d433
mov edi, dword [esp + 4]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x28]
mov edx, dword [edi + 4]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
not edx
cmp edx, esi
cmovae edx, esi
cmp eax, edx
mov dword [esp + 0x74], edx
jbe 0x47e52f
mov eax, edx
lea edx, [esp + 0x20]
lea ecx, [esp + 0xa0]
push eax
call fcn.004034fb
add esp, 4
mov edx, dword [edi + 4]
mov ebx, dword [esp + 0xa8]
not edx
cmp edx, esi
cmovae edx, esi
cmp edx, ebx
jb 0x47ec2d
mov esi, dword [esp + 0xa4]
test ebx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x70], esi
je 0x47e4ed
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
call fcn.0040b672
mov edi, edx
cmp ebx, edx
cmovb edi, ebx
push edi
push esi
push eax
call fcn.004e4d00
add esp, 0xc
lea ecx, [esp + 4]
mov edx, edi
add esi, edi
call fcn.0040b631
sub ebx, edi
jne 0x47e4b2
mov eax, dword [esp + 0x80]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xa0]
push dword [esp + 0x1c]
push dword [esp + 0x74]
lea ecx, [esp + 0xb4]
push ecx
call dword [eax + 0xc]
add esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x24]
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
movsd qword [esp + 0xa0], xmm0
mov dword [esp + 0xa8], eax
jmp 0x47e575
test eax, eax
mov dword [esp + 0x1c], 0
je 0x47e681
mov ebx, dword [esp + 0x24]
mov edi, eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
call fcn.0040b672
mov esi, edx
cmp edi, edx
cmovb esi, edi
push esi
push ebx
push eax
call fcn.004e4d00
add esp, 0xc
lea ecx, [esp + 4]
mov edx, esi
add ebx, esi
call fcn.0040b631
sub edi, esi
jne 0x47e545
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 4]
lea edi, [esp + 4]
mov edx, dword [eax + 4]
mov dword [esp + 0x88], 0
mov ecx, edx
sub ecx, dword [esp + 0x7c]
bswap ecx
mov dword [esp + 0x8c], ecx
mov ecx, 0xfffffffb
test ecx, ecx
je 0x47e5b9
cmp byte [esp + ecx + 0x8d], 0
lea ecx, [ecx + 1]
je 0x47e5a3
jmp 0x47ec0a
cmp edx, 2
jbe 0x47ec1e
lea esi, [esp + 0x8d]
mov ecx, dword [eax]
mov dl, byte [esi + 2]
mov byte [ecx + 2], dl
movzx edx, word [esi]
mov esi, dword [esp + 0x44]
mov word [ecx], dx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x47e5f5
mov edx, dword [eax + 4]
cmp edx, 4
jbe 0x47ebcb
mov eax, dword [eax]
add byte [eax + 4], 0xfc
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa0]
cmp dword [esp + 0x78], eax
mov dword [esp + 0x98], edx
movsd qword [esp + 0x90], xmm0
ja 0x47e63a
mov eax, dword [esp + 0x20]
push dword [esp + 0x28]
push dword [esp + 0x28]
lea ecx, [esp + 0x34]
push ecx
call dword [eax + 0xc]
mov ecx, dword [esp + 0x28]
add esp, 0xc
test ecx, ecx
je 0x47e364
mov edi, ecx
mov ecx, dword [esp + 0x14]
call fcn.0047e26c
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x6c]
movsd xmm0, qword [esp + 0x90]
mov dword [ebx + 0x70], 3
mov dword [ebx + 0x74], edi
lea edi, [esp + 4]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov dword [ebx + 0x84], esi
jmp 0x47e364
jmp 0x47e579
xor ecx, ecx
cmp dword [ebx + 0xbc], 0
jne 0x47e360
mov eax, dword [ebx + 0xb8]
cmp dword [ebx + 0xac], eax
jbe 0x47e360
mov eax, dword [ebx + 0xd4]
push dword [ebx + 0xd0]
call dword [eax + 0x20]
add esp, 4
test al, al
je 0x47e74b
mov eax, 0xfffffe00
mov dword [esp + eax + 0x2a0], 0
mov dword [esp + eax + 0x2a4], str.C:Usersigame.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_src_aes.rs
add eax, 8
jne 0x47e6c6
xor eax, eax
cmp dword [ebx + 0xbc], 0
jne 0x47e713
mov ecx, dword [ebx + 0xac]
mov edx, dword [ebx + 0xb8]
sub ecx, edx
jbe 0x47e713
mov eax, dword [esp + 0x34]
mov dword [esp + 0xa0], ecx
add edx, dword [eax]
xor eax, eax
inc eax
mov dword [esp + 0xa4], edx
mov ecx, dword [ebx + 0xd4]
push eax
lea eax, [esp + 0xa4]
push eax
push dword [ebp + 8]
push dword [ebx + 0xd0]
lea eax, [esp + 0x30]
push eax
call dword [ecx + 0x1c]
add esp, 0x14
cmp byte [esp + 0x20], 5
je 0x47ebda
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
jmp 0x47e7a9
mov ecx, dword [ebx + 0xac]
mov eax, dword [ebx + 0xb8]
mov edx, dword [ebx + 0xd4]
cmp eax, ecx
cmovae eax, ecx
cmp dword [ebx + 0xbc], 0
cmovne eax, ecx
sub ecx, eax
add eax, dword [ebx + 0xa8]
push ecx
push eax
push dword [ebp + 8]
push dword [ebx + 0xd0]
lea eax, [esp + 0xb0]
push eax
call dword [edx + 0x10]
add esp, 0x14
cmp byte [esp + 0xa0], 5
je 0x47ebda
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
cmp al, 4
jne 0x47ebde
mov edx, dword [ebx + 0xac]
mov esi, dword [ebx + 0xb8]
mov eax, dword [ebx + 0xbc]
mov edi, 0
sub edx, esi
cmovb edx, edi
test eax, eax
cmovne edx, edi
cmp edx, ecx
jb 0x47ec2f
add esi, ecx
lea edi, [esp + 4]
adc eax, 0
mov dword [ebx + 0xb8], esi
mov dword [ebx + 0xbc], eax
jmp 0x47e360
mov eax, dword [ebx + 0xac]
xor ecx, ecx
sub eax, dword [ebx + 0xb8]
cmovb eax, ecx
cmp dword [ebx + 0xbc], ecx
cmovne eax, ecx
test esi, esi
je 0x47e833
cmp esi, 1
jne 0x47e836
mov ecx, dword [ebx + 0x7c]
mov edx, 0
sub ecx, dword [ebx + 0x80]
cmovb ecx, edx
cmp dword [ebx + 0x84], edx
cmovne ecx, edx
jmp 0x47e836
mov ecx, dword [ebx + 0x7c]
mov edx, dword [ebx + 0x88]
cmp ecx, edx
cmovb edx, ecx
mov ecx, dword [esp + 0x10]
xor esi, esi
or eax, edx
je 0x47e35c
mov eax, dword [ebx + 0xd4]
push dword [ebx + 0xd0]
call dword [eax + 0x20]
add esp, 4
test al, al
je 0x47e8f3
mov eax, 0xfffffe00
mov dword [esp + eax + 0x2a0], 0
mov dword [esp + eax + 0x2a4], str.C:Usersigame.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_src_aes.rs
add eax, 8
jne 0x47e86e
xor eax, eax
cmp dword [ebx + 0xbc], 0
mov esi, 0
jne 0x47e8c0
mov ecx, dword [ebx + 0xac]
mov edx, dword [ebx + 0xb8]
sub ecx, edx
jbe 0x47e8c0
mov esi, dword [esp + 0x34]
mov dword [esp + 0xa0], ecx
add edx, dword [esi]
xor esi, esi
inc esi
mov dword [esp + 0xa4], edx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
test ecx, ecx
je 0x47e95a
cmp ecx, 1
jne 0x47e95d
mov eax, dword [ebx + 0x7c]
mov ecx, 0
sub eax, dword [ebx + 0x80]
cmovb eax, ecx
cmp dword [ebx + 0x84], ecx
cmovne eax, ecx
jmp 0x47e95d
cmp dword [ebx + 0xbc], 0
jne 0x47e914
mov edx, dword [ebx + 0xac]
mov eax, dword [ebx + 0xb8]
sub edx, eax
jbe 0x47e914
mov ecx, dword [esp + 0x34]
add eax, dword [ecx]
jmp 0x47e91d
mov ecx, dword [esp + 0x14]
call fcn.0046846b
mov ecx, dword [ebx + 0xd4]
push edx
push eax
push dword [ebp + 8]
push dword [ebx + 0xd0]
lea eax, [esp + 0xb0]
push eax
call dword [ecx + 0x10]
add esp, 0x14
cmp byte [esp + 0xa0], 5
je 0x47eba7
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
jmp 0x47e9c2
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebx + 0x88]
cmp eax, ecx
cmovb ecx, eax
test ecx, ecx
je 0x47e988
mov ecx, dword [esp + 0x14]
call fcn.0046846b
mov dword [esp + esi*8 + 0xa0], edx
mov dword [esp + esi*8 + 0xa4], eax
xor eax, eax
inc eax
jmp 0x47e98a
xor eax, eax
mov ecx, dword [ebx + 0xd4]
add eax, esi
push eax
lea eax, [esp + 0xa4]
push eax
push dword [ebp + 8]
push dword [ebx + 0xd0]
lea eax, [esp + 0x30]
push eax
call dword [ecx + 0x1c]
add esp, 0x14
cmp byte [esp + 0x20], 5
je 0x47eba7
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
cmp al, 4
jne 0x47ebaf
mov ecx, ebx
mov eax, dword [ebx + 0xbc]
mov ebx, dword [ebx + 0xac]
mov edx, 0
mov ecx, dword [ecx + 0xb8]
mov edi, ebx
sub edi, ecx
cmovb edi, edx
test eax, eax
mov edx, esi
jne 0x47ea11
cmp ebx, ecx
mov edx, esi
jbe 0x47ea11
mov edx, esi
sub edx, edi
jbe 0x47ea20
mov ebx, dword [esp + 0x18]
add ecx, edi
adc eax, 0
mov dword [ebx + 0xb8], ecx
mov dword [ebx + 0xbc], eax
mov ecx, dword [esp + 0x14]
call fcn.00457d34
mov ebx, dword [esp + 0x18]
jmp 0x47ea35
mov ebx, dword [esp + 0x18]
add ecx, esi
adc eax, 0
mov dword [ebx + 0xb8], ecx
mov dword [ebx + 0xbc], eax
mov ecx, dword [esp + 0x10]
lea edi, [esp + 4]
jmp 0x47e35c
cmp esi, 4
je 0x47eb0c
mov ecx, dword [esp + 0x40]
cmp dword [ebx + 0x38], 3
mov eax, dword [ecx + 0x10]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, dword [esp + 0x3c]
movsd qword [esp + 0x28], xmm1
movsd xmm1, qword [ecx + 0x10]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [ecx + 0x18]
movsd xmm2, qword [ecx]
mov dword [esp + 0x30], eax
movsd qword [esp + 0xb0], xmm1
movsd xmm1, qword [ecx + 8]
movsd qword [esp + 0xb8], xmm0
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
je 0x47eab4
lea ecx, [ebx + 0x38]
call fcn.0044bae4
movsd xmm1, qword [esp + 0x28]
mov dword [ebx + 0x38], esi
movsd xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x30]
movsd xmm3, qword [esp + 0xa0]
movsd xmm2, qword [esp + 0xb0]
movsd qword [ebx + 0x44], xmm1
movsd xmm1, qword [esp + 0xa8]
movsd qword [ebx + 0x3c], xmm0
mov dword [ebx + 0x4c], eax
movsd qword [ebx + 0x50], xmm3
movsd qword [ebx + 0x60], xmm2
movsd qword [ebx + 0x58], xmm1
movsd xmm1, qword [esp + 0xb8]
movsd qword [ebx + 0x68], xmm1
mov eax, dword [ebx + 0xd4]
push dword [ebp + 8]
push dword [ebx + 0xd0]
lea ecx, [esp + 0xa8]
push ecx
call dword [eax + 0x14]
add esp, 0xc
cmp byte [esp + 0xa0], 5
jne 0x47eb3c
mov eax, dword [esp + 0xc]
mov byte [eax], 5
jmp 0x47eb60
mov eax, dword [esp + 0xa0]
cmp al, 4
jne 0x47eb50
mov eax, dword [esp + 0xc]
mov byte [eax], 4
jmp 0x47eb60
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xa4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x50]
cmp eax, 2
je 0x47eb96
test eax, eax
je 0x47eb82
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [eax + 8]
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
jmp 0x47eb8a
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x48]
push edx
push ecx
call dword [eax + 0x34]
add esp, 8
lea ecx, [esp + 0x48]
call fcn.0040bea4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x38]
mov al, 5
jmp 0x47ebb5
mov ecx, eax
shrd ecx, esi, 8
cmp al, 5
je 0x47eb33
shl ecx, 8
movzx eax, al
or eax, ecx
mov ecx, dword [esp + 0xc]
jmp 0x47ec00
mov ecx, 4
push 0x4fe044
call fcn.004e8be0
mov al, 5
jmp 0x47ebe8
mov edx, eax
mov dword [esp + 0x10], ecx
shrd edx, ecx, 8
cmp al, 5
je 0x47eb33
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
shl edx, 8
movzx eax, al
or eax, edx
mov dword [ecx + 4], esi
mov dword [ecx], eax
jmp 0x47eb60
mov ecx, 0x4fdfe4
mov edx, 0x3e
push 0x4fe024
call fcn.004e8ca0
mov ecx, 3
push 0x4fe034
call fcn.004e8c40
mov ecx, ebx
call fcn.004e89e8