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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov dword [esp + 0x30], ecx
mov ecx, dword [edx + 0x1dc]
lea edi, [edx + 0x1dc]
mov dword [esp + 0x18], edx
mov eax, edi
cmp ecx, 0x3c
jb 0x428ea2
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 4]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x7c]
test ecx, ecx
je 0x428eb0
mov dword [eax], 0
mov eax, dword [esp + 0x78]
mov ebp, edx
mov dword [esp + 0x28], edi
lea ecx, [eax + edx]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x18]
test ebp, ebp
je 0x428ef1
mov esi, ebp
dec ebp
cmp byte [eax + esi - 1], 0x2d
jne 0x428ec5
test ebp, ebp
je 0x428f05
mov eax, edx
sub eax, esi
jb 0x4296e9
mov edi, dword [esp + 0x78]
mov edx, eax
add esi, edi
mov eax, edi
mov edi, dword [esp + 0x28]
jmp 0x428ef5
xor ebp, ebp
mov esi, eax
test edx, edx
je 0x429134
add edx, esi
mov dword [esp + 4], edx
jmp 0x428f09
xor ebp, ebp
mov esi, eax
xor edi, edi
lea eax, [ecx + 4]
mov edx, 0x80
xor ecx, ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x20], eax
mov eax, 0x48
inc edi
lea ebx, [eax + 0x1a]
mov dword [esp], eax
neg eax
inc esi
mov ebp, 0x24
mov dword [esp + 0xc], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov al, byte [esi - 1]
mov ah, al
add ah, 0xd0
cmp ah, 0xa
jae 0x428f58
add al, 0xea
mov ah, al
jmp 0x428f6e
mov ah, al
add ah, 0xbf
cmp ah, 0x1a
jb 0x428f6e
add al, 0x9f
cmp al, 0x19
mov ah, al
ja 0x429119
movzx edx, ah
mov eax, edi
mov ebx, 0x1a
imul eax, edx
add ecx, eax
mov eax, dword [esp + 0x10]
cmp ebp, dword [esp + 0x14]
lea eax, [eax + ebp]
cmovae eax, ebx
cmp ebp, dword [esp]
mov ebx, 1
cmovbe eax, ebx
cmp eax, edx
ja 0x428fb4
cmp esi, dword [esp + 4]
je 0x429119
mov edx, 0x24
add ebp, 0x24
inc esi
sub edx, eax
imul edi, edx
jmp 0x428f45
mov ebp, dword [esp + 0x2c]
inc ebp
je 0x429632
mov edx, dword [esp + 0x1c]
mov eax, ecx
mov edi, 2
sub eax, edx
test edx, edx
mov edx, 0x2bc
cmove edi, edx
xor edx, edx
div edi
mov dword [esp + 0x2c], ebp
xor edx, edx
mov ebx, eax
div ebp
mov edi, eax
add edi, ebx
cmp edi, 0x1c8
jb 0x429015
xor ebx, ebx
mov ebp, edi
mov eax, edi
mov edx, 0xd41d41d5
add ebx, 0x24
mul edx
sub ebp, edx
shr ebp, 1
add ebp, edx
shr ebp, 5
cmp edi, 0x3e57
mov edi, ebp
ja 0x428ff4
jmp 0x429019
mov ebp, edi
xor ebx, ebx
lea eax, [ebp*4]
add ebp, 0x26
xor edx, edx
mov dword [esp], ebx
lea eax, [eax + eax*8]
div bp
mov edi, eax
mov eax, ecx
xor edx, edx
div dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
add ecx, eax
cmp ecx, 0x110000
je 0x429119
mov eax, ecx
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef07ff
jbe 0x429119
mov word [esp + 0x14], di
mov edi, dword [esp + 0x28]
mov ebx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0xc], ecx
mov eax, dword [edi]
cmp eax, 0x3c
mov ecx, eax
jb 0x429087
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov ebp, dword [esp + 0x38]
test ecx, ecx
je 0x4290a5
shl ecx, 3
mov eax, dword [edx]
cmp eax, ebx
jb 0x42909b
inc eax
mov dword [edx], eax
add edx, 8
add ecx, 0xfffffff8
jne 0x429092
mov eax, dword [edi]
cmp eax, 0x3c
jb 0x4290ba
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x4290c5
mov ecx, dword [esp + 0x20]
mov edx, eax
mov eax, 0x3b
cmp edx, eax
je 0x429102
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], edi
mov edi, ecx
mov ecx, ebx
mov dword [edi + edx*8], ebx
mov ebx, dword [esp]
inc ecx
mov dword [edi + edx*8 + 4], eax
mov edx, eax
movzx eax, word [esp + 0x14]
mov edi, dword [esp + 0x10]
add ebx, eax
inc dword [edi]
cmp esi, dword [esp + 4]
mov edi, 1
mov eax, ebx
jne 0x428f27
jmp 0x429128
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.004ea5ff
mov edx, dword [edi + 4]
mov ecx, dword [edi + 8]
mov edi, dword [esp + 0x20]
jmp 0x4290c9
mov eax, dword [esp + 0x30]
mov dword [eax], 0
jmp 0x42962a
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x28]
mov edi, dword [edi]
cmp edi, 0x3b
jbe 0x429143
mov edi, dword [ecx + 4]
mov edx, dword [ecx + 8]
jmp 0x429146
lea edx, [ecx + 4]
cmp edi, 0x15
mov dword [esp + 0x1c], edx
jae 0x429175
cmp edi, 1
jbe 0x4295f0
mov ecx, dword [esp + 0x1c]
mov edx, edi
push 1
call fcn.0042a3e5
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
add esp, 4
jmp 0x4295f0
mov al, byte [0x538038]
lea ecx, [edi*4]
mov edx, 4
mov esi, ebp
and ecx, 0x7ffffff8
call fcn.004018b0
test eax, eax
mov dword [esp + 4], eax
je 0x4296f5
mov al, byte [0x538038]
mov ecx, 0x80
mov edx, 4
call fcn.004018b0
test eax, eax
je 0x429709
mov ebp, eax
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x3c], 0x10
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], edi
lea ecx, [eax + 4]
lea edx, [eax - 4]
add eax, 0xfffffff8
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], edx
mov edx, edi
mov esi, eax
mov dword [esp + 8], ebp
sub edx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp], esi
cmp edx, 2
lea ecx, [eax + esi*8]
mov eax, edx
mov dword [esp + 0x14], ecx
jae 0x429210
mov ecx, edi
jmp 0x4292f5
mov edx, dword [ecx]
mov esi, dword [ecx + 8]
cmp esi, edx
jae 0x42922b
cmp eax, 2
jne 0x429240
mov esi, dword [esp]
mov eax, 2
lea ecx, [esi + 2]
jmp 0x42928c
cmp eax, 2
jne 0x42925b
mov esi, dword [esp]
mov eax, 2
lea ecx, [esi + 2]
jmp 0x4292f5
mov dword [esp + 0xc], ebx
mov edi, 2
mov ebx, esi
mov ebp, ebx
mov ebx, dword [ecx + edi*8]
cmp ebx, ebp
jae 0x429276
inc edi
cmp eax, edi
jne 0x42924b
jmp 0x429274
mov dword [esp + 0xc], ebx
mov edi, 2
mov ebx, esi
mov ebp, ebx
mov ebx, dword [ecx + edi*8]
cmp ebx, ebp
jb 0x429276
inc edi
cmp eax, edi
jne 0x429266
mov edi, eax
mov ebx, dword [esp]
cmp esi, edx
mov eax, edi
lea ecx, [edi + ebx]
mov esi, ebx
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0xc]
jae 0x4292f5
cmp esi, ecx
ja 0x4296cf
cmp ecx, edi
ja 0x4296dd
cmp eax, 2
jb 0x4292f5
mov dword [esp + 0x24], ecx
mov edi, eax
mov ecx, esi
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x44]
mov edx, eax
mov dword [esp + 0x10], edi
add edi, ecx
mov ecx, dword [esp + 0x40]
shr edx, 1
lea esi, [ebx + esi*8]
lea edi, [ecx + edi*8]
mov ebx, dword [esi - 4]
mov ebp, dword [esi]
mov eax, dword [edi - 4]
mov ecx, dword [edi]
mov dword [esi - 4], eax
mov dword [esi], ecx
mov dword [edi - 4], ebx
mov dword [edi], ebp
add esi, 8
add edi, 0xfffffff8
dec edx
jne 0x4292c5
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp]
mov eax, dword [esp + 0x10]
mov ebp, ecx
sub ebp, esi
jb 0x429697
cmp ecx, edi
ja 0x429697
jae 0x429339
cmp eax, 0xa
jae 0x429339
lea ebp, [esi + 0xa]
cmp ebp, edi
cmovae ebp, edi
mov dword [esp + 0x24], ebp
sub ebp, esi
jb 0x4296ab
mov ecx, dword [esp + 0x14]
cmp eax, 1
mov edx, ebp
adc eax, 0
push eax
call fcn.0042a3e5
add esp, 4
jmp 0x42933d
mov dword [esp + 0x24], ecx
cmp ebx, dword [esp + 0x3c]
jne 0x429391
mov al, byte [0x538038]
mov ecx, ebx
mov edx, 4
shl ecx, 4
call fcn.004018b0
test eax, eax
je 0x4296bb
mov esi, eax
lea eax, [ebx + ebx]
mov dword [esp + 0x3c], eax
lea eax, [ebx*8]
push eax
push dword [esp + 0xc]
push esi
call fcn.004e4d00
add esp, 0xc
push dword [esp + 8]
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x429395
mov esi, dword [esp + 8]
mov eax, dword [esp]
mov dword [esi + ebx*8], ebp
mov ebp, esi
mov dword [esp + 8], esi
mov dword [esi + ebx*8 + 4], eax
inc ebx
cmp ebx, 2
jb 0x4295b9
mov eax, dword [ebp + ebx*8 - 8]
mov ecx, dword [ebp + ebx*8 - 4]
add ecx, eax
cmp ecx, edi
je 0x4293fa
mov edx, dword [ebp + ebx*8 - 0x10]
cmp edx, eax
jbe 0x4293fa
cmp ebx, 2
jbe 0x4295b9
lea ecx, [ebx - 3]
lea esi, [edx + eax]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + ebx*8 - 0x18]
cmp ecx, esi
jbe 0x429408
cmp ebx, 3
jbe 0x4295b9
add edx, ecx
cmp dword [ebp + ebx*8 - 0x20], edx
mov edx, dword [esp + 0x10]
jbe 0x42940c
jmp 0x4295b9
cmp ebx, 3
jb 0x429410
mov ecx, dword [ebp + ebx*8 - 0x18]
lea edx, [ebx - 3]
jmp 0x42940c
mov edx, dword [esp + 0x10]
cmp ecx, eax
jb 0x429413
lea edx, [ebx - 2]
cmp ebx, edx
jbe 0x429646
lea eax, [edx + 1]
mov dword [esp + 0xc], ebx
cmp ebx, eax
jbe 0x429651
mov eax, dword [ebp + edx*8 + 8]
mov esi, dword [ebp + edx*8 + 0xc]
mov ecx, dword [ebp + edx*8 + 4]
add esi, eax
mov ebx, esi
sub ebx, ecx
jb 0x42967b
cmp esi, edi
mov dword [esp + 0x2c], eax
ja 0x429687
lea eax, [ebp + edx*8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], ecx
mov edx, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
lea ecx, [eax + ecx*8]
mov eax, ebx
mov dword [esp + 0x14], edx
sub eax, edx
lea edi, [ecx + edx*8]
mov dword [esp], ecx
cmp eax, edx
jae 0x4294f0
mov ebp, eax
lea eax, [eax*8]
push eax
push edi
mov ebx, dword [esp + 0xc]
push ebx
call fcn.004e4d00
add esp, 0xc
cmp dword [esp + 0x14], 0
lea eax, [ebx + ebp*8]
jle 0x4294e4
test ebp, ebp
mov ecx, ebp
jle 0x4294e4
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + esi*8]
mov edx, dword [eax - 8]
mov esi, dword [edi - 8]
mov ebx, 0
mov ebp, 0
cmp edx, esi
sbb ebx, ebx
cmp edx, esi
adc ebp, 0xffffffff
cmp edx, esi
lea edi, [edi + ebx*8]
lea eax, [eax + ebp*8]
mov edx, eax
cmovb edx, edi
cmp edi, dword [esp]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
jbe 0x4294e4
add ecx, 0xfffffff8
cmp eax, dword [esp + 4]
ja 0x4294a8
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov edx, edi
jmp 0x429564
lea eax, [edx*8]
push eax
push ecx
mov ebp, dword [esp + 0xc]
push ebp
call fcn.004e4d00
mov ecx, dword [esp + 0x20]
add esp, 0xc
test ecx, ecx
lea eax, [ebp + ecx*8]
jle 0x429559
cmp ebx, ecx
jle 0x429559
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + esi*8]
mov ecx, dword [esp + 4]
mov ebp, dword [edi]
xor edx, edx
xor ebx, ebx
cmp ebp, dword [ecx]
mov ebp, ecx
cmovb ebp, edi
setae dl
movsd xmm0, qword [ebp]
mov ebp, dword [esp]
lea ecx, [ecx + edx*8]
setb dl
movsd qword [ebp], xmm0
add ebp, 8
cmp ecx, eax
mov dword [esp], ebp
jae 0x42955d
mov bl, dl
lea edi, [edi + ebx*8]
cmp edi, esi
jb 0x429521
jmp 0x42955d
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov edx, dword [esp]
mov esi, dword [esp + 0xc]
sub eax, ecx
lea ebx, [esi - 1]
push eax
push ecx
push edx
call fcn.004e4d00
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
add eax, dword [esp + 0x14]
mov dword [ebp + ecx*8 + 8], eax
mov eax, dword [esp + 0x28]
mov dword [ebp + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, esi
shl ecx, 3
push ecx
push eax
push edx
call fcn.004e5280
add esp, 0xc
mov edi, dword [esp + 0x34]
cmp ebx, 1
ja 0x4293af
xor ebx, ebx
inc ebx
mov eax, dword [esp + 0x24]
cmp eax, edi
jb 0x4291ea
xor esi, esi
push ebp
push esi
push dword [0x537fc8]
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
call edi
push dword [esp + 4]
push esi
push dword [0x537fc8]
call edi
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x38]
mov esi, ecx
mov ecx, dword [ecx + 0x1dc]
add eax, ebp
cmp ecx, 0x3c
jb 0x429607
mov ecx, dword [esi + 4]
mov esi, dword [esi + 8]
jmp 0x42960a
add esi, 4
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x78]
add ebp, ecx
mov dword [edx], edi
mov dword [edx + 4], eax
xor eax, eax
mov dword [edx + 8], esi
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], ebp
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, str.attempt_to_divide_by_zerocalled__Result::unwrap____on_an__Err__value
mov edx, 0x19
push 0x51ee50
call fcn.004e8ca0
lea ecx, [esp + 0x4c]
mov edx, 0x52c470
jmp 0x42965a
lea ecx, [esp + 0x4c]
mov edx, 0x52c480
xor eax, eax
mov dword [ecx], str.Index_out_of_bounds
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], eax
mov dword [ecx + 8], str.C:Usersigame.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_src_aes.rs
mov dword [ecx + 0xc], eax
call fcn.004e8b50
mov edx, esi
push 0x52c490
call fcn.004e8e30
mov edx, dword [esp + 0x34]
mov ecx, esi
push 0x52c490
call fcn.004e8c40
mov ecx, str.assertion_failed:_end___start__end___len
mov edx, 0x2c
push 0x52c4fc
call fcn.004e8ca0
mov edx, dword [esp + 0x24]
mov ecx, esi
push 0x52c50c
call fcn.004e8e30
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x52c4c0
call fcn.004e8ca0
mov edx, ecx
mov ecx, esi
push 0x52c460
call fcn.004e8e30
mov edx, edi
push 0x52c460
call fcn.004e8c40
mov ecx, esi
push 0x51ee60
call fcn.004e8b80
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x52c4a0
call fcn.004e8ca0
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x52c4b0
call fcn.004e8ca0
int3