Function at 0x50d5a0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x750
lea eax, [esp + 0x2d0]
push 0x258
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
lea esi, [esp + 0x540]
xorps xmm0, xmm0
movaps xmmword [esp + 0x610], xmm0
movaps xmmword [esp + 0x600], xmm0
movaps xmmword [esp + 0x5f0], xmm0
movaps xmmword [esp + 0x5e0], xmm0
movaps xmmword [esp + 0x5d0], xmm0
movaps xmmword [esp + 0x5c0], xmm0
movaps xmmword [esp + 0x5b0], xmm0
movaps xmmword [esp + 0x5a0], xmm0
movaps xmmword [esp + 0x590], xmm0
movaps xmmword [esp + 0x580], xmm0
movaps xmmword [esp + 0x570], xmm0
movaps xmmword [esp + 0x560], xmm0
movaps xmmword [esp + 0x550], xmm0
movaps xmmword [esp + 0x540], xmm0
movaps xmmword [esp + 0x2a0], xmm0
movaps xmmword [esp + 0x290], xmm0
movaps xmmword [esp + 0x280], xmm0
movaps xmmword [esp + 0x270], xmm0
movaps xmmword [esp + 0x260], xmm0
movaps xmmword [esp + 0x250], xmm0
movaps xmmword [esp + 0x240], xmm0
movaps xmmword [esp + 0x230], xmm0
movaps xmmword [esp + 0x220], xmm0
movaps xmmword [esp + 0x210], xmm0
movaps xmmword [esp + 0x200], xmm0
movaps xmmword [esp + 0x1f0], xmm0
movaps xmmword [esp + 0x1e0], xmm0
movaps xmmword [esp + 0x1d0], xmm0
movaps xmmword [esp + 0x1c0], xmm0
movaps xmmword [esp + 0x1b0], xmm0
movaps xmmword [esp + 0x1a0], xmm0
mov dword [esp + 0x620], 0xa
movdqu xmm0, xmmword [str.BoringCrypto_Key_a]
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x530], xmm0
movdqa xmm1, xmmword [str.BoringCrypto_Key]
mov edi, 0xfffffff6
lea ebx, [esp + 0x60]
nop dword [eax + eax]
movdqa xmmword [esp + 0x20], xmm1
pxor xmm0, xmm0
movdqa xmmword [esp + 0x630], xmm0
lea ecx, [esp + 0x630]
mov edx, ebx
call fcn.00512de0
movzx eax, byte [edi + 0x596af8]
movd xmm1, eax
pxor xmm1, xmmword [esp + 0x20]
movdqa xmm0, xmmword [esp + 0x630]
movdqa xmm2, xmm0
psrld xmm2, 8
pslld xmm0, 0x18
por xmm0, xmm2
psrldq xmm0, 0xc
pxor xmm0, xmm1
movdqa xmm1, xmm0
pslldq xmm1, 4
movdqa xmm2, xmm0
pslldq xmm2, 8
pxor xmm2, xmm1
movdqa xmm1, xmm0
pslldq xmm1, 0xc
pxor xmm1, xmm2
pxor xmm1, xmm0
movdqa xmmword [esp + 0x60], xmm1
movdqa xmm0, xmmword [esp + 0x60]
movdqu xmmword [esi], xmm0
add esi, 0x10
inc edi
jne 0x50d700
lea eax, [esp + 0x1a0]
lea ecx, [esp + 0x530]
lea esi, [esp + 0x1b0]
push 1
push eax
push ecx
push 0x20
push esi
push 0x598093
call fcn.004d2210
add esp, 0x18
mov ecx, 0x5980b3
mov edx, esi
push str.AES_CBC_encrypt_KAT
push 0x20
call fcn.0050d150
add esp, 8
mov cl, 1
mov dword [esp + 0xc], ecx
test eax, eax
je 0x50e30b
pxor xmm0, xmm0
movdqa xmmword [esp + 0x1a0], xmm0
mov dword [esp + 0x620], 0xa
movdqu xmm0, xmmword [str.BoringCrypto_Key_a]
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x530], xmm0
movdqa xmm1, xmmword [str.BoringCrypto_Key]
mov ebx, 0xfffffff6
lea edi, [esp + 0x540]
lea esi, [esp + 0x60]
nop dword [eax + eax]
movdqa xmmword [esp + 0x20], xmm1
pxor xmm0, xmm0
movdqa xmmword [esp + 0x630], xmm0
lea ecx, [esp + 0x630]
mov edx, esi
call fcn.00512de0
movzx eax, byte [ebx + 0x596af8]
movd xmm1, eax
pxor xmm1, xmmword [esp + 0x20]
movdqa xmm0, xmmword [esp + 0x630]
movdqa xmm2, xmm0
psrld xmm2, 8
pslld xmm0, 0x18
por xmm0, xmm2
psrldq xmm0, 0xc
pxor xmm0, xmm1
movdqa xmm1, xmm0
pslldq xmm1, 4
movdqa xmm2, xmm0
pslldq xmm2, 8
pxor xmm2, xmm1
movdqa xmm1, xmm0
pslldq xmm1, 0xc
pxor xmm1, xmm2
pxor xmm1, xmm0
movdqa xmmword [esp + 0x60], xmm1
movdqa xmm0, xmmword [esp + 0x60]
movdqu xmmword [edi], xmm0
add edi, 0x10
inc ebx
jne 0x50d830
mov edi, esi
push 0
lea eax, [esp + 0x1a4]
push eax
lea eax, [esp + 0x538]
push eax
push 0x20
lea esi, [esp + 0x1c0]
push esi
push 0x5980e7
call fcn.004d2210
add esp, 0x18
mov ecx, 0x598107
mov edx, esi
push str.AES_CBC_decrypt_KAT
push 0x20
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e307
mov dword [esp + 0x3c], 0
pxor xmm0, xmm0
movdqa xmmword [esp + 0x2b0], xmm0
mov dword [esp + 0x2c4], 0
mov dword [esp + 0x2c0], 0
push 0x4ebf30
push 0x5b2b4c
call sym.fastboot.exe_CRYPTO_once
add esp, 8
mov ecx, dword [0x5b2b58]
test ecx, ecx
lea ebx, [esp + 0x60]
je 0x50d9d6
cmp byte [0x5b2b50], 0x10
jne 0x50d9e1
mov dword [esp + 0x2d0], 0x5b2b50
push 0
push 0x10
push str.BoringCrypto_Key_a
lea eax, [esp + 0x2dc]
push eax
call ecx
add esp, 0x10
test eax, eax
je 0x50d9f6
push 0x4ebf30
push 0x5b2b4c
call sym.fastboot.exe_CRYPTO_once
add esp, 8
movzx eax, byte [0x5b2b51]
cmp esi, 0x598186
jae 0x50da23
lea ecx, [esp + 0x2b0]
cmp ecx, 0x598166
jbe 0x50da23
push 0x85
push str.external_boringssl_src_crypto_fipsmodule_cipher_aead.c
push 0x73
push 0
push 0x1e
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
jmp 0x50dffb
push 0x41
push str.external_boringssl_src_crypto_fipsmodule_cipher_aead.c
push 0x7c
jmp 0x50d9ea
push 0x4e
push str.external_boringssl_src_crypto_fipsmodule_cipher_aead.c
push pe_nt_image_headers32
push 0
push 0x1e
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
mov dword [esp + 0x2d0], 0
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x2a
push str.EVP_AEAD_CTX_init_for_AES_128_GCM_failed._n
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
jmp 0x50e30b
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 0x60], 0
lea edx, [esp + 0x1d0]
sub esp, 0x34
mov dword [esp + 0x18], eax
mov dword [esp + 8], edx
movdqa xmm0, xmmword [0x595ac0]
movdqu xmmword [esp + 0x20], xmm0
mov dword [esp + 4], esi
lea esi, [esp + 0x2e4]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], edi
lea eax, [esp + 0x304]
mov dword [esp], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x1c], 0x598166
mov dword [esp + 0x10], 0xe0
call dword [ecx + 0x18]
add esp, 0x34
test eax, eax
je 0x50dffb
mov eax, dword [esp + 0x60]
add eax, 0x20
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x1b0]
mov ecx, 0x598186
push str.AES_GCM_encrypt_KAT
push 0x30
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e097
push 0x4ebf30
push 0x5b2b4c
call sym.fastboot.exe_CRYPTO_once
add esp, 8
movzx eax, byte [0x5b2b51]
lea ecx, [esp + 0x3c]
push 0
push 0
push 0x30
push 0x5981f5
push eax
push esi
push 0x100
push ecx
lea eax, [esp + 0x1d0]
push eax
lea eax, [esp + 0x2f4]
push eax
call sym.fastboot.exe_EVP_AEAD_CTX_open
add esp, 0x28
test eax, eax
je 0x50e0b1
lea edx, [esp + 0x1b0]
mov ecx, 0x598225
push str.AES_GCM_decrypt_KAT
push 0x20
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e0b1
movaps xmm0, xmmword [0x595ad0]
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0xc3d2e1f0
lea edx, [esp + 0x7c]
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0x80
mov dword [esp + 0xbc], 0x10
movups xmm0, xmmword [0x598297]
movups xmmword [esp + 0x7c], xmm0
mov byte [esp + 0x8c], 0x80
xorps xmm0, xmm0
movups xmmword [esp + 0x8d], xmm0
movups xmmword [esp + 0x9d], xmm0
movups xmmword [esp + 0xa8], xmm0
mov dword [esp + 0xb8], 0x80000000
mov esi, edi
mov ecx, edi
push 1
call fcn.0050f7b0
add esp, 4
pxor xmm2, xmm2
movdqu xmmword [esp + 0xac], xmm2
movdqu xmmword [esp + 0x9c], xmm2
movdqu xmmword [esp + 0x8c], xmm2
movdqu xmmword [esp + 0x7c], xmm2
mov dword [esp + 0xbc], 0
movdqu xmm0, xmmword [esp + 0x60]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm2
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm2
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqa xmmword [esp + 0x1b0], xmm0
mov eax, dword [esp + 0x70]
bswap eax
mov dword [esp + 0x1c0], eax
push 0x60
push edi
call sym.fastboot.exe_OPENSSL_cleanse
add esp, 8
lea edx, [esp + 0x1b0]
mov ecx, 0x5982a7
push str.SHA_1_KAT
push 0x14
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e30b
pxor xmm0, xmm0
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x60], xmm0
push esi
push 0x10
push 0x596a15
call sym.fastboot.exe_SHA256
add esp, 0xc
mov ecx, 0x596a25
mov edx, esi
push 0x596a45
push 0x20
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e30b
lea edx, [esp + 0xb0]
movaps xmm0, xmmword [0x595ae0]
movups xmmword [esp + 0x60], xmm0
movaps xmm0, xmmword [0x595af0]
movups xmmword [esp + 0x70], xmm0
movaps xmm0, xmmword [0x595b00]
movups xmmword [esp + 0x80], xmm0
movaps xmm0, xmmword [0x595b10]
movups xmmword [esp + 0x90], xmm0
mov dword [esp + 0x134], 0x40
movaps xmm0, xmmword [0x595b20]
movups xmmword [esp + 0xa0], xmm0
movups xmm0, xmmword [0x596a51]
movups xmmword [esp + 0xb0], xmm0
mov dword [esp + 0x130], 0x10
mov byte [esp + 0xc0], 0x80
xorps xmm0, xmm0
movups xmmword [esp + 0xc1], xmm0
movups xmmword [esp + 0xd1], xmm0
movups xmmword [esp + 0xe1], xmm0
movups xmmword [esp + 0xf1], xmm0
movups xmmword [esp + 0x101], xmm0
movups xmmword [esp + 0x111], xmm0
movaps xmm0, xmmword [0x595b30]
movups xmmword [esp + 0x120], xmm0
mov ecx, esi
push 1
call fcn.00512230
add esp, 4
movdqu xmm1, xmmword [esp + 0x60]
movdqu xmm0, xmmword [esp + 0x70]
movdqa xmm2, xmm1
pxor xmm3, xmm3
punpckhbw xmm2, xmm3
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm1, xmm3
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [esp + 0x630], xmm1
movdqa xmm1, xmm0
punpckhbw xmm1, xmm3
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm3
pshufd xmm0, xmm0, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [esp + 0x640], xmm0
movdqu xmm0, xmmword [esp + 0x80]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm3
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm3
pxor xmm2, xmm2
pshufd xmm0, xmm0, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [esp + 0x650], xmm0
movdqu xmm0, xmmword [esp + 0x90]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm2
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm2
pshufd xmm0, xmm0, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [esp + 0x660], xmm0
push 0xd8
push esi
call sym.fastboot.exe_OPENSSL_cleanse
add esp, 8
lea edx, [esp + 0x630]
mov ecx, 0x596a61
push 0x596aa1
push 0x40
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e30b
call fcn.0050d440
test eax, eax
je 0x50e30b
push 0x118
push 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov dword [esp + 0x150], 0xe
movaps xmm0, xmmword [0x595b40]
movaps xmmword [esp + 0x630], xmm0
movaps xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x60], xmm0
movaps xmm0, xmmword [0x595b50]
movaps xmmword [esp + 0x180], xmm0
movaps xmmword [esp + 0x40], xmm0
movups xmmword [esp + 0x70], xmm0
mov esi, 0x30
mov dword [esp + 0x20], 0x596aee
xorps xmm0, xmm0
movaps xmmword [esp + 0x50], xmm0
lea ecx, [esp + 0x50]
lea edx, [esp + 0x180]
call fcn.00512de0
mov eax, dword [esp + 0x20]
movzx eax, byte [eax]
movd xmm1, eax
pxor xmm1, xmmword [esp + 0x10]
movdqa xmm0, xmmword [esp + 0x50]
movdqa xmm2, xmm0
psrld xmm2, 8
pslld xmm0, 0x18
por xmm0, xmm2
psrldq xmm0, 0xc
pxor xmm0, xmm1
movdqa xmm1, xmm0
pslldq xmm1, 4
movdqa xmm2, xmm0
pslldq xmm2, 8
pxor xmm2, xmm1
movdqa xmm1, xmm0
pslldq xmm1, 0xc
pxor xmm1, xmm2
pxor xmm1, xmm0
movdqa xmmword [esp + 0x630], xmm1
movaps xmm0, xmmword [esp + 0x630]
movups xmmword [esp + esi + 0x50], xmm0
cmp esi, 0xf0
je 0x50e0cb
movdqa xmmword [esp + 0x10], xmm1
lea ecx, [esp + 0x50]
lea edx, [esp + 0x630]
call fcn.00512de0
movdqa xmm0, xmmword [esp + 0x50]
psrldq xmm0, 0xc
movdqa xmm2, xmmword [esp + 0x40]
pxor xmm2, xmm0
movdqa xmm0, xmm2
pslldq xmm0, 4
movdqa xmm1, xmm2
pslldq xmm1, 8
pxor xmm1, xmm0
movdqa xmm0, xmm2
pslldq xmm0, 0xc
pxor xmm0, xmm1
pxor xmm2, xmm0
movdqa xmmword [esp + 0x40], xmm2
movdqa xmmword [esp + 0x180], xmm2
movaps xmm0, xmmword [esp + 0x180]
movups xmmword [esp + esi + 0x60], xmm0
add esi, 0x20
inc dword [esp + 0x20]
jmp 0x50deee
pxor xmm0, 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
movdqa xmmword [esp + 0x210], xmm0
movdqa xmmword [esp + 0x200], xmm0
movdqa xmmword [esp + 0x1f0], xmm0
movdqa xmmword [esp + 0x1e0], xmm0
movdqa xmmword [esp + 0x1d0], xmm0
movdqa xmmword [esp + 0x1c0], xmm0
movdqa xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0x3c], 0
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x2a
push str.EVP_AEAD_CTX_seal_for_AES_128_GCM_failed._n
jmp 0x50da16
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x3d
push str.AES_GCM_decrypt_KAT_failed_because_EVP_AEAD_CTX_open_failed._n
jmp 0x50da16
mov dword [esp + 0x154], fcn.004cf490
mov dword [esp + 0x158], 0x4d1780
movdqa xmm0, xmmword [0x595b60]
movdqu xmmword [esp + 0x15c], xmm0
mov dword [esp + 0x174], 0
mov dword [esp + 0x170], 1
push 0x10
push str.BCM_DRBG_KAT_AD
push 0x40
lea eax, [esp + 0x1bc]
push eax
push edi
call sym.fastboot.exe_CTR_DRBG_generate
add esp, 0x14
test eax, eax
je 0x50e2d0
lea edi, [esp + 0x1b0]
mov ecx, 0x5982d5
mov edx, edi
push str.DRBG_Generate_KAT
push 0x40
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e2d0
movups xmm0, xmmword [0x598335]
movaps xmmword [esp + 0x650], xmm0
movups xmm0, xmmword [0x598325]
movaps xmmword [esp + 0x640], xmm0
movdqa xmm0, xmmword [0x595b70]
movdqa xmmword [esp + 0x630], xmm0
lea esi, [esp + 0x60]
lea edx, [esp + 0x630]
mov ecx, esi
push 0x30
call fcn.00505b40
add esp, 4
test eax, eax
je 0x50e2d0
mov dword [esp + 0x174], 0
mov dword [esp + 0x170], 1
push 0x10
push str.BCM_DRBG_KAT_AD
push 0x40
push edi
push esi
call sym.fastboot.exe_CTR_DRBG_generate
add esp, 0x14
test eax, eax
je 0x50e2d0
lea edx, [esp + 0x1b0]
mov ecx, 0x598345
push str.DRBG_reseed_KAT
push 0x40
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e2d0
push 0x118
push esi
call sym.fastboot.exe_OPENSSL_cleanse
add esp, 8
push 0x118
push 0
lea edi, [esp + 0x638]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, edi
mov edx, esi
push str.DRBG_Clear_KAT
push 0x118
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e307
push 0x4ef9a0
push 0x5b2dec
call sym.fastboot.exe_CRYPTO_once
add esp, 8
pxor xmm0, xmm0
movdqa xmmword [esp + 0x190], xmm0
movdqa xmmword [esp + 0x180], xmm0
push 0x4efba0
push 0x5b2e7c
call sym.fastboot.exe_CRYPTO_once
add esp, 8
lea ecx, [esp + 0x180]
mov edx, 0x20
push 0x10
push 0x598407
push 0x10
push 0x5983f7
push 0xf
push 0x5983e8
push 0x20
push 0x5983c8
push 0x5b2df0
call fcn.00512860
add esp, 0x24
test eax, eax
je 0x50e2ea
lea edx, [esp + 0x180]
mov ecx, 0x598417
push str.TLS_KDF_KAT
push 0x20
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e2ea
mov dword [esp + 0xc], 0
jmp 0x50e307
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x11
push str.CTR_DRBG_failed._n
jmp 0x50da16
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x10
push str.TLS_KDF_failed._n
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
lea ebx, [esp + 0x60]
mov eax, dword [esp + 0x2d0]
test eax, eax
je 0x50e324
lea ecx, [esp + 0x2d0]
push ecx
call dword [eax + 0x10]
add esp, 4
xor esi, esi
cmp byte [esp + 0xc], 0
jne 0x50e5b4
pxor xmm0, 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
movdqa xmmword [esp + 0x330], xmm0
movdqa xmmword [esp + 0x320], xmm0
movdqa xmmword [esp + 0x310], xmm0
movdqa xmmword [esp + 0x300], xmm0
movdqa xmmword [esp + 0x2f0], xmm0
movdqa xmmword [esp + 0x2e0], xmm0
movdqa xmmword [esp + 0x2d0], xmm0
push 0
call sym.fastboot.exe_RSA_new_method
add esp, 4
mov edi, eax
test eax, eax
je 0x50e583
push 0
push 0x100
push 0x5986f0
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov dword [edi + 4], eax
test eax, eax
je 0x50e583
push 0
push 3
push 0x5987f0
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov dword [edi + 8], eax
test eax, eax
je 0x50e583
push 0
push 0x100
push 0x5987f3
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov dword [edi + 0xc], eax
test eax, eax
je 0x50e583
push 0
push 0x80
push 0x5988f3
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov dword [edi + 0x10], eax
test eax, eax
je 0x50e583
push 0
push 0x80
push 0x598973
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov dword [edi + 0x14], eax
test eax, eax
je 0x50e583
push 0
push 0x80
push 0x5989f3
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov dword [edi + 0x18], eax
test eax, eax
je 0x50e583
push 0
push 0x80
push 0x598a73
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov dword [edi + 0x1c], eax
test eax, eax
je 0x50e583
push 0
push 0x80
push 0x598af3
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov dword [edi + 0x20], eax
test eax, eax
je 0x50e583
or byte [edi + 0x2c], 8
mov dword [esp + 0x60], 0
push edi
push ebx
lea eax, [esp + 0x2d8]
push eax
push 0x20
push str.nS0or_ry_
push 0x2a0
call fcn.005095a0
add esp, 0x18
test eax, eax
je 0x50e5be
lea edx, [esp + 0x2d0]
mov ecx, 0x598491
push 0x598591
push 0x100
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50e5be
push edi
push 0x100
push 0x5985d8
push 0x20
push 0x5985b8
push 0x2a0
call fcn.00509920
add esp, 0x18
test eax, eax
je 0x50e5dd
push edi
call sym.fastboot.exe_RSA_free
add esp, 4
push 0
call sym.fastboot.exe_EC_KEY_new_method
add esp, 4
xor ebx, ebx
test eax, eax
je 0x50e5fd
mov esi, eax
push 0x19f
call sym.fastboot.exe_EC_GROUP_new_by_curve_name
add esp, 4
mov dword [esi], eax
test eax, eax
je 0x50e5f4
mov ebx, esi
jmp 0x50e5fd
push edi
call sym.fastboot.exe_RSA_free
add esp, 4
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x1c
push str.RSA_key_construction_failed_n
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
xor edi, edi
push edi
call sym.fastboot.exe_RSA_free
add esp, 4
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x19
push str.RSA_signing_test_failed._n
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
jmp 0x50e5ab
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x17
push str.RSA_verify_KAT_failed._n
jmp 0x50e5d3
push esi
call sym.fastboot.exe_EC_KEY_free
add esp, 4
push 0
push 0x20
push 0x598d60
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov esi, eax
push 0
push 0x20
push 0x598d80
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov edi, eax
push 0
push 0x20
push 0x598da0
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
mov dword [esp + 0x20], eax
test ebx, ebx
je 0x50e678
test esi, esi
je 0x50e678
test edi, edi
je 0x50e678
cmp dword [esp + 0x20], 0
je 0x50e678
push edi
push esi
push ebx
call sym.fastboot.exe_EC_KEY_set_public_key_affine_coordinates
add esp, 0xc
test eax, eax
je 0x50e66b
push dword [esp + 0x20]
push ebx
call sym.fastboot.exe_EC_KEY_set_private_key
add esp, 8
test eax, eax
jne 0x50e687
push ebx
call sym.fastboot.exe_EC_KEY_free
add esp, 4
xor ebx, ebx
jmp 0x50e687
push ebx
call sym.fastboot.exe_EC_KEY_free
add esp, 4
xor ebx, ebx
test esi, esi
je 0x50e6b0
mov eax, dword [esi + 0x10]
test al, 2
jne 0x50e69b
push dword [esi]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [esi + 0x10]
test al, 1
jne 0x50e6a7
mov dword [esi], 0
jmp 0x50e6b0
push esi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
test edi, edi
lea esi, [esp + 0x630]
je 0x50e6e4
mov eax, dword [edi + 0x10]
test al, 2
jne 0x50e6cf
push dword [edi]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [edi + 0x10]
test al, 1
jne 0x50e6db
mov dword [edi], 0
jmp 0x50e6e4
push edi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov edi, dword [esp + 0x20]
test edi, edi
je 0x50e715
mov eax, dword [edi + 0x10]
test al, 2
jne 0x50e700
push dword [edi]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [edi + 0x10]
test al, 1
jne 0x50e70c
mov dword [edi], 0
jmp 0x50e715
push edi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
test ebx, ebx
je 0x50e7b3
pxor xmm0, xmm0
movdqu xmmword [esp + 0x63f], xmm0
movdqa xmmword [esp + 0x630], xmm0
mov byte [esp + 0x64f], 0x2a
push 0x20
push esi
mov dword [esp + 0x28], ebx
push ebx
push 0x20
push 0x598b88
call fcn.004f1840
add esp, 0x14
mov edi, eax
pxor xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x90], xmm0
test eax, eax
je 0x50ed0e
mov ecx, dword [edi]
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
lea esi, [ebx*4]
cmp esi, 0x21
mov dword [esp + 0xc], esi
jb 0x50e8ce
lea ecx, [esi - 0x20]
xor esi, esi
cmp ecx, 8
jae 0x50e7d7
mov ebx, 0x20
xor edx, edx
mov esi, dword [esp + 0xc]
jmp 0x50e8be
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x14
push str.ECDSA_KeyGen_failed_n
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
xor edi, edi
jmp 0x50ed2f
mov dword [esp + 0x10], edi
mov edx, 0
cmp ecx, 0x20
jb 0x50e856
mov edi, ecx
mov esi, ecx
and esi, 0xffffffe3
xor ecx, ecx
pxor xmm1, xmm1
movdqu xmm2, xmmword [eax + ecx + 0x20]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + ecx + 0x30]
por xmm1, xmm2
add ecx, 0x20
cmp esi, ecx
jne 0x50e7f2
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd edx, xmm1
cmp edi, esi
jne 0x50e84f
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
jmp 0x50e8c6
test bl, 6
je 0x50e8b1
mov ecx, edi
mov dword [esp + 0x40], ecx
mov edi, ecx
and edi, 0xfffffffb
lea ebx, [edi + 0x20]
movzx ecx, dl
movd xmm0, ecx
movq xmm1, qword [eax + esi + 0x20]
por xmm0, xmm1
add esi, 8
cmp edi, esi
jne 0x50e869
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd edx, xmm1
cmp dword [esp + 0x40], edi
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
jne 0x50e8be
jmp 0x50e8c6
add esi, 0x20
mov ebx, esi
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
or dl, byte [eax + ebx]
inc ebx
cmp esi, ebx
jne 0x50e8be
test dl, dl
jne 0x50ed0e
cmp esi, 0x20
mov ecx, 0x20
cmovb ecx, esi
test ecx, ecx
je 0x50e9b9
xor esi, esi
cmp ecx, 8
jb 0x50e9a4
xor esi, esi
cmp ecx, 0x10
mov dword [esp + 0x10], edi
jb 0x50e95a
mov esi, ecx
and esi, 0x30
mov edi, ecx
and edi, 0xfffffff0
neg edi
xor ebx, ebx
pxor xmm0, xmm0
mov edx, eax
movdqu xmm1, xmmword [edx]
movdqa xmm2, xmm1
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpckhbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [esp + ebx + 0x70], xmm1
add edx, 0x10
add ebx, 0xfffffff0
cmp edi, ebx
jne 0x50e90b
cmp ecx, esi
mov edi, dword [esp + 0x10]
je 0x50e9b9
test cl, 8
je 0x50e9a4
mov edi, esi
mov esi, ecx
and esi, 0x38
lea ebx, [eax + edi]
neg edi
mov edx, ecx
and edx, 0xfffffff8
neg edx
pxor xmm0, xmm0
movq xmm1, qword [ebx]
punpcklbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm1
movq qword [esp + edi + 0x78], xmm1
add ebx, 8
add edi, 0xfffffff8
cmp edx, edi
jne 0x50e971
cmp ecx, esi
mov edi, dword [esp + 0x10]
je 0x50e9b9
mov edx, esi
neg edx
add edx, esp
add edx, 0x7f
movzx ebx, byte [eax + esi]
mov byte [edx], bl
inc esi
dec edx
cmp ecx, esi
jne 0x50e9ad
cmp dword [esp + 0xc], 0x1f
ja 0x50e9d7
mov eax, 0x20
sub eax, ecx
push eax
push 0
lea eax, [esp + 0x68]
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
lea esi, [ebx*4]
cmp esi, 0x21
mov dword [esp + 0xc], esi
jb 0x50eb08
lea ecx, [esi - 0x20]
xor esi, esi
cmp ecx, 8
jae 0x50ea0d
mov ebx, 0x20
xor edx, edx
mov esi, dword [esp + 0xc]
jmp 0x50eaf8
mov dword [esp + 0x10], edi
mov edx, 0
cmp ecx, 0x20
jb 0x50ea90
mov edi, ecx
mov esi, ecx
and esi, 0xffffffe3
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
movdqu xmm2, xmmword [eax + ecx + 0x20]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + ecx + 0x30]
por xmm1, xmm2
add ecx, 0x20
cmp esi, ecx
jne 0x50ea2c
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd edx, xmm1
cmp edi, esi
jne 0x50ea89
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
jmp 0x50eb00
test bl, 6
je 0x50eaeb
mov ecx, edi
mov dword [esp + 0x40], ecx
mov edi, ecx
and edi, 0xfffffffb
lea ebx, [edi + 0x20]
movzx ecx, dl
movd xmm0, ecx
movq xmm1, qword [eax + esi + 0x20]
por xmm0, xmm1
add esi, 8
cmp edi, esi
jne 0x50eaa3
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd edx, xmm1
cmp dword [esp + 0x40], edi
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
jne 0x50eaf8
jmp 0x50eb00
add esi, 0x20
mov ebx, esi
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
or dl, byte [eax + ebx]
inc ebx
cmp esi, ebx
jne 0x50eaf8
test dl, dl
jne 0x50ed0e
cmp esi, 0x20
mov ecx, 0x20
cmovb ecx, esi
test ecx, ecx
je 0x50ec05
xor esi, esi
cmp ecx, 8
jb 0x50ebed
xor esi, esi
cmp ecx, 0x10
mov dword [esp + 0x10], edi
jae 0x50eb83
mov edi, esi
mov esi, ecx
and esi, 0x38
lea ebx, [eax + edi]
neg edi
mov edx, ecx
and edx, 0xfffffff8
neg edx
pxor xmm0, xmm0
movq xmm1, qword [ebx]
punpcklbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm1
movq qword [esp + edi + 0x98], xmm1
add ebx, 8
add edi, 0xfffffff8
cmp edx, edi
jne 0x50eb48
cmp ecx, esi
mov edi, dword [esp + 0x10]
jne 0x50ebed
jmp 0x50ec05
mov esi, ecx
and esi, 0x30
mov edi, ecx
and edi, 0xfffffff0
neg edi
xor ebx, ebx
pxor xmm0, xmm0
mov edx, eax
movdqu xmm1, xmmword [edx]
movdqa xmm2, xmm1
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpckhbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [esp + ebx + 0x90], xmm1
add edx, 0x10
add ebx, 0xfffffff0
cmp edi, ebx
jne 0x50eb97
cmp ecx, esi
mov edi, dword [esp + 0x10]
je 0x50ec05
test cl, 8
jne 0x50eb31
mov edx, esi
neg edx
add edx, esp
add edx, 0x9f
movzx ebx, byte [eax + esi]
mov byte [edx], bl
inc esi
dec edx
cmp ecx, esi
jne 0x50ebf9
cmp dword [esp + 0xc], 0x1f
ja 0x50ec26
lea eax, [esp + 0x80]
mov edx, 0x20
sub edx, ecx
push edx
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
lea edx, [esp + 0x60]
mov ecx, 0x598ba8
push 0x598be8
push 0x40
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50ed0e
push edi
call sym.fastboot.exe_ECDSA_SIG_free
add esp, 4
push 8
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
mov esi, eax
xor ebx, ebx
mov eax, 0
test esi, esi
je 0x50efed
push 0x14
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x50ec87
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 1
mov dword [esi], eax
push 0x14
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
mov dword [esp + 0x10], esi
je 0x50ed48
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 1
mov dword [esi + 4], eax
mov edi, dword [esi]
test edi, edi
je 0x50ed4f
cmp dword [edi + 8], 8
jae 0x50ed62
test byte [edi + 0x10], 2
jne 0x50efd1
push 0x20
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x50efe9
mov esi, eax
mov eax, dword [edi + 4]
shl eax, 2
test eax, eax
je 0x50ecf9
push eax
push dword [edi]
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
push dword [edi]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov dword [edi], esi
mov dword [edi + 8], 8
jmp 0x50ed64
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x17
push str.ECDSA_sign_KAT_failed._n
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
mov ebx, dword [esp + 0x20]
push ebx
call sym.fastboot.exe_EC_KEY_free
add esp, 4
push edi
call sym.fastboot.exe_ECDSA_SIG_free
add esp, 4
xor esi, esi
jmp 0x50e5b4
mov dword [esi + 4], 0
push dword [esp + 0x10]
call sym.fastboot.exe_ECDSA_SIG_free
add esp, 4
xor eax, eax
jmp 0x50efed
mov esi, dword [edi]
mov dword [edi + 4], 8
mov dword [edi + 0xc], 0
movaps xmm0, xmmword [0x595b80]
movups xmmword [esi], xmm0
movdqa xmm0, xmmword [0x595b90]
movdqu xmmword [esi + 0x10], xmm0
mov eax, dword [esp + 0x10]
push dword [eax + 4]
push 0x20
push 0x598c55
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
test eax, eax
je 0x50efe9
push dword [esp + 0x20]
push dword [esp + 0x14]
push 0x20
push str.xP_
call fcn.004f0e30
add esp, 0x10
test eax, eax
je 0x50f012
push 0x19f
call sym.fastboot.exe_EC_GROUP_new_by_curve_name
add esp, 4
test eax, eax
je 0x50f018
mov edi, eax
push 0xd0
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
mov ebx, eax
test eax, eax
je 0x50ee5b
cmp dword [edi + 0x1c], 0
jne 0x50ee05
lea eax, [edi + 0x10c]
push eax
call sym.fastboot.exe_CRYPTO_refcount_inc
add esp, 4
mov dword [ebx], edi
pxor xmm0, xmm0
movdqu xmmword [ebx + 4], xmm0
movdqu xmmword [ebx + 0x14], xmm0
movdqu xmmword [ebx + 0x24], xmm0
movdqu xmmword [ebx + 0x34], xmm0
movdqu xmmword [ebx + 0x44], xmm0
movdqu xmmword [ebx + 0x54], xmm0
movdqu xmmword [ebx + 0x64], xmm0
movdqu xmmword [ebx + 0x74], xmm0
movdqu xmmword [ebx + 0x84], xmm0
movdqu xmmword [ebx + 0x94], xmm0
movdqu xmmword [ebx + 0xa4], xmm0
movdqu xmmword [ebx + 0xb4], xmm0
movdqu xmmword [ebx + 0xc0], xmm0
push 0xd0
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
mov esi, eax
test eax, eax
je 0x50eeda
cmp dword [edi + 0x1c], 0
jne 0x50ee84
mov eax, edi
add eax, 0x10c
push eax
call sym.fastboot.exe_CRYPTO_refcount_inc
add esp, 4
mov dword [esi], edi
pxor xmm0, xmm0
movdqu xmmword [esi + 4], xmm0
movdqu xmmword [esi + 0x14], xmm0
movdqu xmmword [esi + 0x24], xmm0
movdqu xmmword [esi + 0x34], xmm0
movdqu xmmword [esi + 0x44], xmm0
movdqu xmmword [esi + 0x54], xmm0
movdqu xmmword [esi + 0x64], xmm0
movdqu xmmword [esi + 0x74], xmm0
movdqu xmmword [esi + 0x84], xmm0
movdqu xmmword [esi + 0x94], xmm0
movdqu xmmword [esi + 0xa4], xmm0
movdqu xmmword [esi + 0xb4], xmm0
movdqu xmmword [esi + 0xc0], xmm0
push 0x14
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
mov dword [esp + 0xc], eax
pxor xmm0, xmm0
test eax, eax
je 0x50f042
mov eax, dword [esp + 0xc]
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 1
movdqa xmmword [esp + 0x300], xmm0
movdqa xmmword [esp + 0x2f0], xmm0
movdqa xmmword [esp + 0x2e0], xmm0
movdqa xmmword [esp + 0x2d0], xmm0
mov byte [esp + 0x310], 0
test ebx, ebx
je 0x50f06e
test esi, esi
je 0x50f06e
push 0
push 0x41
push 0x598c8f
push ebx
push edi
call sym.fastboot.exe_EC_POINT_oct2point
add esp, 0x14
test eax, eax
je 0x50f06e
mov eax, dword [esp + 0xc]
cmp dword [eax + 8], 8
jae 0x50f27d
mov eax, dword [esp + 0xc]
test byte [eax + 0x10], 2
jne 0x50f4e3
push 0x20
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
mov dword [esp + 0x40], eax
test eax, eax
je 0x50f06e
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
shl eax, 2
test eax, eax
je 0x50efad
push eax
mov eax, dword [esp + 0x10]
push dword [eax]
push dword [esp + 0x48]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
push dword [eax]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov dword [ecx + 8], 8
jmp 0x50f287
push 0x168
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6a
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
mov eax, dword [esp + 0x10]
push eax
call sym.fastboot.exe_ECDSA_SIG_free
add esp, 4
mov edi, ebx
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x19
push 0x598c75
jmp 0x50ed23
mov edi, dword [esp + 0x10]
jmp 0x50eff8
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x1e
push 0x598d11
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
jmp 0x50ed2f
movdqa xmmword [esp + 0x300], xmm0
movdqa xmmword [esp + 0x2f0], xmm0
movdqa xmmword [esp + 0x2e0], xmm0
movdqa xmmword [esp + 0x2d0], xmm0
mov byte [esp + 0x310], 0
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x1a
push str.Z_computation_KAT_failed._n
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
push dword [esp + 0x20]
call sym.fastboot.exe_EC_KEY_free
add esp, 4
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x50f0b6
push dword [ebx]
call sym.fastboot.exe_EC_GROUP_free
add esp, 4
push ebx
call sym.fastboot.exe_OPENSSL_free
add esp, 4
test esi, esi
je 0x50f0cd
push dword [esi]
call sym.fastboot.exe_EC_GROUP_free
add esp, 4
push esi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
push edi
call sym.fastboot.exe_EC_GROUP_free
add esp, 4
cmp dword [esp + 0xc], 0
je 0x50f115
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
test al, 2
jne 0x50f0f9
mov esi, dword [esp + 0xc]
push dword [esi]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [esi + 0x10]
test al, 1
jne 0x50f109
mov eax, dword [esp + 0xc]
mov dword [eax], 0
jmp 0x50f115
push dword [esp + 0xc]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
push dword [esp + 0x10]
call sym.fastboot.exe_ECDSA_SIG_free
add esp, 4
cmp dword [esp + 0x20], 0
je 0x50f203
push 0x14
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
mov esi, eax
test eax, eax
je 0x50f174
pxor xmm0, xmm0
movdqu xmmword [esi], xmm0
mov dword [esi + 0x10], 1
push 0
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov dword [esi], 0x598dc0
mov dword [esi + 4], 0x40
mov dword [esi + 8], 0x40
mov dword [esi + 0xc], 0
or byte [esi + 0x10], 2
call sym.fastboot.exe_DH_get_rfc7919_2048
mov dword [esp + 0x20], eax
test eax, eax
je 0x50f216
push 0x14
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x50f20a
mov edi, eax
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 1
push 0
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov dword [edi], 0x598fd8
mov dword [edi + 4], 8
mov dword [edi + 8], 8
mov dword [edi + 0xc], 0
or byte [edi + 0x10], 2
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x50f332
mov eax, dword [ebx + 0x10]
test al, 2
jne 0x50f1f0
push dword [ebx]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [ebx + 0x10]
test al, 1
jne 0x50f329
mov dword [ebx], 0
jmp 0x50f332
xor esi, esi
jmp 0x50e5b4
push dword [esp + 0x20]
call sym.fastboot.exe_DH_free
add esp, 4
mov dword [esp + 0x20], 0
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0xd
push str.FFDH_failed._n
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
xor edi, edi
push dword [esp + 0x20]
call sym.fastboot.exe_DH_free
add esp, 4
test esi, esi
je 0x50f276
mov eax, dword [esi + 0x10]
test al, 2
jne 0x50f261
push dword [esi]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [esi + 0x10]
test al, 1
jne 0x50f26d
mov dword [esi], 0
jmp 0x50f276
push esi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov esi, edi
jmp 0x50e5b4
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 4], 8
mov dword [eax + 0xc], 0
movaps xmm0, xmmword [0x595ba0]
mov ecx, dword [esp + 0x40]
movups xmmword [ecx], xmm0
movdqa xmm0, xmmword [0x595bb0]
movdqu xmmword [ecx + 0x10], xmm0
push 0
push eax
push ebx
push 0
push esi
push edi
call fcn.004f61d0
add esp, 0x18
test eax, eax
je 0x50f06e
sub esp, 4
push 0x41
lea eax, [esp + 0x2d8]
push eax
push 4
push esi
push edi
call sym.fastboot.exe_EC_POINT_point2oct
add esp, 0x18
test eax, eax
je 0x50f06e
lea edx, [esp + 0x2d0]
mov ecx, 0x598cd0
push str.Z_Computation_Result
push 0x41
call fcn.0050d150
add esp, 8
test eax, eax
je 0x50f06e
push dword [esp + 0x20]
call sym.fastboot.exe_EC_KEY_free
add esp, 4
mov dword [esp + 0x20], 1
jmp 0x50f0a3
push ebx
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [esp + 0x20]
mov dword [eax + 0x10], edi
pxor xmm0, 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
movdqa xmmword [esp + 0x330], xmm0
movdqa xmmword [esp + 0x320], xmm0
movdqa xmmword [esp + 0x310], xmm0
movdqa xmmword [esp + 0x300], xmm0
movdqa xmmword [esp + 0x2f0], xmm0
movdqa xmmword [esp + 0x2e0], xmm0
movdqa xmmword [esp + 0x2d0], xmm0
test esi, esi
je 0x50f21e
mov eax, dword [esp + 0x20]
mov edi, dword [eax]
mov ebx, dword [edi + 4]
mov edx, ebx
sar edx, 0x1f
and edx, ebx
mov eax, ebx
test eax, eax
jle 0x50f3f8
mov ecx, dword [edi]
mov ecx, dword [ecx + eax*4 - 4]
dec eax
test ecx, ecx
je 0x50f3e7
jmp 0x50f409
test ebx, ebx
jns 0x50f21e
mov eax, dword [edi]
mov ecx, dword [eax + edx*4 - 4]
dec edx
mov eax, edx
shl eax, 5
mov ebx, ecx
shr ebx, 0x10
xor edx, edx
cmp ecx, 0x10000
cmovb ebx, ecx
setae dl
shl edx, 4
mov dword [esp + 0xc], edx
mov edi, ebx
shr edi, 8
xor edx, edx
cmp ebx, 0x100
cmovb edi, ebx
setae dl
mov dword [esp + 0x10], edx
mov edx, edi
shr edx, 4
xor ebx, ebx
cmp edi, 0x10
cmovb edx, edi
setae bl
mov dword [esp + 0x40], ebx
mov edi, edx
shr edi, 2
xor ebx, ebx
cmp edx, 4
cmovb edi, edx
setae bl
cmp ecx, 1
sbb eax, 0
add eax, 8
or eax, dword [esp + 0xc]
cmp edi, 2
mov ecx, dword [esp + 0x10]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x40]
lea eax, [eax + ecx*4]
lea eax, [eax + ebx*2]
sbb eax, 0xffffffff
and eax, 0xfffffff8
cmp eax, 0x800
jne 0x50f21e
push dword [esp + 0x20]
push esi
lea eax, [esp + 0x2d8]
push eax
call fcn.004ee210
add esp, 0xc
cmp eax, 0x100
jne 0x50f21e
lea edx, [esp + 0x2d0]
mov ecx, 0x598ec0
push str.FFC_DH
push 0x100
call fcn.0050d150
add esp, 8
mov edi, 1
test eax, eax
jne 0x50f23d
jmp 0x50f21e
push 0x168
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6a
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
jmp 0x50f06e