Function at 0x479530
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, 0x820
lea eax, [esp + 0x540]
mov dword [esp + 0x118], 0x20444120
mov dword [esp + 0x114], 0x54414b20
mov dword [esp + 0x110], 0x47425244
mov dword [esp + 0x10c], 0x204d4342
push 0x40
push 0x57c620
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x2c4]
push 0x30
push str.BCM_Known_Answer_Test_DBRG_Reseed_Entropy
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x500]
push 0x40
push 0x57c690
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movaps xmm0, xmmword [str.iroBrCgnotpyyeK_BoringCryptoModule_FIPS_KAT_Encryption_and_Decryption_Plaintext_]
mov edi, 0x426f7269
mov eax, 0xffffffd8
mov esi, 0xff00
mov dword [esp + 0x3e4], 0xa
mov dword [esp + 0x158], 0xcf5a78b
mov dword [esp + 0x154], 0x155436a8
mov dword [esp + 0x150], 0x3f7f0287
mov dword [esp + 0x14c], 0x98ebadde
mov dword [esp + 0x148], 0x74b17b87
mov dword [esp + 0x144], 0xe7a06170
mov dword [esp + 0x140], 0x2c5e2770
mov dword [esp + 0x13c], 0xfcc58067
mov dword [esp + 0x138], 0xd87f41c2
mov dword [esp + 0x134], 0x3feae581
mov dword [esp + 0x130], 0xccf01ac4
mov dword [esp + 0x12c], 0xef8f7dda
mov dword [esp + 0x128], 0x7786d94d
mov dword [esp + 0x124], 0xbaa62577
mov dword [esp + 0x120], 0x8d4be791
mov dword [esp + 0x11c], 0x23e093a5
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
movups xmmword [esp + 0x2f4], xmm0
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ebx, dword [esp + eax*4 + 0x3a0]
mov edx, 0xff0000
movzx ecx, bh
mov ecx, dword [ecx*4 + 0x57d468]
and ecx, edx
xor ecx, edi
movzx edi, bl
mov edx, dword [edi*4 + 0x57c868]
and edx, esi
xor edx, ecx
mov ecx, ebx
shr ecx, 0x18
movzx edi, byte [ecx*4 + 0x57cc68]
mov ecx, ebx
shr ecx, 0xe
and ecx, 0x3fc
mov ecx, dword [ecx + 0x57d068]
xor edi, edx
mov edx, 0xff000000
and ecx, edx
xor edi, ecx
xor edi, dword [eax + 0x57e990]
mov dword [esp + eax*4 + 0x3a4], edi
mov ecx, dword [esp + eax*4 + 0x398]
xor ecx, edi
mov dword [esp + eax*4 + 0x3a8], ecx
xor ecx, dword [esp + eax*4 + 0x39c]
mov dword [esp + eax*4 + 0x3ac], ecx
xor ecx, ebx
mov dword [esp + eax*4 + 0x3b0], ecx
add eax, 4
jne 0x4796b0
movaps xmm0, xmmword [0x57ad00]
lea edi, [esp + 0x2f4]
lea esi, [esp + 0x180]
movups xmmword [esp + 0x180], xmm0
push edi
push esi
push esi
call sym.adb.exe_AES_encrypt
add esp, 0xc
movups xmm0, xmmword [esp + 0x180]
lea eax, [esp + 0x190]
xorps xmm0, xmmword [0x57ad10]
movups xmmword [esp + 0x190], xmm0
push edi
push eax
push eax
call sym.adb.exe_AES_encrypt
add esp, 0xc
movups xmm0, xmmword [esp + 0x190]
lea eax, [esp + 0x1a0]
xorps xmm0, xmmword [0x57ad20]
movups xmmword [esp + 0x1a0], xmm0
push edi
push eax
push eax
call sym.adb.exe_AES_encrypt
add esp, 0xc
movdqu xmm0, xmmword [esp + 0x1a0]
lea ebx, [esp + 0x1b0]
pxor xmm0, xmmword [0x57ad30]
movdqu xmmword [esp + 0x1b0], xmm0
push edi
push ebx
push ebx
call sym.adb.exe_AES_encrypt
add esp, 0xc
mov ecx, 0x57c384
mov edx, esi
push str.AES_CBC_Encryption_KAT
push 0x40
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x479a81
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
jne 0x479a81
mov eax, 0x57c384
cmp eax, 0x20
jb 0x47982f
cmp esi, 0x57c364
jbe 0x4798a3
cmp esi, 0x57c384
ja 0x4798a3
lea eax, [esp + 0x38]
lea ecx, [esp + 0x3c]
lea ebx, [esp + 0x30]
lea esi, [esp + 0x34]
mov dword [esp], eax
mov dword [esp + 4], ecx
push edi
push ebx
push 0x57c384
call sym.adb.exe_AES_decrypt
add esp, 0xc
movaps xmm0, xmmword [esp + 0x30]
movups xmmword [esp + 0x180], xmm0
push edi
push ebx
push 0x57c394
call sym.adb.exe_AES_decrypt
add esp, 0xc
movaps xmm0, xmmword [esp + 0x30]
xorps xmm0, xmmword [0x57ad40]
movups xmmword [esp + 0x190], xmm0
push edi
push ebx
push 0x57c3a4
call sym.adb.exe_AES_decrypt
add esp, 0xc
movaps xmm0, xmmword [esp + 0x30]
jmp 0x47991b
lea ecx, [esp + 0x1b8]
lea edx, [esp + 0x1bc]
lea eax, [esp + 0x1b4]
mov dword [esp], ecx
mov dword [esp + 4], edx
push edi
push esi
mov esi, eax
push 0x57c384
call sym.adb.exe_AES_decrypt
add esp, 0xc
push edi
lea eax, [esp + 0x194]
push eax
push 0x57c394
call sym.adb.exe_AES_decrypt
add esp, 0xc
movups xmm0, xmmword [esp + 0x190]
xorps xmm0, xmmword [0x57ad40]
movups xmmword [esp + 0x190], xmm0
push edi
lea eax, [esp + 0x1a4]
push eax
push 0x57c3a4
call sym.adb.exe_AES_decrypt
add esp, 0xc
movups xmm0, xmmword [esp + 0x1a0]
xorps xmm0, xmmword [0x57ad50]
movups xmmword [esp + 0x1a0], xmm0
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], 0x57c3b4
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 + 0x180]
mov ecx, 0x57c344
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 [0x57ad60]
movdqu xmmword [esp + 0x1b0], xmm2
push str.AES_CBC_Decryption_KAT
push 0x40
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x479a81
pxor xmm0, xmm0
mov dword [esp + 0x174], 0
mov dword [esp + 0x170], 0
movdqa xmmword [esp + 0x160], xmm0
push 0x45e920
push 0x5c445c
call sym.adb.exe_CRYPTO_once
add esp, 8
mov ecx, dword [0x5c4468]
test ecx, ecx
je 0x479a59
cmp byte [0x5c4460], 0x10
jne 0x479a64
lea edi, [esp + 0x10]
mov dword [esp + 0x10], 0x5c4460
push 0
push 0x10
push str.BoringCrypto_KeyBoringCryptoModule_FIPS_KAT_Encryption_and_Decryption_Plaintext_
push edi
call ecx
add esp, 0x10
test eax, eax
je 0x479a79
push 0x45e920
push 0x5c445c
call sym.adb.exe_CRYPTO_once
add esp, 8
movzx eax, byte [0x5c4461]
cmp esi, 0x57c384
jae 0x479ad0
lea ecx, [esp + 0x280]
cmp ecx, 0x57c344
jbe 0x479ad0
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 0x47a141
push 0x3e
push str.external_boringssl_src_crypto_fipsmodule_cipher_aead.c
push 0x7c
jmp 0x479a6d
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 + 0x10], 0
xor edi, edi
mov dword [esp], 0
xor esi, esi
xor ebx, ebx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x479aa9
lea ecx, [esp + 0x10]
push ecx
call dword [eax + 0x10]
add esp, 4
mov dword [esp + 0x10], 0
push edi
call sym.adb.exe_RSA_free
add esp, 4
push dword [esp]
call sym.adb.exe_EC_KEY_free
add esp, 4
push esi
call sym.adb.exe_ECDSA_SIG_free
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x160]
lea ebx, [esp + 0x30]
push 0
push 0
push 0
push 0
push 0x40
push 0x57c344
push eax
push edx
push 0xc0
push ebx
lea eax, [esp + 0x1e8]
push eax
push esi
push edi
call dword [ecx + 0x18]
add esp, 0x34
test eax, eax
je 0x47a141
mov eax, dword [esp + 0x30]
lea esi, [esp + 0x180]
mov ecx, 0x57c3c4
mov edx, esi
add eax, 0x40
mov dword [esp + 0x2c], eax
push str.AES_GCM_Encryption_KAT
push 0x50
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x479a81
push 0x45e920
push 0x5c445c
call sym.adb.exe_CRYPTO_once
add esp, 8
movzx eax, byte [0x5c4461]
lea ecx, [esp + 0x2c]
push 0
push 0
push 0x50
push 0x57c3c4
push eax
lea eax, [esp + 0x174]
push eax
push 0x100
push ecx
push esi
push edi
call sym.adb.exe_EVP_AEAD_CTX_open
add esp, 0x28
test eax, eax
je 0x479a81
lea edx, [esp + 0x180]
mov ecx, 0x57c344
push str.AES_GCM_Decryption_KAT
push 0x40
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x479a81
lea ebx, [esp + 0x680]
push ebx
push 0x57c414
call sym.adb.exe_DES_set_key
add esp, 8
lea esi, [esp + 0x600]
push esi
push 0x57c41c
call sym.adb.exe_DES_set_key
add esp, 8
lea edi, [esp + 0x580]
push edi
push 0x57c424
call sym.adb.exe_DES_set_key
add esp, 8
mov dword [esp + 0x24], 0x56495345
mov dword [esp + 0x20], 0x444d4342
lea ecx, [esp + 0x20]
push 1
push ecx
push edi
push esi
lea esi, [esp + 0x190]
push ebx
push 0x40
push esi
push 0x57c344
call sym.adb.exe_DES_ede3_cbc_encrypt
add esp, 0x20
mov ecx, 0x57c42c
mov edx, esi
push str.3DES_Encryption_KAT
push 0x40
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x479a81
mov eax, 0x56495345
mov ecx, 0x444d4342
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
push 0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x588]
push eax
lea eax, [esp + 0x60c]
push eax
lea eax, [esp + 0x690]
push eax
push 0x40
push esi
push 0x57c42c
call sym.adb.exe_DES_ede3_cbc_encrypt
add esp, 0x20
mov ecx, 0x57c344
mov edx, esi
push str.3DES_Decryption_KAT
push 0x40
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x479a81
movdqa xmm0, xmmword [0x57ad70]
mov edi, esi
lea esi, [esp + 0x30]
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 + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x8c], 0
mov edx, 0x57c344
mov ecx, esi
movdqu xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0xc3d2e1f0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0x200
push 1
call fcn.0047ad50
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, 0x57c46c
mov edx, edi
push str.SHA_1_KAT
push 0x14
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x479a81
movdqa xmm0, xmmword [0x57ad80]
movdqa xmm1, xmmword [0x57ad90]
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 + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x98], 0
mov edx, 0x57c344
mov ecx, esi
movdqu xmmword [esp + 0x30], xmm0
movdqu xmmword [esp + 0x40], xmm1
mov dword [esp + 0x9c], 0x20
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0x200
push 1
call fcn.0047c420
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, 0x57c480
mov edx, edi
push str.SHA_256_KAT
push 0x20
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x479a81
movdqa xmm0, xmmword [0x57ada0]
movaps xmm2, xmmword [0x57adb0]
movaps xmm1, xmmword [0x57adc0]
mov ecx, 0x200
lea eax, [esp + 0x80]
movdqu xmmword [esp + 0x30], xmm0
movups xmmword [esp + 0x40], xmm2
movdqa xmm2, xmmword [0x57add0]
movups xmmword [esp + 0x50], xmm1
movd xmm1, ecx
movdqu xmmword [esp + 0x60], xmm2
mov dword [esp + 0x104], 0x40
movdqu xmmword [esp + 0x70], xmm1
push 0x40
push 0x57c344
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x100], 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, 0x57c4a0
mov edx, edi
push str.SHA_512_KAT
push 0x40
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x479a81
push 0
call sym.adb.exe_RSA_new_method
add esp, 4
mov ecx, eax
test eax, eax
je 0x47a1e2
push 0
push 0x100
push 0x58137b
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 0x47a1e2
push 0
push 3
push 0x58147b
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 8], eax
je 0x47a1e2
push 0
push 0x100
push 0x58147e
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0xc], eax
je 0x47a1e2
push 0
push pe_nt_image_headers32
push 0x58157e
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x10], eax
je 0x47a1e2
push 0
push pe_nt_image_headers32
push 0x5815fe
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x14], eax
je 0x47a1e2
push 0
push pe_nt_image_headers32
push 0x58167e
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x18], eax
je 0x47a1e2
push 0
push pe_nt_image_headers32
push 0x5816fe
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x1c], eax
je 0x47a1e2
push 0
push pe_nt_image_headers32
push 0x58177e
call sym.adb.exe_BN_bin2bn
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x20], eax
je 0x47a1e2
or byte [ecx + 0x2c], 8
lea eax, [esp + 0x15c]
push ecx
push eax
push edi
push 0x20
push 0x57c480
push 0x2a0
call sym.adb.exe_RSA_sign
add esp, 0x18
test eax, eax
je 0x47a381
lea edx, [esp + 0x180]
mov ecx, 0x57c4e0
push str.RSA_Sign_KAT
push 0x100
call fcn.0047a7b0
add esp, 8
xor ebx, ebx
test eax, eax
je 0x47a206
push dword [esp + 4]
push 0x100
push 0x57c4e0
push 0x20
push 0x57c480
push 0x2a0
call sym.adb.exe_RSA_verify
add esp, 0x18
test eax, eax
je 0x47a214
push 0
call sym.adb.exe_EC_KEY_new_method
add esp, 4
test eax, eax
mov dword [esp], eax
je 0x47a226
push 0x19f
call sym.adb.exe_EC_GROUP_new_by_curve_name
add esp, 4
mov ecx, dword [esp]
test eax, eax
mov dword [ecx], eax
jne 0x47a245
push dword [esp]
call sym.adb.exe_EC_KEY_free
add esp, 4
jmp 0x47a23e
pxor xmm0, xmm0
mov dword [esp + 0x2c], 0
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
movdqa xmmword [esp + 0x1a0], xmm0
movdqa xmmword [esp + 0x190], xmm0
movdqa xmmword [esp + 0x180], xmm0
jmp 0x479a81
push ecx
call sym.adb.exe_RSA_free
add esp, 4
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str.RSA_KeyGen_failed_n
push eax
call fcn.0047a990
add esp, 8
jmp 0x479a81
mov dword [esp], 0
xor esi, esi
jmp 0x47a38c
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str.RSA_Verify_KAT_failed._n
jmp 0x47a378
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
mov dword [esp], 0
push 0
push 0x20
push 0x5817fe
call sym.adb.exe_BN_bin2bn
add esp, 0xc
mov esi, eax
push 0
push 0x20
push 0x58181e
call sym.adb.exe_BN_bin2bn
add esp, 0xc
mov edi, eax
push 0
push 0x20
push 0x58183e
call sym.adb.exe_BN_bin2bn
add esp, 0xc
cmp dword [esp], 0
mov dword [esp + 8], eax
je 0x47a2bb
test esi, esi
je 0x47a2bb
test edi, edi
je 0x47a2bb
cmp dword [esp + 8], 0
je 0x47a2bb
push edi
push esi
push dword [esp + 8]
call sym.adb.exe_EC_KEY_set_public_key_affine_coordinates
add esp, 0xc
test eax, eax
je 0x47a2bb
push dword [esp + 8]
push dword [esp + 4]
call sym.adb.exe_EC_KEY_set_private_key
add esp, 8
test eax, eax
jne 0x47a2cd
push dword [esp]
call sym.adb.exe_EC_KEY_free
add esp, 4
mov dword [esp], 0
test esi, esi
je 0x47a2fe
mov eax, dword [esi + 0x10]
test al, 2
jne 0x47a2e5
push dword [esi]
call sym.adb.exe_OPENSSL_free
add esp, 4
mov eax, dword [esi + 0x10]
test al, 1
jne 0x47a2f5
mov dword [esi], 0
test edi, edi
jne 0x47a302
jmp 0x47a334
push esi
call sym.adb.exe_OPENSSL_free
add esp, 4
test edi, edi
je 0x47a334
mov eax, dword [edi + 0x10]
test al, 2
jne 0x47a318
mov esi, edi
push dword [edi]
call sym.adb.exe_OPENSSL_free
add esp, 4
mov eax, dword [edi + 0x10]
test al, 1
jne 0x47a32b
mov dword [edi], 0
cmp dword [esp + 8], 0
jne 0x47a33b
jmp 0x47a3a1
push edi
call sym.adb.exe_OPENSSL_free
add esp, 4
cmp dword [esp + 8], 0
je 0x47a3a1
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
test al, 2
jne 0x47a357
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 0x47a395
mov eax, dword [esp + 8]
mov dword [eax], 0
cmp dword [esp], 0
jne 0x47a3a7
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str.ECDSA_KeyGen_failed_n
push eax
call fcn.0047a990
add esp, 8
mov dword [esp], 0
xor esi, esi
xor ebx, ebx
mov edi, dword [esp + 4]
jmp 0x479a8e
push dword [esp + 8]
call sym.adb.exe_OPENSSL_free
add esp, 4
cmp dword [esp], 0
je 0x47a36b
push 0x14
call sym.adb.exe_OPENSSL_malloc
add esp, 4
mov esi, eax
test eax, eax
je 0x47a769
mov eax, dword [esp]
mov dword [esi + 4], 0
mov dword [esi], 0
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 0x10], 1
mov dword [eax + 0xc], esi
push 1
push esi
call fcn.00447880
add esp, 8
test eax, eax
je 0x47a788
mov dword [esi + 0xc], 0
mov eax, dword [esi]
mov dword [eax], 0x2a
mov dword [esi + 4], 1
push dword [esp]
push 0x20
push 0x57c480
call sym.adb.exe_ECDSA_do_sign
add esp, 0xc
mov esi, eax
test eax, eax
je 0x47a74e
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 0x47a74e
push dword [esp + 0xc]
call sym.adb.exe_BN_num_bytes
add esp, 4
mov edi, eax
test eax, eax
je 0x47a74e
lea eax, [esp + 0x2a4]
lea ecx, [edi*8 - 8]
dec edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax]
mov eax, edi
dec edi
and eax, 0xfffffffc
mov edx, dword [edx + eax]
mov eax, ecx
and cl, 0x18
add eax, 0xfffffff8
shr edx, cl
mov ecx, dword [esp + 8]
mov byte [ecx], dl
inc ecx
cmp edi, 0xffffffff
mov dword [esp + 8], ecx
mov ecx, eax
jne 0x47a469
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 0x47a74e
push dword [esp + 0xc]
call sym.adb.exe_BN_num_bytes
add esp, 4
mov edi, eax
test eax, eax
je 0x47a74e
lea eax, [esp + 0x284]
lea ecx, [edi*8 - 8]
dec edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax]
mov eax, edi
dec edi
and eax, 0xfffffffc
mov edx, dword [edx + eax]
mov eax, ecx
and cl, 0x18
add eax, 0xfffffff8
shr edx, cl
mov ecx, dword [esp + 8]
mov byte [ecx], dl
inc ecx
cmp edi, 0xffffffff
mov dword [esp + 8], ecx
mov ecx, eax
jne 0x47a4d6
lea ecx, [esp + 0x13c]
lea edx, [esp + 0x2a4]
push str.ECDSA_R
push 0x20
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x47a74e
lea ecx, [esp + 0x11c]
lea edx, [esp + 0x284]
push str.ECDSA_S
push 0x20
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x47a74e
push 0x30
push 0x57c5e0
lea edi, [esp + 0x38]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movaps xmm0, xmmword [0x57ade0]
lea eax, [esp + 0x3e8]
movups xmmword [esp + 0x31], xmm0
mov byte [esp + 0x41], 0x3a
mov byte [esp + 0x30], 0x53
mov byte [esp + 0x31], 0xf
movups xmm0, xmmword [esp + 0x32]
xorps xmm0, xmmword [0x57adf0]
movups xmmword [esp + 0x32], xmm0
movups xmm0, xmmword [esp + 0x42]
xorps xmm0, xmmword [0x57ae00]
movups xmmword [esp + 0x42], xmm0
xor byte [esp + 0x52], 3
xor byte [esp + 0x53], 0xca
xor byte [esp + 0x54], 0x37
xor byte [esp + 0x55], 0xa6
xor byte [esp + 0x56], 0x2a
xor byte [esp + 0x57], 0x74
xor byte [esp + 0x58], 0xd1
xor byte [esp + 0x59], 0xa2
xor byte [esp + 0x5a], 0xf5
xor byte [esp + 0x5b], 0x8e
xor byte [esp + 0x5c], 0x75
xor byte [esp + 0x5d], 6
xor byte [esp + 0x5e], 0x35
xor byte [esp + 0x5f], 0x8e
push eax
push 0x100
push edi
call sym.adb.exe_AES_set_encrypt_key
add esp, 0xc
movq xmm0, qword [esp + 0x50]
movq xmm1, qword [esp + 0x58]
lea edi, [esp + 0x10c]
mov dword [esp + 0x4dc], 0x444cb0
mov dword [esp + 0x4e0], 0
movq qword [esp + 0x4e4], xmm0
movq qword [esp + 0x4ec], xmm1
mov dword [esp + 0x4fc], 0
mov dword [esp + 0x4f8], 1
push 0x10
push edi
push 0x40
lea eax, [esp + 0x18c]
push eax
lea eax, [esp + 0x3f8]
push eax
call sym.adb.exe_CTR_DRBG_generate
add esp, 0x14
test eax, eax
je 0x47a38c
lea ecx, [esp + 0x540]
lea edx, [esp + 0x180]
push str.DBRG_Generate_KAT
push 0x40
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x47a38c
push 0x10
push edi
lea eax, [esp + 0x2cc]
push eax
lea eax, [esp + 0x3f4]
push eax
call sym.adb.exe_CTR_DRBG_reseed
add esp, 0x10
test eax, eax
je 0x47a38c
push 0x10
push edi
push 0x40
lea eax, [esp + 0x18c]
push eax
lea eax, [esp + 0x3f8]
push eax
call sym.adb.exe_CTR_DRBG_generate
add esp, 0x14
test eax, eax
je 0x47a38c
lea ecx, [esp + 0x500]
lea edx, [esp + 0x180]
push str.DRBG_Reseed_KAT
push 0x40
call fcn.0047a7b0
add esp, 8
test eax, eax
je 0x47a38c
push 0x118
lea edi, [esp + 0x3ec]
push edi
call sym.adb.exe_OPENSSL_cleanse
add esp, 8
lea ebx, [esp + 0x700]
push 0x118
push 0
push ebx
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, ebx
mov edx, edi
push str.DRBG_Clear_KAT
push 0x118
call fcn.0047a7b0
add esp, 8
xor ebx, ebx
test eax, eax
setne bl
jmp 0x47a38c
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str.ECDSA_KAT_failed._n
push eax
call fcn.0047a990
add esp, 8
jmp 0x47a38c
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 eax, dword [esp]
mov dword [eax + 0xc], 0
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str.Out_of_memory_n
push eax
call fcn.0047a990
add esp, 8
jmp 0x47a388