Function at 0x476340
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Encrypt data using aes
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa60
lea eax, [esp + 0x528]
mov dword [esp + 0x108], 0x20444120
mov dword [esp + 0x104], 0x54414b20
mov dword [esp + 0x100], 0x47425244
mov dword [esp + 0xfc], 0x204d4342
push 0x40
push 0x58e7f0
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x3c4]
push 0x30
push str.BCM_Known_Answer_Test_DBRG_Reseed_Entropy
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x4e8]
push 0x40
push 0x58e860
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x568]
mov dword [esp + 0x148], 0xcf5a78b
mov dword [esp + 0x144], 0x155436a8
mov dword [esp + 0x140], 0x3f7f0287
mov dword [esp + 0x13c], 0x98ebadde
mov dword [esp + 0x138], 0x74b17b87
mov dword [esp + 0x134], 0xe7a06170
mov dword [esp + 0x130], 0x2c5e2770
mov dword [esp + 0x12c], 0xfcc58067
mov dword [esp + 0x128], 0xd87f41c2
mov dword [esp + 0x124], 0x3feae581
mov dword [esp + 0x120], 0xccf01ac4
mov dword [esp + 0x11c], 0xef8f7dda
mov dword [esp + 0x118], 0x7786d94d
mov dword [esp + 0x114], 0xbaa62577
mov dword [esp + 0x110], 0x8d4be791
mov dword [esp + 0x10c], 0x23e093a5
push 0x258
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
movaps xmm0, xmmword [str.iroBrCgnotpyyeK_BoringCryptoModule_FIPS_KAT_Encryption_and_Decryption_Plaintext_]
mov ecx, 0x426f7269
mov eax, 0xffffffd8
mov dword [esp + 0x4e4], 0xa
movups xmmword [esp + 0x3f4], xmm0
nop dword [eax + eax]
mov edx, dword [esp + eax*4 + 0x4a0]
movzx edi, dh
mov esi, edx
movzx edi, byte [edi*4 + 0x58f702]
shr esi, 0xe
and esi, 0x3fc
movzx esi, byte [esi + 0x58f303]
shl edi, 0x10
xor edi, ecx
movzx ecx, dl
movzx ebx, byte [ecx*4 + str.cc]
mov ecx, edx
shl esi, 0x18
shr ecx, 0x18
movzx ecx, byte [ecx*4 + 0x58ef00]
shl ebx, 8
xor ebx, edi
xor ecx, ebx
xor ecx, esi
xor ecx, dword [eax + 0x590c28]
mov dword [esp + eax*4 + 0x4a4], ecx
mov esi, dword [esp + eax*4 + 0x498]
xor esi, ecx
mov dword [esp + eax*4 + 0x4a8], esi
xor esi, dword [esp + eax*4 + 0x49c]
mov dword [esp + eax*4 + 0x4ac], esi
xor esi, edx
mov dword [esp + eax*4 + 0x4b0], esi
add eax, 4
jne 0x4764b0
movaps xmm0, xmmword [0x58ced0]
lea edi, [esp + 0x3f4]
lea esi, [esp + 0x150]
movups xmmword [esp + 0x150], xmm0
push edi
push esi
push esi
call sym.adb.exe_AES_encrypt
add esp, 0xc
movups xmm0, xmmword [esp + 0x150]
lea eax, [esp + 0x160]
xorps xmm0, xmmword [0x58cee0]
movups xmmword [esp + 0x160], xmm0
push edi
push eax
push eax
call sym.adb.exe_AES_encrypt
add esp, 0xc
movups xmm0, xmmword [esp + 0x160]
lea eax, [esp + 0x170]
xorps xmm0, xmmword [0x58cef0]
movups xmmword [esp + 0x170], xmm0
push edi
push eax
push eax
call sym.adb.exe_AES_encrypt
add esp, 0xc
movdqu xmm0, xmmword [esp + 0x170]
lea ebx, [esp + 0x180]
pxor xmm0, xmmword [0x58cf00]
movdqu xmmword [esp + 0x180], xmm0
push edi
push ebx
push ebx
call sym.adb.exe_AES_encrypt
add esp, 0xc
mov ecx, 0x58e554
mov edx, esi
push str.AES_CBC_Encryption_KAT
push 0x40
call fcn.00477630
add esp, 8
test eax, eax
je 0x4768b8
push edi
push pe_nt_image_headers32
push str.BoringCrypto_KeyBoringCryptoModule_FIPS_KAT_Encryption_and_Decryption_Plaintext_
call sym.adb.exe_AES_set_decrypt_key
add esp, 0xc
test eax, eax
je 0x47662a
push 2
call dword [0x58040c]
add esp, 4
push str.AES_set_decrypt_key_failed._n
jmp 0x4768af
mov eax, 0x58e554
cmp eax, 0x20
jb 0x47663c
cmp esi, 0x58e534
jbe 0x4766b0
cmp esi, 0x58e554
ja 0x4766b0
lea eax, [esp + 0x28]
lea ecx, [esp + 0x2c]
lea ebx, [esp + 0x20]
lea esi, [esp + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
push edi
push ebx
push 0x58e554
call sym.adb.exe_AES_decrypt
add esp, 0xc
movaps xmm0, xmmword [esp + 0x20]
movups xmmword [esp + 0x150], xmm0
push edi
push ebx
push 0x58e564
call sym.adb.exe_AES_decrypt
add esp, 0xc
movaps xmm0, xmmword [esp + 0x20]
xorps xmm0, xmmword [0x58cf10]
movups xmmword [esp + 0x160], xmm0
push edi
push ebx
push 0x58e574
call sym.adb.exe_AES_decrypt
add esp, 0xc
movaps xmm0, xmmword [esp + 0x20]
jmp 0x476728
lea ecx, [esp + 0x188]
lea edx, [esp + 0x18c]
lea eax, [esp + 0x184]
mov dword [esp], ecx
mov dword [esp + 4], edx
push edi
push esi
mov esi, eax
push 0x58e554
call sym.adb.exe_AES_decrypt
add esp, 0xc
push edi
lea eax, [esp + 0x164]
push eax
push 0x58e564
call sym.adb.exe_AES_decrypt
add esp, 0xc
movups xmm0, xmmword [esp + 0x160]
xorps xmm0, xmmword [0x58cf10]
movups xmmword [esp + 0x160], xmm0
push edi
lea eax, [esp + 0x174]
push eax
push 0x58e574
call sym.adb.exe_AES_decrypt
add esp, 0xc
movups xmm0, xmmword [esp + 0x170]
xorps xmm0, xmmword [0x58cf20]
movups xmmword [esp + 0x170], xmm0
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], 0x58e584
call sym.adb.exe_AES_decrypt
add esp, 0xc
mov eax, dword [esp + 4]
movd xmm3, dword [esi]
movd xmm2, dword [ebx]
lea esi, [esp + 0x150]
mov ecx, 0x58e514
mov edx, esi
movd xmm0, dword [eax]
mov eax, dword [esp]
punpckldq xmm2, xmm3
movd xmm1, dword [eax]
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm1
pxor xmm2, xmmword [0x58cf30]
movdqu xmmword [esp + 0x180], xmm2
push str.AES_CBC_Decryption_KAT
push 0x40
call fcn.00477630
add esp, 8
test eax, eax
je 0x4768b8
pxor xmm0, xmm0
mov dword [esp + 0x264], 0
mov dword [esp + 0x260], 0
movdqa xmmword [esp + 0x250], xmm0
push 0x45ca40
push 0x5d947c
call sym.adb.exe_CRYPTO_once
add esp, 8
mov ecx, dword [0x5d9488]
test ecx, ecx
je 0x476874
cmp byte [0x5d9480], 0x10
jne 0x47687f
mov dword [esp + 0x568], 0x5d9480
push 0
push 0x10
push str.BoringCrypto_KeyBoringCryptoModule_FIPS_KAT_Encryption_and_Decryption_Plaintext_
lea eax, [esp + 0x574]
push eax
call ecx
add esp, 0x10
test eax, eax
je 0x476894
push 0x45ca40
push 0x5d947c
call sym.adb.exe_CRYPTO_once
add esp, 8
movzx eax, byte [0x5d9481]
cmp esi, 0x58e554
jae 0x47690f
lea ecx, [esp + 0x250]
cmp ecx, 0x58e514
jbe 0x47690f
push 0x82
push str.external_boringssl_src_crypto_fipsmodule_cipher_aead.c
push 0x73
push 0
push 0x1e
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x476f6c
push 0x3e
push str.external_boringssl_src_crypto_fipsmodule_cipher_aead.c
push 0x7c
jmp 0x476888
push 0x4b
push str.external_boringssl_src_crypto_fipsmodule_cipher_aead.c
push 0x78
push 0
push 0x1e
call sym.adb.exe_ERR_put_error
add esp, 0x14
mov dword [esp + 0x568], 0
push 2
call dword [0x58040c]
add esp, 4
push str.EVP_AEAD_CTX_init_for_AES_128_GCM_failed._n
push eax
call fcn.00477610
add esp, 8
xor ebx, ebx
xor edi, edi
xor esi, esi
mov dword [esp], 0
mov eax, dword [esp + 0x568]
test eax, eax
je 0x4768e9
lea ecx, [esp + 0x568]
push ecx
call dword [eax + 0x10]
add esp, 4
mov dword [esp + 0x568], 0
push ebx
call sym.adb.exe_RSA_free
add esp, 4
push edi
call sym.adb.exe_EC_KEY_free
add esp, 4
push esi
call sym.adb.exe_ECDSA_SIG_free
add esp, 4
mov eax, dword [esp]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x568]
lea edi, [esp + 0x250]
lea edx, [esp + 0x190]
lea ebx, [esp + 0x20]
push 0
push 0
push 0
push 0
push 0x40
push 0x58e514
push eax
push edi
push 0xc0
push ebx
push edx
push esi
lea eax, [esp + 0x598]
push eax
call dword [ecx + 0x18]
add esp, 0x34
test eax, eax
je 0x476f6c
mov eax, dword [esp + 0x20]
lea esi, [esp + 0x150]
mov ecx, 0x58e594
mov edx, esi
add eax, 0x40
mov dword [esp + 0x1c], eax
push str.AES_GCM_Encryption_KAT
push 0x50
call fcn.00477630
add esp, 8
test eax, eax
je 0x477008
push 0x45ca40
push 0x5d947c
call sym.adb.exe_CRYPTO_once
add esp, 8
movzx eax, byte [0x5d9481]
lea ecx, [esp + 0x1c]
push 0
push 0
push 0x50
push 0x58e594
push eax
push edi
push 0x100
push ecx
push esi
lea eax, [esp + 0x58c]
push eax
call sym.adb.exe_EVP_AEAD_CTX_open
add esp, 0x28
test eax, eax
je 0x47701d
lea edx, [esp + 0x150]
mov ecx, 0x58e514
push str.AES_GCM_Decryption_KAT
push 0x40
call fcn.00477630
add esp, 8
test eax, eax
je 0x47701d
lea ebx, [esp + 0x8c0]
push ebx
push 0x58e5e4
call sym.adb.exe_DES_set_key
add esp, 8
lea esi, [esp + 0x840]
push esi
push 0x58e5ec
call sym.adb.exe_DES_set_key
add esp, 8
lea edi, [esp + 0x7c0]
push edi
push 0x58e5f4
call sym.adb.exe_DES_set_key
add esp, 8
mov dword [esp + 0x14], 0x56495345
mov dword [esp + 0x10], 0x444d4342
lea ecx, [esp + 0x10]
push 1
push ecx
push edi
lea edi, [esp + 0x15c]
push esi
push ebx
push 0x40
push edi
push 0x58e514
call sym.adb.exe_DES_ede3_cbc_encrypt
add esp, 0x20
mov ecx, 0x58e5fc
mov edx, edi
push str.3DES_Encryption_KAT
push 0x40
call fcn.00477630
add esp, 8
test eax, eax
je 0x4768b8
mov eax, 0x56495345
mov ecx, 0x444d4342
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
push 0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x7c8]
push eax
lea eax, [esp + 0x84c]
push eax
lea eax, [esp + 0x8d0]
push eax
push 0x40
push edi
push 0x58e5fc
call sym.adb.exe_DES_ede3_cbc_encrypt
add esp, 0x20
mov ecx, 0x58e514
mov edx, edi
push str.3DES_Decryption_KAT
push 0x40
call fcn.00477630
add esp, 8
test eax, eax
je 0x4768b8
movdqa xmm0, xmmword [0x58cf40]
lea esi, [esp + 0x20]
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x7c], 0
mov edx, 0x58e514
mov ecx, esi
movdqu xmmword [esp + 0x20], xmm0
mov dword [esp + 0x30], 0xc3d2e1f0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0x200
push 1
call fcn.00477bc0
add esp, 4
push esi
push edi
call sym.adb.exe_SHA1_Final
add esp, 8
push 0x60
push esi
call sym.adb.exe_OPENSSL_cleanse
add esp, 8
mov ecx, 0x58e63c
mov edx, edi
push str.SHA_1_KAT
push 0x14
call fcn.00477630
add esp, 8
test eax, eax
je 0x4768b8
movdqa xmm0, xmmword [0x58cf50]
movdqa xmm1, xmmword [0x58cf60]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x88], 0
mov ecx, esi
mov edx, 0x58e514
movdqu xmmword [esp + 0x20], xmm0
movdqu xmmword [esp + 0x30], xmm1
mov dword [esp + 0x8c], 0x20
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x200
push 1
call fcn.00479230
add esp, 4
push esi
push edi
call sym.adb.exe_SHA256_Final
add esp, 8
push 0x70
push esi
call sym.adb.exe_OPENSSL_cleanse
add esp, 8
mov ecx, 0x58e650
mov edx, edi
push str.SHA_256_KAT
push 0x20
call fcn.00477630
add esp, 8
test eax, eax
je 0x4768b8
movdqa xmm0, xmmword [0x58cf70]
movaps xmm2, xmmword [0x58cf80]
movaps xmm1, xmmword [0x58cf90]
mov ecx, 0x200
lea eax, [esp + 0x70]
movdqu xmmword [esp + 0x20], xmm0
movups xmmword [esp + 0x30], xmm2
movdqa xmm2, xmmword [0x58cfa0]
movups xmmword [esp + 0x40], xmm1
movd xmm1, ecx
movdqu xmmword [esp + 0x50], xmm2
mov dword [esp + 0xf4], 0x40
movdqu xmmword [esp + 0x60], xmm1
push 0x40
push 0x58e514
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0xf0], 0x40
push esi
push edi
call sym.adb.exe_SHA512_Final
add esp, 8
push 0xd8
push esi
call sym.adb.exe_OPENSSL_cleanse
add esp, 8
mov ecx, 0x58e670
mov edx, edi
push str.SHA_512_KAT
push 0x40
call fcn.00477630
add esp, 8
test eax, eax
mov dword [esp], 0
je 0x477050
push 0
call sym.adb.exe_RSA_new_method
add esp, 4
mov ecx, eax
test eax, eax
je 0x477032
push 0
push 0x100
push 0x593613
mov dword [esp + 0x10], ecx
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 4], eax
je 0x477032
push 0
push 3
push 0x593713
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 8], eax
je 0x477032
push 0
push 0x100
push 0x593716
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0xc], eax
je 0x477032
push 0
push pe_nt_image_headers32
push 0x593816
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x10], eax
je 0x477032
push 0
push pe_nt_image_headers32
push 0x593896
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x14], eax
je 0x477032
push 0
push pe_nt_image_headers32
push 0x593916
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x18], eax
je 0x477032
push 0
push pe_nt_image_headers32
push 0x593996
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x1c], eax
je 0x477032
push 0
push pe_nt_image_headers32
push 0x593a16
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x20], eax
je 0x477032
or byte [ecx + 0x2c], 8
lea eax, [esp + 0x14c]
push ecx
push eax
push edi
push 0x20
push 0x58e650
push 0x2a0
call sym.adb.exe_RSA_sign
add esp, 0x18
test eax, eax
je 0x47705b
lea edx, [esp + 0x150]
mov ecx, 0x58e6b0
push str.RSA_Sign_KAT
push 0x100
call fcn.00477630
add esp, 8
test eax, eax
je 0x47705b
push dword [esp + 4]
push 0x100
push 0x58e6b0
push 0x20
push 0x58e650
push 0x2a0
call sym.adb.exe_RSA_verify
add esp, 0x18
test eax, eax
je 0x477088
push 0
call sym.adb.exe_EC_KEY_new_method
add esp, 4
test eax, eax
je 0x47709a
mov edi, eax
push 0x19f
call sym.adb.exe_EC_GROUP_new_by_curve_name
add esp, 4
test eax, eax
mov dword [edi], eax
jne 0x4770b4
push edi
call sym.adb.exe_EC_KEY_free
add esp, 4
jmp 0x4770b2
pxor xmm0, xmm0
mov dword [esp + 0x1c], 0
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
movdqa xmmword [esp + 0x1a0], xmm0
movdqa xmmword [esp + 0x190], xmm0
movdqa xmmword [esp + 0x180], xmm0
movdqa xmmword [esp + 0x170], xmm0
movdqa xmmword [esp + 0x160], xmm0
movdqa xmmword [esp + 0x150], xmm0
push 2
call dword [0x58040c]
add esp, 4
push str.EVP_AEAD_CTX_seal_for_AES_128_GCM_failed._n
jmp 0x4768af
push 2
call dword [0x58040c]
add esp, 4
push str.EVP_AEAD_CTX_open_for_AES_128_GCM_failed._n
jmp 0x4768af
push ecx
call sym.adb.exe_RSA_free
add esp, 4
push 2
call dword [0x58040c]
add esp, 4
push str.RSA_KeyGen_failed_n
jmp 0x4768af
xor ebx, ebx
xor edi, edi
xor esi, esi
jmp 0x4768c5
push 2
call dword [0x58040c]
add esp, 4
push str.RSA_signing_test_failed._n
push eax
call fcn.00477610
add esp, 8
xor edi, edi
xor esi, esi
mov dword [esp], 0
mov ebx, dword [esp + 4]
jmp 0x4768c5
push 2
call dword [0x58040c]
add esp, 4
push str.RSA_Verify_KAT_failed._n
jmp 0x47706b
push 0x90
push str.external_boringssl_src_crypto_fipsmodule_ec_ec_key.c
push 0x41
push 0
push 0xf
call sym.adb.exe_ERR_put_error
add esp, 0x14
xor edi, edi
push 0
push 0x20
push 0x593a96
call sym.adb.exe_BN_bin2bn
add esp, 0xc
mov esi, eax
push 0
push 0x20
push 0x593ab6
call sym.adb.exe_BN_bin2bn
add esp, 0xc
mov ebx, eax
push 0
push 0x20
push 0x593ad6
call sym.adb.exe_BN_bin2bn
add esp, 0xc
test edi, edi
mov dword [esp + 8], eax
je 0x477122
test esi, esi
je 0x477122
test ebx, ebx
je 0x477122
cmp dword [esp + 8], 0
je 0x477122
push ebx
push esi
push edi
call sym.adb.exe_EC_KEY_set_public_key_affine_coordinates
add esp, 0xc
test eax, eax
je 0x477122
push dword [esp + 8]
push edi
call sym.adb.exe_EC_KEY_set_private_key
add esp, 8
test eax, eax
jne 0x47712d
push edi
call sym.adb.exe_EC_KEY_free
add esp, 4
xor edi, edi
test esi, esi
je 0x47715e
mov eax, dword [esi + 0x10]
test al, 2
jne 0x477145
push dword [esi]
call sym.adb.exe_OPENSSL_free
add esp, 4
mov eax, dword [esi + 0x10]
test al, 1
jne 0x477155
mov dword [esi], 0
test ebx, ebx
jne 0x477162
jmp 0x477194
push esi
call sym.adb.exe_OPENSSL_free
add esp, 4
test ebx, ebx
je 0x477194
mov eax, dword [ebx + 0x10]
test al, 2
jne 0x477178
mov esi, ebx
push dword [ebx]
call sym.adb.exe_OPENSSL_free
add esp, 4
mov eax, dword [ebx + 0x10]
test al, 1
jne 0x47718b
mov dword [ebx], 0
cmp dword [esp + 8], 0
jne 0x47719b
jmp 0x4771da
push ebx
call sym.adb.exe_OPENSSL_free
add esp, 4
cmp dword [esp + 8], 0
je 0x4771da
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
test al, 2
jne 0x4771b7
mov esi, dword [esp + 8]
push dword [esi]
call sym.adb.exe_OPENSSL_free
add esp, 4
mov eax, dword [esi + 0x10]
test al, 1
jne 0x4771ce
mov eax, dword [esp + 8]
mov dword [eax], 0
test edi, edi
jne 0x4771e2
jmp 0x47758c
push dword [esp + 8]
call sym.adb.exe_OPENSSL_free
add esp, 4
test edi, edi
je 0x47758c
push 0x14
call sym.adb.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x4775bf
mov esi, eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x10], 1
mov dword [edi + 0xc], eax
push 1
push eax
call fcn.00444800
add esp, 8
test eax, eax
je 0x4775db
mov dword [esi + 0xc], 0
mov eax, dword [esi]
mov dword [eax], 0x2a
mov dword [esi + 4], 1
push edi
push 0x20
push 0x58e650
call sym.adb.exe_ECDSA_do_sign
add esp, 0xc
mov esi, eax
test eax, eax
je 0x4775a1
mov eax, dword [esi]
mov dword [esp + 0xc], eax
push eax
call sym.adb.exe_BN_num_bytes
add esp, 4
cmp eax, 0x20
jne 0x4775a1
push dword [esp + 0xc]
call sym.adb.exe_BN_num_bytes
add esp, 4
test eax, eax
je 0x4775a1
lea ecx, [esp + 0x288]
mov edx, eax
mov dword [esp + 8], ecx
lea ecx, [edx*8 - 8]
dec edx
mov eax, dword [esp + 0xc]
mov ebx, dword [eax]
mov eax, edx
dec edx
and eax, 0xfffffffc
mov ebx, dword [ebx + eax]
mov eax, ecx
and cl, 0x18
add eax, 0xfffffff8
shr ebx, cl
mov ecx, dword [esp + 8]
mov byte [ecx], bl
inc ecx
cmp edx, 0xffffffff
mov dword [esp + 8], ecx
mov ecx, eax
jne 0x47729f
mov eax, dword [esi + 4]
mov dword [esp + 0xc], eax
push eax
call sym.adb.exe_BN_num_bytes
add esp, 4
cmp eax, 0x20
jne 0x4775a1
push dword [esp + 0xc]
call sym.adb.exe_BN_num_bytes
add esp, 4
test eax, eax
je 0x4775a1
lea ecx, [esp + 0x268]
mov edx, eax
mov dword [esp + 8], ecx
lea ecx, [edx*8 - 8]
dec edx
mov eax, dword [esp + 0xc]
mov ebx, dword [eax]
mov eax, edx
dec edx
and eax, 0xfffffffc
mov ebx, dword [ebx + eax]
mov eax, ecx
and cl, 0x18
add eax, 0xfffffff8
shr ebx, cl
mov ecx, dword [esp + 8]
mov byte [ecx], bl
inc ecx
cmp edx, 0xffffffff
mov dword [esp + 8], ecx
mov ecx, eax
jne 0x47730c
lea ecx, [esp + 0x12c]
lea edx, [esp + 0x288]
push str.ECDSA_R
push 0x20
call fcn.00477630
add esp, 8
test eax, eax
je 0x4775a1
lea ecx, [esp + 0x10c]
lea edx, [esp + 0x268]
push str.ECDSA_S
push 0x20
call fcn.00477630
add esp, 8
test eax, eax
je 0x4775a1
push 0x30
push 0x58e7b0
lea ebx, [esp + 0x28]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
movaps xmm0, xmmword [0x58cfb0]
lea eax, [esp + 0x2a8]
movups xmmword [esp + 0x21], xmm0
mov byte [esp + 0x31], 0x3a
mov byte [esp + 0x20], 0x53
mov byte [esp + 0x21], 0xf
movups xmm0, xmmword [esp + 0x22]
xorps xmm0, xmmword [0x58cfc0]
movups xmmword [esp + 0x22], xmm0
movups xmm0, xmmword [esp + 0x32]
xorps xmm0, xmmword [0x58cfd0]
movups xmmword [esp + 0x32], xmm0
xor byte [esp + 0x42], 3
xor byte [esp + 0x43], 0xca
xor byte [esp + 0x44], 0x37
xor byte [esp + 0x45], 0xa6
xor byte [esp + 0x46], 0x2a
xor byte [esp + 0x47], 0x74
xor byte [esp + 0x48], 0xd1
xor byte [esp + 0x49], 0xa2
xor byte [esp + 0x4a], 0xf5
xor byte [esp + 0x4b], 0x8e
xor byte [esp + 0x4c], 0x75
xor byte [esp + 0x4d], 6
xor byte [esp + 0x4e], 0x35
xor byte [esp + 0x4f], 0x8e
push eax
push 0x100
push ebx
call sym.adb.exe_AES_set_encrypt_key
add esp, 0xc
movq xmm0, qword [esp + 0x40]
movq xmm1, qword [esp + 0x48]
lea ebx, [esp + 0xfc]
mov dword [esp + 0x39c], sym.adb.exe_AES_encrypt
mov dword [esp + 0x3a0], 0
movq qword [esp + 0x3a4], xmm0
movq qword [esp + 0x3ac], xmm1
mov dword [esp + 0x3bc], 0
mov dword [esp + 0x3b8], 1
push 0x10
push ebx
push 0x40
lea eax, [esp + 0x15c]
push eax
lea eax, [esp + 0x2b8]
push eax
call sym.adb.exe_CTR_DRBG_generate
add esp, 0x14
test eax, eax
je 0x4775f9
lea ecx, [esp + 0x528]
lea edx, [esp + 0x150]
push str.DBRG_Generate_KAT
push 0x40
call fcn.00477630
add esp, 8
test eax, eax
je 0x4775f9
push 0x10
push ebx
lea eax, [esp + 0x3cc]
push eax
lea eax, [esp + 0x2b4]
push eax
call sym.adb.exe_CTR_DRBG_reseed
add esp, 0x10
test eax, eax
je 0x4775f9
push 0x10
push ebx
push 0x40
lea eax, [esp + 0x15c]
push eax
lea eax, [esp + 0x2b8]
push eax
call sym.adb.exe_CTR_DRBG_generate
add esp, 0x14
test eax, eax
je 0x4775f9
lea ecx, [esp + 0x4e8]
lea edx, [esp + 0x150]
push str.DRBG_Reseed_KAT
push 0x40
call fcn.00477630
add esp, 8
test eax, eax
je 0x4775f9
push 0x118
lea eax, [esp + 0x2ac]
push eax
call sym.adb.exe_OPENSSL_cleanse
add esp, 8
lea ebx, [esp + 0x940]
push 0x118
push 0
push ebx
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, ebx
lea edx, [esp + 0x2a8]
push str.DRBG_Clear_KAT
push 0x118
call fcn.00477630
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp], ecx
jmp 0x47707f
push 2
call dword [0x58040c]
add esp, 4
push str.ECDSA_KeyGen_failed_n
jmp 0x47706b
push 2
call dword [0x58040c]
add esp, 4
push str.ECDSA_KAT_failed._n
push eax
call fcn.00477610
add esp, 8
jmp 0x47707f
push 0x49
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x41
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
mov dword [edi + 0xc], 0
push 2
call dword [0x58040c]
add esp, 4
push str.Out_of_memory_n
push eax
call fcn.00477610
add esp, 8
jmp 0x477076
push 2
call dword [0x58040c]
add esp, 4
push str.CTR_DRBG_failed._n
jmp 0x4775b1