Function at 0x428d16
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 0x428d42
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 4]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x7c]
test ecx, ecx
je 0x428d50
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 0x428d91
mov esi, ebp
dec ebp
cmp byte [eax + esi - 1], 0x2d
jne 0x428d65
test ebp, ebp
je 0x428da5
mov eax, edx
sub eax, esi
jb 0x429589
mov edi, dword [esp + 0x78]
mov edx, eax
add esi, edi
mov eax, edi
mov edi, dword [esp + 0x28]
jmp 0x428d95
xor ebp, ebp
mov esi, eax
test edx, edx
je 0x428fd4
add edx, esi
mov dword [esp + 4], edx
jmp 0x428da9
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 0x428df8
add al, 0xea
mov ah, al
jmp 0x428e0e
mov ah, al
add ah, 0xbf
cmp ah, 0x1a
jb 0x428e0e
add al, 0x9f
cmp al, 0x19
mov ah, al
ja 0x428fb9
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 0x428e54
cmp esi, dword [esp + 4]
je 0x428fb9
mov edx, 0x24
add ebp, 0x24
inc esi
sub edx, eax
imul edi, edx
jmp 0x428de5
mov ebp, dword [esp + 0x2c]
inc ebp
je 0x4294d2
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 0x428eb5
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 0x428e94
jmp 0x428eb9
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 0x428fb9
mov eax, ecx
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef07ff
jbe 0x428fb9
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 0x428f27
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov ebp, dword [esp + 0x38]
test ecx, ecx
je 0x428f45
shl ecx, 3
mov eax, dword [edx]
cmp eax, ebx
jb 0x428f3b
inc eax
mov dword [edx], eax
add edx, 8
add ecx, 0xfffffff8
jne 0x428f32
mov eax, dword [edi]
cmp eax, 0x3c
jb 0x428f5a
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x428f65
mov ecx, dword [esp + 0x20]
mov edx, eax
mov eax, 0x3b
cmp edx, eax
je 0x428fa2
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 0x428dc7
jmp 0x428fc8
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.004ea36b
mov edx, dword [edi + 4]
mov ecx, dword [edi + 8]
mov edi, dword [esp + 0x20]
jmp 0x428f69
mov eax, dword [esp + 0x30]
mov dword [eax], 0
jmp 0x4294ca
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x28]
mov edi, dword [edi]
cmp edi, 0x3b
jbe 0x428fe3
mov edi, dword [ecx + 4]
mov edx, dword [ecx + 8]
jmp 0x428fe6
lea edx, [ecx + 4]
cmp edi, 0x15
mov dword [esp + 0x1c], edx
jae 0x429015
cmp edi, 1
jbe 0x429490
mov ecx, dword [esp + 0x1c]
mov edx, edi
push 1
call fcn.0042a285
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
add esp, 4
jmp 0x429490
mov al, byte [0x538038]
lea ecx, [edi*4]
mov edx, 4
mov esi, ebp
and ecx, 0x7ffffff8
call fcn.00439850
test eax, eax
mov dword [esp + 4], eax
je 0x429595
mov al, byte [0x538038]
mov ecx, 0x80
mov edx, 4
call fcn.00439850
test eax, eax
je 0x4295a9
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 0x4290b0
mov ecx, edi
jmp 0x429195
mov edx, dword [ecx]
mov esi, dword [ecx + 8]
cmp esi, edx
jae 0x4290cb
cmp eax, 2
jne 0x4290e0
mov esi, dword [esp]
mov eax, 2
lea ecx, [esi + 2]
jmp 0x42912c
cmp eax, 2
jne 0x4290fb
mov esi, dword [esp]
mov eax, 2
lea ecx, [esi + 2]
jmp 0x429195
mov dword [esp + 0xc], ebx
mov edi, 2
mov ebx, esi
mov ebp, ebx
mov ebx, dword [ecx + edi*8]
cmp ebx, ebp
jae 0x429116
inc edi
cmp eax, edi
jne 0x4290eb
jmp 0x429114
mov dword [esp + 0xc], ebx
mov edi, 2
mov ebx, esi
mov ebp, ebx
mov ebx, dword [ecx + edi*8]
cmp ebx, ebp
jb 0x429116
inc edi
cmp eax, edi
jne 0x429106
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 0x429195
cmp esi, ecx
ja 0x42956f
cmp ecx, edi
ja 0x42957d
cmp eax, 2
jb 0x429195
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 0x429165
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 0x429537
cmp ecx, edi
ja 0x429537
jae 0x4291d9
cmp eax, 0xa
jae 0x4291d9
lea ebp, [esi + 0xa]
cmp ebp, edi
cmovae ebp, edi
mov dword [esp + 0x24], ebp
sub ebp, esi
jb 0x42954b
mov ecx, dword [esp + 0x14]
cmp eax, 1
mov edx, ebp
adc eax, 0
push eax
call fcn.0042a285
add esp, 4
jmp 0x4291dd
mov dword [esp + 0x24], ecx
cmp ebx, dword [esp + 0x3c]
jne 0x429231
mov al, byte [0x538038]
mov ecx, ebx
mov edx, 4
shl ecx, 4
call fcn.00439850
test eax, eax
je 0x42955b
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.004e4a90
add esp, 0xc
push dword [esp + 8]
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x429235
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 0x429459
mov eax, dword [ebp + ebx*8 - 8]
mov ecx, dword [ebp + ebx*8 - 4]
add ecx, eax
cmp ecx, edi
je 0x42929a
mov edx, dword [ebp + ebx*8 - 0x10]
cmp edx, eax
jbe 0x42929a
cmp ebx, 2
jbe 0x429459
lea ecx, [ebx - 3]
lea esi, [edx + eax]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + ebx*8 - 0x18]
cmp ecx, esi
jbe 0x4292a8
cmp ebx, 3
jbe 0x429459
add edx, ecx
cmp dword [ebp + ebx*8 - 0x20], edx
mov edx, dword [esp + 0x10]
jbe 0x4292ac
jmp 0x429459
cmp ebx, 3
jb 0x4292b0
mov ecx, dword [ebp + ebx*8 - 0x18]
lea edx, [ebx - 3]
jmp 0x4292ac
mov edx, dword [esp + 0x10]
cmp ecx, eax
jb 0x4292b3
lea edx, [ebx - 2]
cmp ebx, edx
jbe 0x4294e6
lea eax, [edx + 1]
mov dword [esp + 0xc], ebx
cmp ebx, eax
jbe 0x4294f1
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 0x42951b
cmp esi, edi
mov dword [esp + 0x2c], eax
ja 0x429527
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 0x429390
mov ebp, eax
lea eax, [eax*8]
push eax
push edi
mov ebx, dword [esp + 0xc]
push ebx
call fcn.004e4a90
add esp, 0xc
cmp dword [esp + 0x14], 0
lea eax, [ebx + ebp*8]
jle 0x429384
test ebp, ebp
mov ecx, ebp
jle 0x429384
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 0x429384
add ecx, 0xfffffff8
cmp eax, dword [esp + 4]
ja 0x429348
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov edx, edi
jmp 0x429404
lea eax, [edx*8]
push eax
push ecx
mov ebp, dword [esp + 0xc]
push ebp
call fcn.004e4a90
mov ecx, dword [esp + 0x20]
add esp, 0xc
test ecx, ecx
lea eax, [ebp + ecx*8]
jle 0x4293f9
cmp ebx, ecx
jle 0x4293f9
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 0x4293fd
mov bl, dl
lea edi, [edi + ebx*8]
cmp edi, esi
jb 0x4293c1
jmp 0x4293fd
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.004e4a90
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.004e5010
add esp, 0xc
mov edi, dword [esp + 0x34]
cmp ebx, 1
ja 0x42924f
xor ebx, ebx
inc ebx
mov eax, dword [esp + 0x24]
cmp eax, edi
jb 0x42908a
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 0x4294a7
mov ecx, dword [esi + 4]
mov esi, dword [esi + 8]
jmp 0x4294aa
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 0x51ee48
call fcn.004e8a30
lea ecx, [esp + 0x4c]
mov edx, 0x52c3e0
jmp 0x4294fa
lea ecx, [esp + 0x4c]
mov edx, 0x52c3f0
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.rs0
mov dword [ecx + 0xc], eax
call fcn.004e88e0
mov edx, esi
push 0x52c400
call fcn.004e8bc0
mov edx, dword [esp + 0x34]
mov ecx, esi
push 0x52c400
call fcn.004e89d0
mov ecx, str.assertion_failed:_end___start__end___len
mov edx, 0x2c
push 0x52c46c
call fcn.004e8a30
mov edx, dword [esp + 0x24]
mov ecx, esi
push 0x52c47c
call fcn.004e8bc0
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x52c430
call fcn.004e8a30
mov edx, ecx
mov ecx, esi
push 0x52c3d0
call fcn.004e8bc0
mov edx, edi
push 0x52c3d0
call fcn.004e89d0
mov ecx, esi
push 0x51ee58
call fcn.004e8910
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x52c410
call fcn.004e8a30
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x52c420
call fcn.004e8a30
int3