Function at 0x53e850
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x820
mov dword [esp + 0xcc], ecx
mov edi, edx
movzx eax, byte [0x5da16c]
mov eax, dword [0x5da100]
test eax, eax
jne 0x53e88a
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x540aab
mov dword [0x5da100], eax
push 0x1f
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
je 0x540aab
mov dword [eax + 0x1b], 0x3a6d6574
mov ebx, eax
mov dword [eax + 0x18], 0x74737973
mov dword [eax + 0x14], 0x20656874
mov dword [eax + 0x10], 0x206e6920
mov dword [eax + 0xc], 0x79617772
mov dword [eax + 8], 0x65646e75
mov dword [eax + 4], 0x20736920
mov dword [eax], 0x6b726f57
call dbg.now
pxor xmm0, xmm0
mov dword [esp + 0x330], ebx
mov dword [esp + 0x334], 0x1f
mov dword [esp + 0x338], 0x1f
mov dword [esp + 0x320], eax
lea eax, [esp + 0x220]
mov dword [esp + 0x324], edx
mov dword [esp + 0x328], ecx
mov byte [esp + 0x310], 0
mov ecx, edi
mov edx, 0x20
movdqa xmmword [esp + 0x300], xmm0
movdqa xmmword [esp + 0x2f0], xmm0
movdqa xmmword [esp + 0x2e0], xmm0
movdqa xmmword [esp + 0x2d0], xmm0
movdqa xmmword [esp + 0x2c0], xmm0
movdqa xmmword [esp + 0x2b0], xmm0
movdqa xmmword [esp + 0x2a0], xmm0
movdqa xmmword [esp + 0x290], xmm0
movdqa xmmword [esp + 0x280], xmm0
movdqa xmmword [esp + 0x270], xmm0
movdqa xmmword [esp + 0x260], xmm0
movdqa xmmword [esp + 0x250], xmm0
movdqa xmmword [esp + 0x240], xmm0
movdqa xmmword [esp + 0x230], xmm0
movdqa xmmword [esp + 0x220], xmm0
push eax
mov ebx, eax
push 0x100
call sym.libaes::aes_set_encrypt_key::hd11e38ad0c1094d1
add esp, 8
pxor xmm0, xmm0
lea esi, [esp + 0x440]
mov byte [esp + 0x530], 0
mov ecx, edi
mov edx, 0x20
movdqa xmmword [esp + 0x520], xmm0
movdqa xmmword [esp + 0x510], xmm0
movdqa xmmword [esp + 0x500], xmm0
movdqa xmmword [esp + 0x4f0], xmm0
movdqa xmmword [esp + 0x4e0], xmm0
movdqa xmmword [esp + 0x4d0], xmm0
movdqa xmmword [esp + 0x4c0], xmm0
movdqa xmmword [esp + 0x4b0], xmm0
movdqa xmmword [esp + 0x4a0], xmm0
movdqa xmmword [esp + 0x490], xmm0
movdqa xmmword [esp + 0x480], xmm0
movdqa xmmword [esp + 0x470], xmm0
movdqa xmmword [esp + 0x460], xmm0
movdqa xmmword [esp + 0x450], xmm0
movdqa xmmword [esp + 0x440], xmm0
push esi
push 0x100
call sym.libaes::aes_set_decrypt_key::h4facf48503c41031
add esp, 8
lea eax, [esp + 0x634]
push 0xf4
push ebx
push eax
call sym._memcpy
add esp, 0xc
lea eax, [esp + 0x728]
push 0xf4
push esi
push eax
call sym._memcpy
add esp, 0xc
mov ebx, dword [ebp + 8]
pxor xmm0, xmm0
lea edi, [esp + 0x340]
mov byte [esp + 0x430], 0
mov edx, 0x10
movdqa xmmword [esp + 0x420], xmm0
movdqa xmmword [esp + 0x410], xmm0
movdqa xmmword [esp + 0x400], xmm0
movdqa xmmword [esp + 0x3f0], xmm0
movdqa xmmword [esp + 0x3e0], xmm0
movdqa xmmword [esp + 0x3d0], xmm0
movdqa xmmword [esp + 0x3c0], xmm0
movdqa xmmword [esp + 0x3b0], xmm0
movdqa xmmword [esp + 0x3a0], xmm0
movdqa xmmword [esp + 0x390], xmm0
movdqa xmmword [esp + 0x380], xmm0
movdqa xmmword [esp + 0x370], xmm0
movdqa xmmword [esp + 0x360], xmm0
movdqa xmmword [esp + 0x350], xmm0
movdqa xmmword [esp + 0x340], xmm0
mov ecx, ebx
push edi
push pe_nt_image_headers32
call sym.libaes::aes_set_encrypt_key::hd11e38ad0c1094d1
add esp, 8
pxor xmm0, xmm0
mov ecx, ebx
lea ebx, [esp + 0x220]
mov byte [esp + 0x310], 0
mov edx, 0x10
movdqa xmmword [esp + 0x300], xmm0
movdqa xmmword [esp + 0x2f0], xmm0
movdqa xmmword [esp + 0x2e0], xmm0
movdqa xmmword [esp + 0x2d0], xmm0
movdqa xmmword [esp + 0x2c0], xmm0
movdqa xmmword [esp + 0x2b0], xmm0
movdqa xmmword [esp + 0x2a0], xmm0
movdqa xmmword [esp + 0x290], xmm0
movdqa xmmword [esp + 0x280], xmm0
movdqa xmmword [esp + 0x270], xmm0
movdqa xmmword [esp + 0x260], xmm0
movdqa xmmword [esp + 0x250], xmm0
movdqa xmmword [esp + 0x240], xmm0
movdqa xmmword [esp + 0x230], xmm0
movdqa xmmword [esp + 0x220], xmm0
push ebx
push pe_nt_image_headers32
call sym.libaes::aes_set_decrypt_key::h4facf48503c41031
add esp, 8
push 0xf4
push edi
push esi
call sym._memcpy
add esp, 0xc
lea eax, [esp + 0x534]
push 0xf4
push ebx
push eax
call sym._memcpy
add esp, 0xc
call sym.rand::rngs::thread::thread_rng::hb92ce65f606249f1
lea ecx, [esp + 0x340]
mov esi, eax
mov dword [esp + 0x138], eax
call sym.spki::traits::DecodePublicKey::from_public_key_pem::hfa144faf3178cad6
cmp dword [esp + 0x340], 2
jne 0x53ec54
mov bl, 1
mov edi, dword [ebp + 0x14]
dec dword [esi]
jne 0x53f101
jmp 0x53f0ee
lea edi, [esp + 0x220]
lea esi, [esp + 0x340]
mov ecx, 0x18
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x248]
cmp ecx, 5
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], edx
mov dword [esp], ecx
jb 0x53ec9c
mov eax, dword [esp + 0x224]
test eax, eax
je 0x53ecde
mov ecx, dword [esp + 0x228]
jmp 0x53ecac
cmp dword [esp], 0
je 0x53ecde
mov eax, dword [esp]
lea ecx, [esp + 0x228]
mov edx, dword [ecx + eax*8 - 4]
bsr ecx, dword [ecx + eax*8 - 8]
mov esi, 0x3f
cmovne esi, ecx
bsr ecx, edx
xor esi, 0x1f
xor ecx, 0x1f
add esi, 0x20
test edx, edx
cmove ecx, esi
shl eax, 6
sub eax, ecx
cmp eax, 0x1000
ja 0x53f0a2
mov edx, dword [esp + 0x278]
cmp edx, 5
jb 0x53ed42
mov eax, dword [esp + 0x254]
mov ecx, dword [esp + 0x258]
test eax, eax
je 0x53ed4f
cmp eax, 1
jne 0x53f0a2
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 4], ecx
cmp edx, 5
jae 0x53ed64
lea eax, [esp + 0x258]
mov ecx, edx
mov dword [esp + 0x30], eax
cmp dword [esp], 4
mov dword [esp + 0x28], edx
ja 0x53ed80
mov edi, dword [esp]
lea eax, [esp + 0x228]
mov dword [esp + 0x10], eax
cmp ecx, edi
jb 0x53ed96
jmp 0x53edb3
lea ecx, [esp + 0x258]
mov eax, edx
test eax, eax
jne 0x53ecfc
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0
cmp edx, 5
jb 0x53ed17
mov ecx, dword [esp + 0x254]
mov eax, dword [esp + 0x258]
mov dword [esp + 0x30], eax
cmp dword [esp], 4
mov dword [esp + 0x28], edx
jbe 0x53ed2e
mov edi, dword [esp + 0x224]
mov eax, dword [esp + 0x228]
mov dword [esp + 0x10], eax
cmp ecx, edi
jae 0x53edb3
cmp dword [esp], 4
jbe 0x53ee19
mov ecx, dword [esp + 0x224]
mov eax, dword [esp + 0x228]
test ecx, ecx
jne 0x53ee2b
jmp 0x53f0a2
ja 0x53f0a2
mov edx, ecx
shl edi, 3
shl edx, 3
nop word cs:[eax + eax]
nop dword [eax + eax]
test edx, edx
je 0x53f0a2
test edi, edi
je 0x53f0a2
mov ecx, dword [esp + 0x30]
mov ebx, dword [ecx + edx - 4]
mov eax, dword [ecx + edx - 8]
mov ecx, edx
mov edx, dword [esp + 0x10]
mov esi, dword [edx + edi - 8]
mov edx, dword [edx + edi - 4]
mov dword [esp + 8], ebx
cmp eax, esi
sbb ebx, edx
jb 0x53ed96
add ecx, 0xfffffff8
add edi, 0xfffffff8
cmp esi, eax
sbb edx, dword [esp + 8]
mov edx, ecx
jae 0x53edd0
jmp 0x53f0a2
mov ecx, dword [esp]
lea eax, [esp + 0x228]
test ecx, ecx
je 0x53f0a2
test byte [eax], 1
je 0x53f0a2
mov ecx, dword [esp + 0x28]
cmp ecx, 5
jb 0x53ee4d
mov ecx, dword [esp + 0x254]
mov eax, dword [esp + 0x258]
jmp 0x53ee54
lea eax, [esp + 0x258]
test ecx, ecx
je 0x53f0a2
test byte [eax], 1
je 0x53f0a2
mov edx, dword [esp + 4]
mov ecx, 2
mov eax, 0xfffffffe
add edx, 0xfffffffe
cmp dword [esp + 0x20], ecx
sbb edx, eax
jb 0x53f0a2
cmp dword [esp], 5
jb 0x53ee9f
mov eax, dword [esp + 0x224]
test eax, eax
mov dword [esp], eax
je 0x53eede
mov eax, dword [esp + 0x228]
jmp 0x53eeac
cmp dword [esp], 0
je 0x53eede
lea eax, [esp + 0x228]
mov esi, dword [esp]
mov edx, 0x3f
mov ecx, dword [eax + esi*8 - 4]
bsr eax, dword [eax + esi*8 - 8]
cmovne edx, eax
bsr eax, ecx
xor edx, 0x1f
xor eax, 0x1f
add edx, 0x20
test ecx, ecx
cmove eax, edx
shl esi, 6
or esi, 7
sub esi, eax
shr esi, 3
jmp 0x53eee0
xor esi, esi
lea ecx, [esp + 0x40]
lea edx, [esp + 0x138]
push esi
push dword [esp + 0x28]
push dword [esp + 0x14]
call sym.rsa::algorithms::pkcs1v15::pkcs1v15_encrypt_pad::h07c93133c701dae3
add esp, 0xc
cmp dword [esp + 0x40], 0x13
jne 0x53f0a2
mov ecx, dword [esp + 0x4c]
movsd xmm0, qword [esp + 0x44]
lea ebx, [esp + 0x250]
test ecx, ecx
movsd qword [esp + 0xb0], xmm0
mov dword [esp + 0xb8], ecx
je 0x53f17b
xor edx, edx
xor edi, edi
mov dword [esp], ecx
movaps xmmword [esp + 0x30], xmm0
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::allocate_in::hc34d6410cf404631
mov esi, eax
mov dword [esp + 8], edx
sub esp, 0xc
mov eax, dword [esp + 0xc]
movdqa xmm0, xmmword [esp + 0x3c]
mov dword [esp], esi
mov dword [esp + 8], eax
movd dword [esp + 4], xmm0
call sym._memcpy
mov edx, dword [esp + 0xc]
add esp, 0xc
mov eax, 1
cmp edx, 1
je 0x53f2f4
mov eax, edx
shr eax, 1
cmp edx, 0x10
jb 0x53f2d1
xor edi, edi
cmp edx, 0x20
jb 0x53f02f
mov edi, eax
lea ecx, [edx + esi - 0x10]
pxor xmm0, xmm0
mov edx, esi
and edi, 0xfffffff0
mov ebx, edi
movdqu xmm2, xmmword [ecx]
movdqu xmm1, xmmword [edx]
movdqa xmm3, xmm2
punpckhbw xmm2, xmm0
punpcklbw xmm3, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm3, xmm3, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [edx], xmm2
movdqa xmm2, xmm1
punpckhbw xmm1, xmm0
add edx, 0x10
punpcklbw xmm2, xmm0
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm2, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [ecx], xmm1
add ecx, 0xfffffff0
add ebx, 0xfffffff0
jne 0x53efa4
cmp eax, edi
je 0x53f2ea
mov edx, dword [esp]
test dl, 0x10
je 0x53f2d1
mov ebx, edx
lea ecx, [esi + edi]
mov edx, edi
pxor xmm0, xmm0
sub ebx, edi
mov edi, eax
and edi, 0xfffffff8
lea ebx, [ebx + esi - 8]
sub edx, edi
movq xmm1, qword [ecx]
movq xmm2, qword [ebx]
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm2, xmm2
packuswb xmm1, xmm1
movq qword [ecx], xmm2
movq qword [ebx], xmm1
add ecx, 8
add ebx, 0xfffffff8
add edx, 8
jne 0x53f047
mov edx, dword [esp]
cmp eax, edi
jne 0x53f2d1
mov eax, edx
jmp 0x53f2ed
mov bl, 1
cmp dword [esp + 0x248], 5
jb 0x53f0c2
push dword [esp + 0x228]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x278], 5
jb 0x53f0e0
push dword [esp + 0x258]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov esi, dword [esp + 0x138]
mov edi, dword [ebp + 0x14]
dec dword [esi]
jne 0x53f101
dec dword [esi + 4]
jne 0x53f101
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x334], 0
je 0x53f11f
push dword [esp + 0x330]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp + 0x18]
cmp dword [eax + 4], 0
je 0x53f137
push dword [eax]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [edi + 4], 0
je 0x53f14c
push dword [edi]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
test bl, bl
je 0x53f173
mov eax, dword [esp + 0xcc]
cmp dword [eax + 4], 0
je 0x53f173
mov eax, dword [esp + 0xcc]
push dword [eax]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x40]
lea edx, [esp + 0x168]
mov dword [esp + 0x168], 4
mov dword [esp + 0x16c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x170], 2
mov dword [esp + 0x40], 0
call sym.__ZN133__LT_smallvec..SmallVec_LT_A_GT__u20_as_u20_core..iter..traits..collect..Extend_LT__LT_A_u20_as_u20_smallvec..Array_GT_
movsd xmm1, qword [esp + 0x60]
movsd xmm2, qword [esp + 0x58]
movsd xmm0, qword [esp + 0x68]
lea ecx, [esp + 0xd8]
movsd qword [esp + 0xf0], xmm1
movsd xmm1, qword [esp + 0x50]
movsd qword [esp + 0xe8], xmm2
movsd xmm2, qword [esp + 0x40]
movsd qword [esp + 0xf8], xmm0
movsd qword [esp + 0xe0], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0xd0], xmm2
movsd qword [esp + 0xd8], xmm1
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0xf8]
mov ebx, ecx
cmp esi, 5
mov edi, esi
jb 0x53f23d
mov edi, dword [esp + 0xd4]
mov ebx, edx
test edi, edi
je 0x53f26e
mov eax, dword [ebx + edi*8 - 8]
or eax, dword [ebx + edi*8 - 4]
jne 0x53f26e
cmp esi, 5
lea edi, [esp + 0xf8]
jb 0x53f265
mov esi, dword [esp + 0xd4]
lea edi, [esp + 0xd4]
test esi, esi
je 0x53f224
dec esi
mov dword [edi], esi
jmp 0x53f224
movsd xmm1, qword [esp + 0xf0]
movsd xmm2, qword [esp + 0xe8]
movq xmm0, qword [esp + 0xf8]
lea ebx, [esp + 0x250]
movsd qword [esp + 0x60], xmm1
movsd xmm1, qword [esp + 0xe0]
movsd qword [esp + 0x58], xmm2
movq xmm2, qword [esp + 0xd0]
movq qword [esp + 0x68], xmm0
movsd qword [esp + 0x50], xmm1
movq xmm1, qword [esp + 0xd8]
movq qword [esp + 0x40], xmm2
movq qword [esp + 0x48], xmm1
jmp 0x53f318
sub edx, edi
sub eax, edi
lea ecx, [esi + edi]
lea edx, [edx + esi - 1]
movzx ebx, byte [ecx]
mov bh, byte [edx]
mov byte [ecx], bh
mov byte [edx], bl
inc ecx
dec edx
dec eax
jne 0x53f2dc
mov eax, dword [esp]
lea ebx, [esp + 0x250]
lea ecx, [esp + 0x40]
mov edx, esi
push eax
call sym.num_bigint_dig::biguint::from_bitwise_digits_le::he4e9f7d113f2c8e8
add esp, 4
cmp dword [esp + 8], 0
je 0x53f318
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
movsd xmm1, qword [esp + 0x60]
movsd xmm2, qword [esp + 0x58]
movsd xmm0, qword [esp + 0x68]
lea eax, [esp + 0x220]
lea ecx, [esp + 0xd0]
lea edx, [esp + 0x168]
movsd qword [esp + 0x188], xmm1
movsd xmm1, qword [esp + 0x50]
movsd qword [esp + 0x180], xmm2
movsd xmm2, qword [esp + 0x40]
movsd qword [esp + 0x190], xmm0
movsd qword [esp + 0x178], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0x168], xmm2
movsd qword [esp + 0x170], xmm1
push eax
push ebx
call sym.num_bigint_dig::biguint::BigUint::modpow::hd9371c9bc635e601
add esp, 8
mov ebx, dword [esp + 0x248]
movq xmm0, qword [esp + 0xf8]
movq xmm1, qword [esp + 0xf0]
movq xmm2, qword [esp + 0xd0]
movq xmm3, qword [esp + 0xd8]
movsd xmm4, qword [esp + 0xe8]
movsd xmm5, qword [esp + 0xe0]
cmp ebx, 5
movq qword [esp + 0x6c], xmm0
movq qword [esp + 0x64], xmm1
movq qword [esp + 0x44], xmm2
movq qword [esp + 0xd4], xmm2
movq qword [esp + 0xdc], xmm3
movsd qword [esp + 0xe4], xmm5
movsd qword [esp + 0xec], xmm4
movq qword [esp + 0xf4], xmm1
movq qword [esp + 0xfc], xmm0
movq qword [esp + 0x1e0], xmm0
movq qword [esp + 0x1d8], xmm1
movsd qword [esp + 0x1d0], xmm4
movsd qword [esp + 0x1c8], xmm5
movq qword [esp + 0x1c0], xmm3
movq qword [esp + 0x1b8], xmm2
jb 0x53f465
mov ebx, dword [esp + 0x224]
test ebx, ebx
je 0x53f49f
mov eax, dword [esp + 0x228]
jmp 0x53f470
test ebx, ebx
je 0x53f49f
lea eax, [esp + 0x228]
mov ecx, dword [eax + ebx*8 - 4]
bsr eax, dword [eax + ebx*8 - 8]
mov edx, 0x3f
cmovne edx, eax
bsr eax, ecx
xor edx, 0x1f
xor eax, 0x1f
add edx, 0x20
test ecx, ecx
cmove eax, edx
shl ebx, 6
or ebx, 7
sub ebx, eax
shr ebx, 3
jmp 0x53f4a1
xor ebx, ebx
mov eax, dword [esp + 0x1e0]
cmp eax, 5
jb 0x53f4b4
mov eax, dword [esp + 0x1bc]
test eax, eax
mov dword [esp + 0x28], ebx
je 0x53f61e
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1b8]
call sym.num_bigint_dig::biguint::to_bitwise_digits_le::h06ddaf2d3ae222c1
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x40]
cmp edx, 2
jb 0x53f652
mov eax, edx
xor ecx, ecx
mov dword [esp], edx
shr eax, 1
cmp edx, 0x10
jb 0x53f5fb
xor ecx, ecx
cmp edx, 0x20
jb 0x53f596
mov ecx, eax
add edx, 0xfffffff0
xor edi, edi
pxor xmm0, xmm0
and ecx, 0xfffffff0
movdqu xmm2, xmmword [esi + edx]
movdqu xmm1, xmmword [esi + edi]
movdqa xmm3, xmm2
punpckhbw xmm2, xmm0
punpcklbw xmm3, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm3, xmm3, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esi + edi], xmm2
movdqa xmm2, xmm1
punpckhbw xmm1, xmm0
add edi, 0x10
punpcklbw xmm2, xmm0
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm2, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [esi + edx], xmm1
add edx, 0xfffffff0
cmp ecx, edi
jne 0x53f50c
cmp eax, ecx
je 0x53f619
mov edx, dword [esp]
test dl, 0x10
je 0x53f5fb
mov edi, edx
mov edx, ecx
mov ecx, eax
pxor xmm0, xmm0
sub edi, edx
and ecx, 0xfffffff8
add edi, 0xfffffff8
movq xmm2, qword [esi + edi]
movq xmm1, qword [esi + edx]
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm2, xmm2
packuswb xmm1, xmm1
movq qword [esi + edx], xmm2
add edx, 8
movq qword [esi + edi], xmm1
add edi, 0xfffffff8
cmp ecx, edx
jne 0x53f5a8
mov edx, dword [esp]
cmp eax, ecx
je 0x53f652
mov edi, edx
mov edx, ecx
not edx
add edx, edi
mov bh, byte [esi + edx]
mov bl, byte [esi + ecx]
mov byte [esi + ecx], bh
inc ecx
mov byte [esi + edx], bl
dec edx
cmp eax, ecx
jne 0x53f603
mov ebx, dword [esp + 0x28]
mov edx, dword [esp]
jmp 0x53f652
movzx eax, byte [0x5da16c]
mov ecx, 1
mov edx, 1
call sym.___rust_alloc
test eax, eax
je 0x540ad5
mov byte [eax], 0
mov dword [esp + 0x40], eax
mov esi, eax
mov dword [esp + 0x44], 1
mov edx, 1
mov edi, dword [esp + 0x44]
mov ecx, ebx
sub ebx, edx
mov dword [esp], edx
jae 0x53f661
jmp 0x53f690
mov dword [esp + 8], edi
mov edi, edx
mov edx, 1
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::allocate_in::hc34d6410cf404631
mov dword [esp + 0x1a0], edx
mov dword [esp + 0xc8], eax
add ebx, eax
push edi
mov edi, dword [esp + 0xc]
push esi
push ebx
call sym._memcpy
add esp, 0xc
test edi, edi
je 0x53f6a2
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea ecx, [esp + 0x1b8]
call sym.__LT_smallvec..SmallVec_LT_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h9f4c4aafb78d7227
lea esi, [esp + 0x168]
mov ecx, esi
call sym.__LT_zeroize..Zeroizing_LT_Z_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h590f5dfa8687e311
mov ecx, esi
call sym.__LT_smallvec..SmallVec_LT_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h9f4c4aafb78d7227
lea ecx, [esp + 0xb0]
call sym.__LT_zeroize..Zeroizing_LT_Z_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::hc124272e18c43176
cmp dword [esp + 0xb4], 0
mov esi, dword [esp + 0x28]
je 0x53f6f1
push dword [esp + 0xb0]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp esi, dword [esp]
mov bl, 1
jb 0x53f0a4
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], 0x5bd7d0
mov dword [esp + 0x44], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], str.Lazy_instance_has_previously_been_poisoned
mov dword [esp + 0x4c], 0
call dbg._print
lea esi, [esp + 0x40]
mov ecx, esi
call sym.__LT_rust_search..builder..SearchBuilder_u20_as_u20_core..default..Default_GT_::default::hbb7eb1945b92a6cd
mov ecx, dword [esp + 0xcc]
lea edi, [esp + 0xd0]
mov edx, esi
mov eax, dword [ecx + 8]
movq xmm0, qword [ecx]
mov ecx, edi
mov dword [esp + 0x1c0], eax
lea eax, [esp + 0x1b8]
movq qword [esp + 0x1b8], xmm0
push eax
call sym.rust_search::builder::SearchBuilder::location::ha0efad0b343fb5bf
add esp, 4
lea esi, [esp + 0x40]
mov edx, edi
mov ecx, esi
push sym.core::ops::function::FnOnce::call_once::hb3c6f68e82a8e330
call sym.__LT_rust_search..builder..SearchBuilder_u20_as_u20_rust_search..filter..FilterExt_GT_::custom_filter::h202b801d602d2a8e
add esp, 4
lea edi, [esp + 0xd0]
mov edx, esi
mov ecx, edi
push sym.core::ops::function::FnOnce::call_once::h7439d9be1c86ac8a
call sym.__LT_rust_search..builder..SearchBuilder_u20_as_u20_rust_search..filter..FilterExt_GT_::custom_filter::h202b801d602d2a8e
add esp, 4
mov ecx, edi
call sym.rust_search::builder::SearchBuilder::build::he17fc52fdcb95add
mov esi, edx
lea ecx, [esp + 0x204]
mov edx, eax
push esi
call sym.__ZN98__LT_alloc..vec..Vec_LT_T_GT__u20_as_u20_alloc..vec..spec_from_iter..SpecFromIter_LT_T_C_I_GT__GT_9from_iter17h3090ab726
add esp, 4
cmp dword [esp + 0xe4], 0
je 0x53f7d7
push dword [esp + 0xe0]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov esi, dword [esp + 0xfc]
test esi, esi
je 0x53f808
mov edx, dword [esp + 0x104]
mov ecx, esi
call sym.__LT_alloc..vec..Vec_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h6fa69bac7b831ed4
cmp dword [esp + 0x100], 0
je 0x53f808
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x108]
test eax, eax
je 0x53f82b
cmp dword [esp + 0x10c], 0
je 0x53f82b
push eax
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x114]
test eax, eax
je 0x53f84e
cmp dword [esp + 0x118], 0
je 0x53f84e
push eax
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0xf4], 0
je 0x53f86c
push dword [esp + 0xf0]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea edi, [esp + 0x40]
mov dword [esp + 0x40], 0x5bd7ec
mov dword [esp + 0x44], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], str.Lazy_instance_has_previously_been_poisoned
mov dword [esp + 0x4c], 0
mov ecx, edi
call dbg._print
mov esi, dword [esp + 0x20c]
mov ebx, dword [esp + 0x204]
mov edx, dword [esp + 0x208]
lea eax, [esi + esi*2]
test esi, esi
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edx
mov dword [esp + 0x154], ebx
lea eax, [ebx + eax*4]
mov dword [esp + 0x158], eax
je 0x540a7a
mov ecx, edi
jmp 0x53f8fa
mov eax, dword [esp + 0x158]
lea ecx, [esp + 0x40]
cmp eax, dword [esp + 0x154]
je 0x540a7a
lea edx, [eax - 0xc]
mov dword [esp + 0x158], edx
mov edx, dword [eax - 0xc]
test edx, edx
je 0x540a7a
mov edi, dword [eax - 8]
mov eax, dword [eax - 4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], eax
push eax
call dbg.stat
add esp, 4
mov eax, dword [esp + 0x40]
xor eax, 2
or eax, dword [esp + 0x44]
jne 0x53f981
cmp byte [esp + 0x48], 3
jne 0x5407fa
mov esi, dword [esp + 0x4c]
mov edi, dword [esi]
mov ebx, dword [esi + 4]
push edi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x53f96e
cmp dword [ebx + 8], 9
jb 0x53f960
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
jmp 0x5407fa
mov edx, dword [esp + 0x80]
test edx, 0x400
sete al
test dword [esp + 0x84], 0x20000000
sete cl
test dl, 0x10
jne 0x5407fa
or al, cl
je 0x5407fa
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
xor edx, edx
xor ebx, ebx
add ecx, eax
mov dword [esp + 8], ecx
xor ecx, ecx
test dx, dx
jne 0x53f9eb
jmp 0x53f9f2
mov esi, ebx
xor ebx, ebx
test dx, dx
movzx ecx, cl
mov edx, 1
setne bl
cmove ecx, edx
mov edx, edi
add esi, ebx
mov ebx, esi
test dx, dx
je 0x53f9f2
xor edi, edi
jmp 0x53fa83
cmp eax, dword [esp + 8]
je 0x53fb1a
mov dword [esp], ebx
movzx ebx, byte [eax]
test bl, bl
js 0x53fa10
mov edx, ebx
mov ebx, dword [esp]
inc eax
xor edi, edi
jmp 0x53fa83
movzx esi, byte [eax + 1]
mov edx, ebx
and edx, 0x1f
and esi, 0x3f
cmp bl, 0xdf
jbe 0x53fa4b
movzx edi, byte [eax + 2]
shl esi, 6
and edi, 0x3f
or edi, esi
cmp bl, 0xf0
jb 0x53fa5a
movzx esi, byte [eax + 3]
and edx, 7
shl edi, 6
add eax, 4
shl edx, 0x12
and esi, 0x3f
or esi, edi
or edx, esi
jmp 0x53fa62
mov ebx, dword [esp]
shl edx, 6
add eax, 2
xor edi, edi
or edx, esi
jmp 0x53fa83
shl edx, 0xc
add eax, 3
or edx, edi
mov ebx, dword [esp]
cmp edx, 0xffff
jbe 0x53f9eb
and edx, 0x3ff
or edx, 0xdc00
mov edi, edx
mov dx, 1
test cl, 1
je 0x53f9cb
mov dword [esp + 0x24], 0xd
and dword [esp + 0x20], 0xffffff00
mov al, 1
test al, al
jne 0x53fadf
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov edi, dword [eax + 4]
push esi
call dword [edi]
add esp, 4
cmp dword [edi + 4], 0
je 0x53face
cmp dword [edi + 8], 9
jb 0x53fac0
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push dword [esp + 0x24]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea ecx, [esp + 0x40]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
test edx, edx
je 0x53fb01
push eax
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea ecx, [esp + 0x40]
mov eax, dword [esp + 0x158]
cmp eax, dword [esp + 0x154]
jne 0x53f8fa
jmp 0x540a7a
lea eax, [ebx + ebx + 2]
push eax
push 0
call sub.kernel32.dll_LocalAlloc
test eax, eax
je 0x53fcf9
mov esi, eax
test ebx, ebx
mov dword [esp + 0x20], eax
je 0x53fc2c
mov edx, dword [esp + 0x30]
xor edi, edi
mov eax, ebx
mov ecx, esi
mov dword [esp], edx
test di, di
je 0x53fb55
mov edx, ebx
jmp 0x53fbf2
mov edi, dword [esp]
cmp edi, dword [esp + 8]
je 0x540abc
mov edx, ebx
movzx ebx, byte [edi]
test bl, bl
js 0x53fb73
inc edi
mov dword [esp], edi
mov edi, ebx
jmp 0x53fbf2
mov esi, edi
mov edi, ebx
mov dword [esp], esi
movzx esi, byte [esi + 1]
and edi, 0x1f
and esi, 0x3f
cmp bl, 0xdf
jbe 0x53fbd0
mov dword [esp + 0x1c], esi
mov esi, dword [esp]
movzx esi, byte [esi + 2]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x1c]
and dword [esp + 4], 0x3f
shl esi, 6
add dword [esp + 4], esi
cmp bl, 0xf0
jb 0x53fbdb
mov ebx, dword [esp]
and edi, 7
shl edi, 0x12
movzx esi, byte [ebx + 3]
add ebx, 4
mov dword [esp], ebx
mov ebx, dword [esp + 4]
and esi, 0x3f
shl ebx, 6
or esi, ebx
or edi, esi
jmp 0x53fbe6
add dword [esp], 2
shl edi, 6
or edi, esi
jmp 0x53fbee
shl edi, 0xc
add dword [esp], 3
add edi, dword [esp + 4]
cmp edi, 0xffff
ja 0x53fc07
mov esi, dword [esp + 0x20]
xor ebx, ebx
mov word [ecx], di
add ecx, 2
mov edi, ebx
dec eax
mov ebx, edx
jne 0x53fb49
jmp 0x53fc2c
lea esi, [edi + 0xff0000]
and edi, 0x3ff
shr esi, 0xa
or edi, 0xdc00
or esi, 0xd800
mov ebx, edi
mov edi, esi
mov esi, dword [esp + 0x20]
jmp 0x53fbf4
mov word [esi + ebx*2], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
push 0
push 0
push 4
lea edi, [esp + 0x4c]
push edi
push 7
push 0x40000000
push esi
call sub.kernel32.dll_CreateFileW
mov ebx, esi
cmp eax, 0xffffffff
je 0x53fd19
and dword [esp + 0x24], 0xffffff00
mov esi, eax
push ebx
call sub.kernel32.dll_LocalFree
mov ecx, edi
mov dword [esp + 0x40], esi
mov byte [esp + 0x44], 0
call sym.__LT_fslock..LockFile_u20_as_u20_core..ops..drop..Drop_GT_::drop::h7a43533e3a60d00a
mov al, 1
test al, al
je 0x53fadf
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x40]
push dword [esp + 0xc]
call dbg.stat
add esp, 4
mov eax, dword [esp + 0x40]
xor eax, 2
or eax, dword [esp + 0x44]
jne 0x53fd3f
cmp byte [esp + 0x48], 3
jne 0x53fadf
mov esi, dword [esp + 0x4c]
mov edi, dword [esi]
mov ebx, dword [esi + 4]
push edi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x53fcf3
cmp dword [ebx + 8], 9
jb 0x53fce5
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push esi
jmp 0x53fad2
call sub.kernel32.dll_GetLastError
mov dword [esp + 0x24], eax
and dword [esp + 0x20], 0xffffff00
mov al, 1
test al, al
je 0x53faa2
jmp 0x53fadf
call sub.kernel32.dll_GetLastError
mov dword [esp + 0x24], eax
push ebx
call sub.kernel32.dll_LocalFree
mov ecx, edi
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
test edx, edx
jne 0x53faef
jmp 0x53fb01
test byte [esp + 0x80], 1
je 0x53fe6a
lea esi, [esp + 0x40]
mov edx, str.attrib_RThe_command_could_not_be_executed.
mov ecx, esi
push 6
call sym.std::process::Command::new::h5a6bf38c8b680ddb
add esp, 4
mov ecx, esi
mov edx, 0x5bd84e
push 2
call dbg.arg
add esp, 4
mov edx, dword [esp + 0x30]
mov ecx, esi
push dword [esp + 0xc]
call dbg.arg
add esp, 4
lea ecx, [esp + 0x1b8]
mov edx, esi
call dbg.status
cmp byte [esp + 0x1b8], 4
jne 0x540ae6
mov edi, dword [esp + 0x1bc]
cmp dword [esp + 0x5c], 0
je 0x53fdc0
push dword [esp + 0x58]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x90]
mov ecx, esi
call sym.__LT_alloc..vec..Vec_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h325e6d91d9f3df49
cmp dword [esp + 0x8c], 0
je 0x53fded
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea ecx, [esp + 0x68]
call sym.__ZN99__LT_alloc..collections..btree..map..BTreeMap_LT_K_C_V_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_4drop17h80b0526ff9a1d
cmp byte [esp + 0x84], 2
je 0x53fe18
cmp dword [esp + 0x7c], 0
je 0x53fe18
push dword [esp + 0x78]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x40]
mov esi, 0x27
cmp eax, 5
ja 0x53fe2b
bt esi, eax
jb 0x53fe34
push dword [esp + 0x44]
call sub.kernel32.dll_CloseHandle
mov eax, dword [esp + 0x48]
cmp eax, 5
ja 0x53fe42
bt esi, eax
jb 0x53fe4b
push dword [esp + 0x4c]
call sub.kernel32.dll_CloseHandle
mov eax, dword [esp + 0x50]
cmp eax, 5
ja 0x53fe59
bt esi, eax
jb 0x53fe62
push dword [esp + 0x54]
call sub.kernel32.dll_CloseHandle
test edi, edi
jne 0x53fadf
lea ecx, [esp + 0x320]
call sym.__LT_progressbars..SpinnerProgressBar_u20_as_u20_progressbars..ProgressBar_GT_::update::h44ba8d30818f7bb8
movdqa xmm0, xmmword [0x560740]
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x1d4]
lea ecx, [esp + 0x40]
mov word [eax + 4], 0
mov dword [eax], 0
lea eax, [esp + 0x1b8]
mov dword [esp + 0x1b8], 0
movdqu xmmword [esp + 0x1c0], xmm0
mov dword [esp + 0x1d0], 0
mov word [esp + 0x1d4], 0x101
push eax
push dword [esp + 0x10]
call dbg.open
add esp, 8
cmp byte [esp + 0x40], 4
jne 0x53feee
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 4
mov dword [esp], eax
jmp 0x53ff06
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
cmp cl, 4
mov dword [esp], eax
mov dword [esp + 8], ecx
jne 0x540182
mov edx, dword [esp]
lea ecx, [esp + 0x40]
mov dword [esp + 0x2c], edx
call dbg.file_attr
mov eax, dword [esp + 0x40]
xor eax, 2
or eax, dword [esp + 0x44]
jne 0x53ff59
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov byte [esp + 4], 1
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xd8], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 2
jmp 0x5409dc
mov ecx, 0x12
lea edi, [esp + 0xd0]
lea esi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 4], 1
mov eax, dword [esp + 0xd0]
xor eax, 2
or eax, dword [esp + 0xd4]
je 0x5409dc
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x10c]
mov eax, 0x3ffff
mov esi, edx
mov ebx, ecx
mov dword [esp + 0x130], edx
mov dword [esp + 0x134], ecx
add esi, 0xfffc0000
adc ebx, 0xffffffff
cmp eax, edx
mov eax, 0
mov edx, dword [esp + 0xc]
sbb eax, ecx
mov ecx, dword [esp + 0x30]
mov eax, 0
cmovae esi, eax
cmovae ebx, eax
mov dword [esp + 0x14], esi
call sym.std::sys::windows::os_str::Slice::to_str::hfb9cb4aa5cb3df8f
mov esi, edx
test eax, eax
mov edi, eax
cmove esi, eax
mov eax, str.Lazy_instance_has_previously_been_poisoned
cmove edi, eax
mov ecx, esi
xor edx, edx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::allocate_in::hc34d6410cf404631
mov dword [esp + 4], edx
push esi
push edi
mov edi, eax
push eax
call sym._memcpy
add esp, 0xc
mov edx, dword [ebp + 0x18]
mov eax, dword [esp + 4]
lea ecx, [esp + 0x168]
mov dword [esp + 0x40], 0x5bd804
mov dword [esp + 0x44], 3
mov dword [esp + 0x50], 0
mov dword [esp + 0xa0], edi
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0xb0]
mov dword [esp + 0x4c], 2
mov dword [esp + 0x168], edx
lea edx, [esp + 0x40]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x16c], sym.__LT_alloc..string..String_u20_as_u20_core..fmt..Display_GT_::fmt::hd657006bffdcad24
mov dword [esp + str.MyFile_waifu.club], 0x5bd830
mov dword [esp + 0xa8], esi
mov dword [esp + 0x174], sym.__LT__RF_T_u20_as_u20_core..fmt..Display_GT_::fmt::h03504413dc392ca9
call dbg.format_inner
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xb4]
lea ecx, [esp + 0xa0]
mov edx, esi
push dword [esp + 0xb8]
call sym.alloc::vec::Vec_LT_T_C_A_GT_::extend_from_slice::ha64bbf2e0c11fbb0
add esp, 4
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
test edi, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x12c], edx
mov dword [esp + 0xc4], ecx
je 0x5400e3
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x130], 0x200000
mov eax, dword [esp + 0x134]
sbb eax, 0
jae 0x54018b
mov ecx, 0x100000
mov edx, 1
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::allocate_in::hc34d6410cf404631
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x40]
push dword [esp + 0xc4]
call sym.std::fs::File::create::h60de44d96d64caac
add esp, 4
movzx eax, byte [esp + 0x40]
mov esi, dword [esp + 0x44]
cmp eax, 4
je 0x540552
cmp eax, 3
jne 0x54066d
mov edi, dword [esi]
mov ebx, dword [esi + 4]
push edi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x54016f
cmp dword [ebx + 8], 9
jb 0x540161
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
jmp 0x54066d
mov eax, dword [esp + 8]
jmp 0x540a3f
mov ecx, 0x40000
mov edx, 1
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::allocate_in::hc34d6410cf404631
mov dword [esp + 0x128], edx
mov ecx, 0x40000
mov edx, 1
mov dword [esp + 0x18], eax
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::allocate_in::hc34d6410cf404631
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x124], edx
mov dword [esp + 0x9c], eax
lea ecx, [esp + 0x210]
mov edx, edi
push 0
push 0
push 0
push 0
call dbg.seek
add esp, 0x10
mov esi, dword [esp + 0x210]
mov byte [esp + 4], 1
test esi, esi
jne 0x54092a
lea ecx, [esp + 0x1ec]
mov edx, edi
push 0x40000
push dword [esp + 0x1c]
call dbg.read
add esp, 8
movzx eax, byte [esp + 0x1ec]
cmp al, 4
jne 0x540686
lea ecx, [esp + 0xa0]
mov edx, edi
push 0
push 0
push 0
push 0
call dbg.seek
add esp, 0x10
cmp dword [esp + 0xa0], 0
mov byte [esp + 4], 1
jne 0x54091e
lea ecx, [esp + 0x140]
lea edx, [esp + 0x440]
push 0x40000
push dword [esp + 0x1c]
push dword [ebp + 0xc]
call sym.libaes::Cipher::cfb128_encrypt::h5f43db957095d827
add esp, 0xc
mov eax, dword [esp + 0x140]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x2c]
push dword [esp + 0x148]
mov dword [esp + 0x1a0], eax
push eax
call sym.std::io::Write::write_all::h54592d857a11b3ae
add esp, 8
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x5406e4
lea ecx, [esp + 0xb0]
mov edx, edi
push ebx
push dword [esp + 0x18]
push 0
push 0
call dbg.seek
add esp, 0x10
cmp dword [esp + 0xb0], 0
mov byte [esp + 4], 1
jne 0x5408f4
lea ecx, [esp + 0x1f4]
mov edx, edi
push 0x40000
push dword [esp + 0xa0]
call dbg.read
add esp, 8
movzx eax, byte [esp + 0x1f4]
cmp al, 4
jne 0x54085b
lea ecx, [esp + 0x168]
mov edx, edi
push ebx
push dword [esp + 0x18]
push 0
push 0
call dbg.seek
add esp, 0x10
cmp dword [esp + 0x168], 0
mov byte [esp + 4], 1
jne 0x5408e8
lea ecx, [esp + 0x1a4]
lea edx, [esp + 0x440]
push 0x40000
push dword [esp + 0xa0]
push dword [ebp + 0xc]
call sym.libaes::Cipher::cfb128_encrypt::h5f43db957095d827
add esp, 0xc
mov eax, dword [esp + 0x1a4]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x2c]
push dword [esp + 0x1ac]
mov dword [esp + 0x18], eax
push eax
call sym.std::io::Write::write_all::h54592d857a11b3ae
add esp, 8
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x54086f
mov edx, dword [esp + 0x1c]
lea ebx, [esp + 0x40]
mov ecx, ebx
push dword [esp + 0xc4]
call sym.__LT_alloc..string..String_u20_as_u20_core..clone..Clone_GT_::clone::h1cabc8293106b588
add esp, 4
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x1fc]
push ebx
push dword [esp + 0x10]
call sym.std::fs::rename::h37bfd6148ef790a7
add esp, 8
movzx ebx, byte [esp + 0x1fc]
cmp bl, 4
setne byte [esp + 4]
jne 0x5408be
push edi
call sub.kernel32.dll_CloseHandle
movdqa xmm0, xmmword [0x560740]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x68]
lea edi, [esp + 0x15c]
mov word [eax - 8], 0
mov dword [eax - 0xc], 0
mov dword [esp + 0x40], 0
mov ecx, edi
movdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov byte [esp + 0x5e], 1
push dword [esp + 0xc4]
call sym.__LT_alloc..string..String_u20_as_u20_core..clone..Clone_GT_::clone::h1cabc8293106b588
add esp, 4
lea ecx, [esp + 0x1b0]
lea edx, [esp + 0x40]
push edi
call sym.std::fs::OpenOptions::open::hc0f2abec9795a93a
add esp, 4
movzx eax, byte [esp + 0x1b0]
cmp al, 4
jne 0x540898
mov edi, dword [esp + 0x1b4]
lea ecx, [esp + 0x15c]
lea edx, [esp + 0x13c]
mov dword [esp + 0x13c], edi
push dword [esp + 0x28]
push dword [esp + 0xcc]
call sym.std::io::Write::write_all::h54592d857a11b3ae
add esp, 8
movzx eax, byte [esp + 0x15c]
cmp al, 4
jne 0x5408a9
lea ecx, [esp + 0x15c]
lea edx, [esp + 0x13c]
push 9
push dword [ebp + 0x10]
call sym.std::io::Write::write_all::h54592d857a11b3ae
add esp, 8
movzx eax, byte [esp + 0x15c]
cmp al, 4
jne 0x5408a9
push edi
call sub.kernel32.dll_CloseHandle
cmp dword [esp + 0x1a8], 0
je 0x5404c6
push dword [esp + 0x14]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea ecx, [esp + 0x168]
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_u64_C_std..io..error..Error_GT__GT_::h3c38db5b879e0a4f
cmp dword [esp + 0x144], 0
je 0x5404f0
push dword [esp + 0x140]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea ecx, [esp + 0xb0]
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_u64_C_std..io..error..Error_GT__GT_::h3c38db5b879e0a4f
lea ecx, [esp + 0xa0]
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_u64_C_std..io..error..Error_GT__GT_::h3c38db5b879e0a4f
cmp dword [esp + 0x124], 0
je 0x540526
push dword [esp + 0x9c]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x128], 0
je 0x540541
push dword [esp + 0x18]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea ecx, [esp + 0x210]
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_u64_C_std..io..error..Error_GT__GT_::h3c38db5b879e0a4f
jmp 0x540797
mov dword [esp + 0xa0], esi
lea ecx, [esp + 0x40]
lea edx, [esp + 0xa0]
push dword [esp + 0x28]
push dword [esp + 0xcc]
call sym.std::io::Write::write_all::h54592d857a11b3ae
add esp, 8
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x54065b
lea ecx, [esp + 0x40]
lea edx, [esp + 0xa0]
push 9
push dword [ebp + 0x10]
call sym.std::io::Write::write_all::h54592d857a11b3ae
add esp, 8
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x54065b
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb0]
push 0x100000
push dword [esp + 0x1c]
call dbg.read
add esp, 8
movzx ebx, byte [esp + 0xb0]
cmp bl, 4
jne 0x540717
mov esi, dword [esp + 0xb4]
mov bl, 4
test esi, esi
je 0x540720
cmp esi, 0x100001
jae 0x540b1e
lea ecx, [esp + 0x40]
lea edx, [esp + 0x634]
push esi
push dword [esp + 0x1c]
push dword [ebp + 0xc]
call sym.libaes::Cipher::cbc_encrypt::h9c8e1434852d5579
add esp, 0xc
mov edi, dword [esp + 0x40]
lea ecx, [esp + 0x168]
lea edx, [esp + 0xa0]
push dword [esp + 0x48]
push edi
call sym.std::io::Write::write_all::h54592d857a11b3ae
add esp, 8
mov bh, byte [esp + 0x168]
cmp bh, 4
jne 0x540724
cmp dword [esp + 0x44], 0
je 0x5405a9
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
jmp 0x5405a9
mov edx, dword [esp + 0x44]
movzx ecx, al
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
push esi
call sub.kernel32.dll_CloseHandle
cmp dword [esp + 0x14], 0
mov byte [esp + 4], 1
je 0x5409ae
push dword [esp + 0x18]
jmp 0x5409a1
cmp al, 3
mov byte [esp + 4], 1
jne 0x54092a
mov edi, dword [esp + 0x1f0]
mov eax, dword [edi]
mov ebx, dword [edi + 4]
mov dword [esp + 0xc], eax
push eax
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x5406d1
cmp dword [ebx + 8], 9
jb 0x5406c0
mov eax, dword [esp + 0xc]
mov eax, dword [eax - 4]
mov dword [esp + 0xc], eax
push dword [esp + 0xc]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
jmp 0x54092a
mov edx, dword [esp + 0x44]
movzx ecx, al
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
cmp dword [esp + 0x144], 0
je 0x54091e
push dword [esp + 0x19c]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
jmp 0x54091e
mov esi, dword [esp + 0xb4]
jmp 0x540748
xor esi, esi
jmp 0x540748
cmp dword [esp + 0x44], 0
je 0x540739
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov edx, dword [esp + 0x16c]
movzx ecx, bh
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
movzx ecx, bl
mov edx, esi
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x40]
push dword [esp + 0xc]
call sym.std::fs::remove_file::hd4481934ae760d47
add esp, 4
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x540843
push dword [esp + 0xa0]
call sub.kernel32.dll_CloseHandle
cmp dword [esp + 0x14], 0
je 0x540797
push dword [esp + 0x18]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x12c], 0
je 0x5407b2
push dword [esp + 0x1c]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0xd0]
xor eax, 2
or eax, dword [esp + 0xd4]
jne 0x54081c
lea ecx, [esp + 0xd0]
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_std..fs..Metadata_C_std..io..error..Error_GT__GT_::h9d3f115a30594015
cmp dword [esp + 0x130], 0x200000
sbb dword [esp + 0x134], 0
jb 0x540831
cmp byte [esp + 8], 4
je 0x5407fa
movzx ecx, byte [esp + 8]
mov edx, dword [esp]
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x10], 0
je 0x53f8e2
push eax
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
jmp 0x53f8e2
cmp dword [esp + 0x130], 0x200000
sbb dword [esp + 0x134], 0
jae 0x5407e6
push dword [esp + 0x2c]
call sub.kernel32.dll_CloseHandle
cmp byte [esp + 8], 4
jne 0x5407ed
jmp 0x5407fa
mov edx, dword [esp + 0x44]
movzx ecx, al
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
mov esi, dword [esp + 0xa0]
jmp 0x540667
mov edx, dword [esp + 0x1f8]
movzx ecx, al
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
jmp 0x5408f4
mov edx, dword [esp + 0x44]
movzx ecx, al
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
cmp dword [esp + 0x1a8], 0
je 0x5408e8
push dword [esp + 0x14]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
jmp 0x5408e8
mov edx, dword [esp + 0x1b4]
movzx ecx, al
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
jmp 0x5408be
mov edx, dword [esp + 0x160]
movzx ecx, al
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
push edi
call sub.kernel32.dll_CloseHandle
cmp dword [esp + 0x1a8], 0
je 0x5408d9
push dword [esp + 0x14]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov edx, dword [esp + 0x200]
movzx ecx, bl
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_usize_C_std..io..error..Error_GT__GT_::h2288a259c1f69eea
lea ecx, [esp + 0x168]
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_u64_C_std..io..error..Error_GT__GT_::h3c38db5b879e0a4f
cmp dword [esp + 0x144], 0
je 0x540912
push dword [esp + 0x140]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea ecx, [esp + 0xb0]
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_u64_C_std..io..error..Error_GT__GT_::h3c38db5b879e0a4f
lea ecx, [esp + 0xa0]
call sym.core::ptr::drop_in_place_LT_core..result..Result_LT_u64_C_std..io..error..Error_GT__GT_::h3c38db5b879e0a4f
cmp dword [esp + 0x124], 0
je 0x540948
push dword [esp + 0x9c]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x128], 0
je 0x540963
push dword [esp + 0x18]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
test esi, esi
je 0x5409ae
cmp byte [esp + 0x214], 3
jne 0x5409ae
mov esi, dword [esp + 0x218]
mov edi, dword [esi]
mov ebx, dword [esi + 4]
push edi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x5409a0
cmp dword [ebx + 8], 9
jb 0x540992
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x12c], 0
je 0x5409c9
push dword [esp + 0x1c]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0xd0]
xor eax, 2
or eax, dword [esp + 0xd4]
jne 0x540a23
cmp byte [esp + 0xd8], 3
jne 0x540a23
mov esi, dword [esp + 0xdc]
mov edi, dword [esi]
mov ebx, dword [esi + 4]
push edi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x540a15
cmp dword [ebx + 8], 9
jb 0x540a07
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp byte [esp + 4], 0
je 0x540a33
push dword [esp + 0x2c]
call sub.kernel32.dll_CloseHandle
mov eax, dword [esp + 8]
cmp al, 4
je 0x53fadf
cmp al, 3
jne 0x53fadf
mov eax, dword [esp]
mov esi, dword [eax]
mov edi, dword [eax + 4]
push esi
call dword [edi]
add esp, 4
cmp dword [edi + 4], 0
je 0x540a72
cmp dword [edi + 8], 9
jb 0x540a64
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push dword [esp]
jmp 0x53fad2
lea ecx, [esp + 0x14c]
call sym.__LT_alloc..vec..into_iter..IntoIter_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::ha3448173d08c5a72
cmp dword [esp + 0x1a0], 0
je 0x540aa4
push dword [esp + 0xc8]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
xor ebx, ebx
jmp 0x53f0a4
mov ecx, 1
mov edx, 0x1f
call dbg.handle_alloc_error
ud2
mov ecx, 0x5650cf
mov edx, 0x1c
push 0x56514c
call dbg.expect_failed
add esp, 4
ud2
mov ecx, 1
mov edx, 1
call dbg.handle_alloc_error
ud2
movsd xmm0, qword [esp + 0x1b8]
mov ecx, 0x5bd850
mov edx, 0x22
movsd qword [esp + 0xd0], xmm0
push 0x5bd874
push 0x5bd56c
lea eax, [esp + 0xd8]
push eax
call dbg.unwrap_failed
add esp, 0xc
ud2
mov ecx, esi
mov edx, 0x100000
push 0x5bd838
call dbg.slice_end_index_len_fail
add esp, 4
ud2