Function at 0x44c0e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov ebp, dword [esp + 0x7c]
mov edi, dword [ebp + 4]
test edi, edi
jle 0x44c0fc
mov esi, dword [ebp]
mov ebx, dword [esi]
test bl, 1
jne 0x44c10a
push 0x3a3
push str.external_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
push 0x68
jmp 0x44c142
cmp dword [ebp + 0xc], 0
je 0x44c11e
push 0x3a7
push str.external_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
push 0x6d
jmp 0x44c142
mov eax, dword [esp + 0x74]
cmp dword [eax + 0xc], 0
jne 0x44c136
push ebp
push eax
call sym.adb.exe_BN_ucmp
add esp, 8
test eax, eax
js 0x44c15a
push 0x3ab
push str.external_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
push 0x6b
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
xor ebx, ebx
mov eax, ebx
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x44c2b6
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
xor eax, eax
test edx, edx
jne 0x44c199
push esi
push ebp
mov edi, esi
mov esi, ecx
call sym.adb.exe_BN_MONT_CTX_new_consttime
mov ecx, esi
mov esi, edi
add esp, 8
test eax, eax
mov edx, eax
je 0x44c38c
mov dword [esp + 0x18], edx
mov edx, dword [edx + 0x18]
mov ebx, 6
cmp ecx, 0x1d
mov dword [esp + 8], eax
jg 0x44c1cd
mov ebx, 5
cmp ecx, 9
jg 0x44c1cd
mov ebx, 4
cmp ecx, 2
jg 0x44c1cd
xor eax, eax
test ecx, ecx
setg al
lea ebx, [eax + eax + 1]
mov dword [esp + 0x38], ecx
mov ebp, 1
mov ecx, ebx
mov edi, edx
lea eax, [edx + edx]
mov dword [esp], edx
shl ebp, cl
shl edi, cl
mov dword [esp + 0x14], eax
cmp eax, ebp
mov dword [esp + 0x3c], ebp
cmovge ebp, eax
add ebp, edi
lea eax, [ebp*4 + 0x40]
shl ebp, 2
push eax
call sym.adb.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x44c35f
mov ecx, eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x10], eax
and ecx, 0x3f
neg ecx
test ebp, ebp
lea ebx, [eax + ecx + 0x40]
je 0x44c231
push ebp
push 0
push ebx
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, dword [esp]
mov edx, dword [esp + 0x18]
lea eax, [ebx + edi*4]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0
lea eax, [eax + ecx*4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 2
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 2
mov eax, dword [edx + 0x18]
test eax, eax
jle 0x44c297
mov ecx, dword [edx + 0x14]
cmp dword [ecx + eax*4 - 4], 0
js 0x44c3a1
lea eax, [esp + 0x20]
push esi
push edx
push edx
push eax
mov edi, edx
call sym.adb.exe_BN_from_montgomery
add esp, 0x10
test eax, eax
jne 0x44c3fe
jmp 0x44c4f0
xor ebx, 1
cmp edi, 2
jl 0x44c324
lea ecx, [edi - 1]
mov eax, 1
cmp ecx, 8
jb 0x44c317
mov edx, ecx
movd xmm1, ebx
lea ebx, [esi + 0x14]
pxor xmm0, xmm0
and edx, 0xfffffff8
lea eax, [edx + 1]
mov ebp, edx
movdqu xmm2, xmmword [ebx - 0x10]
movdqu xmm3, xmmword [ebx]
add ebx, 0x20
add ebp, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x44c2e0
por xmm0, xmm1
cmp ecx, edx
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ebx, xmm0
je 0x44c324
sub edi, eax
lea eax, [esi + eax*4]
or ebx, dword [eax]
add eax, 4
dec edi
jne 0x44c31c
test ebx, ebx
je 0x44c370
push 1
mov esi, dword [esp + 0x74]
push esi
call fcn.00444800
add esp, 8
test eax, eax
je 0x44c14e
mov dword [esi + 0xc], 0
mov ebx, 1
mov eax, dword [esi]
mov dword [eax], 1
mov dword [esi + 4], 1
jmp 0x44c150
xor ebx, ebx
xor edi, edi
mov dword [esp + 0xc], 0
jmp 0x44cb1f
mov eax, dword [esp + 0x70]
mov ebx, 1
mov dword [eax + 0xc], 0
mov dword [eax + 4], 0
jmp 0x44c150
xor ebx, ebx
xor eax, eax
xor edi, edi
xor ebp, ebp
mov dword [esp + 0xc], 0
jmp 0x44cb23
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00444800
add esp, 8
test eax, eax
je 0x44c4f0
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 0x14]
sub ecx, dword [eax]
mov dword [edi], ecx
mov ecx, dword [edx + 0x18]
cmp ecx, 2
jl 0x44c3f0
mov eax, 1
mov ecx, dword [edx + 0x14]
mov edx, dword [esp + 0x20]
mov ecx, dword [ecx + eax*4]
not ecx
mov dword [edx + eax*4], ecx
mov edx, dword [esp + 0x18]
inc eax
mov ecx, dword [edx + 0x18]
cmp eax, ecx
jl 0x44c3d5
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], 0
mov edi, edx
lea eax, [esp + 0x44]
push esi
push edi
push edi
push dword [esp + 0x80]
push eax
call sym.adb.exe_BN_mod_mul_montgomery
add esp, 0x14
xor ebx, ebx
test eax, eax
je 0x44cb1b
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x1c], ebp
je 0x44c4f7
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
mov ebp, dword [esp]
cmp dword [esp + 0x50], 0
jne 0x44c627
mov edi, dword [esp + 0x48]
mov edx, edi
sub edx, ebp
jbe 0x44c5a9
mov esi, dword [esp + 0x44]
xor eax, eax
cmp edx, 8
mov ecx, ebp
jb 0x44c4c8
mov ecx, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and ecx, 0xfffffff8
lea eax, [ebp + ecx]
mov dword [esp + 4], eax
lea eax, [esi + ebp*4 + 0x10]
mov ebp, ecx
movdqu xmm2, xmmword [eax - 0x10]
movdqu xmm3, xmmword [eax]
add eax, 0x20
add ebp, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x44c48a
por xmm1, xmm0
cmp edx, ecx
mov ebp, dword [esp]
mov ecx, dword [esp + 4]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd eax, xmm1
je 0x44c4d5
sub edi, ecx
lea ecx, [esi + ecx*4]
or eax, dword [ecx]
add ecx, 4
dec edi
jne 0x44c4cd
test eax, eax
mov edi, ebp
je 0x44c5a9
push 0x143
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
jmp 0x44c633
xor ebx, ebx
jmp 0x44cb1b
mov edi, dword [esp + 0x24]
mov ebp, dword [esp]
mov edx, edi
sub edx, ebp
jbe 0x44c5ea
mov esi, dword [esp + 0x20]
xor eax, eax
cmp edx, 8
mov ecx, ebp
jb 0x44c56e
mov ecx, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and ecx, 0xfffffff8
lea eax, [ebp + ecx]
mov dword [esp + 4], eax
lea eax, [esi + ebp*4 + 0x10]
mov ebp, ecx
movdqu xmm2, xmmword [eax - 0x10]
movdqu xmm3, xmmword [eax]
add eax, 0x20
add ebp, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x44c530
por xmm1, xmm0
cmp edx, ecx
mov ebp, dword [esp]
mov ecx, dword [esp + 4]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd eax, xmm1
je 0x44c57b
sub edi, ecx
lea ecx, [esi + ecx*4]
or eax, dword [ecx]
add ecx, 4
dec edi
jne 0x44c573
test eax, eax
mov edi, ebp
je 0x44c5ea
push 0x143
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
cmp dword [esp + 0x50], 0
jne 0x44c627
jmp 0x44c454
mov eax, dword [esp + 0xc]
mov ecx, ebp
lea ebp, [eax + ebp*4]
lea eax, [ecx*4]
test eax, eax
je 0x44c5c9
push eax
push 0
push ebp
call sub.msvcrt.dll_memset
add esp, 0xc
shl edi, 2
test edi, edi
je 0x44c63f
push edi
push dword [esp + 0x48]
push ebp
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x40], 2
jae 0x44c64a
jmp 0x44c8d8
lea eax, [ebp*4]
test eax, eax
je 0x44c604
push eax
push 0
push dword [esp + 0x14]
call sub.msvcrt.dll_memset
add esp, 0xc
shl edi, 2
test edi, edi
je 0x44c61c
push edi
push dword [esp + 0x24]
push dword [esp + 0x14]
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x50], 0
je 0x44c454
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
cmp dword [esp + 0x40], 2
jb 0x44c8d8
lea ecx, [esp + 0x20]
push dword [esp + 0x80]
push dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push eax
push eax
push ecx
call sym.adb.exe_BN_mod_mul_montgomery
add esp, 0x14
mov ebp, dword [esp + 0x1c]
test eax, eax
je 0x44cb1b
cmp dword [esp + 0x2c], 0
je 0x44c7f4
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
cmp dword [esp + 0x3c], 4
jl 0x44c8d8
mov eax, dword [esp]
mov ebp, 3
lea esi, [eax*4]
lea eax, [eax + 4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], esi
push dword [esp + 0x80]
push dword [esp + 0x1c]
lea eax, [esp + 0x28]
mov ecx, eax
push eax
lea eax, [esp + 0x50]
push eax
push ecx
call sym.adb.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x44cb17
cmp dword [esp + 0x2c], 0
je 0x44c70f
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
inc ebp
cmp ebp, dword [esp + 0x3c]
jl 0x44c6bc
jmp 0x44c8d8
mov edi, dword [esp + 0x24]
mov eax, dword [esp]
mov edx, edi
sub edx, eax
jbe 0x44c7b5
mov esi, dword [esp + 0x20]
xor ecx, ecx
cmp edx, 8
jb 0x44c790
mov eax, dword [esp]
mov ecx, esi
mov esi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and esi, 0xfffffff8
mov dword [esp + 4], ecx
lea eax, [eax + esi]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x58]
lea ecx, [ecx + eax*4]
mov eax, esi
movdqu xmm2, xmmword [ecx - 0x10]
movdqu xmm3, xmmword [ecx]
add ecx, 0x20
add eax, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x44c751
por xmm1, xmm0
cmp edx, esi
mov esi, dword [esp + 4]
mov eax, dword [esp + 0x34]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x44c79d
sub edi, eax
lea eax, [esi + eax*4]
or ecx, dword [eax]
add eax, 4
dec edi
jne 0x44c795
mov edi, dword [esp]
test ecx, ecx
je 0x44c7b5
push 0x143
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
jmp 0x44c6f7
mov eax, ebp
mov ecx, dword [esp + 0xc]
imul eax, dword [esp]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x44c7d6
push eax
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
shl edi, 2
test edi, edi
je 0x44c703
push edi
push dword [esp + 0x24]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x44c703
mov edi, dword [esp + 0x24]
mov ebp, dword [esp]
mov edx, edi
sub edx, ebp
jbe 0x44c88f
mov esi, dword [esp + 0x20]
xor eax, eax
cmp edx, 8
mov ecx, ebp
jb 0x44c86b
mov ecx, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and ecx, 0xfffffff8
lea eax, [ebp + ecx]
mov dword [esp + 4], eax
lea eax, [esi + ebp*4 + 0x10]
mov ebp, ecx
movdqu xmm2, xmmword [eax - 0x10]
movdqu xmm3, xmmword [eax]
add eax, 0x20
add ebp, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x44c82d
por xmm1, xmm0
cmp edx, ecx
mov ebp, dword [esp]
mov ecx, dword [esp + 4]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd eax, xmm1
je 0x44c878
sub edi, ecx
lea ecx, [esi + ecx*4]
or eax, dword [ecx]
add ecx, 4
dec edi
jne 0x44c870
test eax, eax
mov edi, ebp
je 0x44c88f
push 0x143
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
jmp 0x44c68b
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
lea ebp, [eax + ecx*4]
mov eax, dword [esp]
lea eax, [eax*4]
test eax, eax
je 0x44c8b4
push eax
push 0
push ebp
call sub.msvcrt.dll_memset
add esp, 0xc
shl edi, 2
test edi, edi
je 0x44c697
push edi
push dword [esp + 0x24]
push ebp
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x3c], 4
jge 0x44c6a2
mov eax, dword [esp + 0x38]
xor ebx, ebx
shl eax, 5
dec eax
mov ecx, eax
cdq
idiv dword [esp + 0x40]
test edx, edx
js 0x44c928
inc edx
xor edi, edi
mov eax, edi
add eax, edi
test ecx, ecx
mov edi, 0
js 0x44c91e
mov edi, dword [esp + 0x78]
mov esi, ecx
shr esi, 5
cmp esi, dword [edi + 4]
mov edi, 0
jae 0x44c91e
mov edi, dword [esp + 0x78]
mov edi, dword [edi]
mov edi, dword [edi + esi*4]
shr edi, cl
and edi, 1
dec edx
or edi, eax
dec ecx
test edx, edx
jg 0x44c8f0
jmp 0x44c92a
xor edi, edi
mov esi, dword [esp]
mov dword [esp + 0x38], ecx
lea eax, [esp + 0x20]
push esi
push eax
call fcn.00444800
add esp, 8
test eax, eax
je 0x44cb17
lea esi, [esi*4]
test esi, esi
je 0x44c961
push esi
push 0
push dword [esp + 0x28]
call sub.msvcrt.dll_memset
add esp, 0xc
mov edx, dword [esp + 0xc]
mov ebp, dword [esp]
mov dword [esp + 0x14], edi
xor edi, 0x80000000
xor ecx, ecx
mov dword [esp + 0x34], esi
mov dword [esp + 4], edi
test ebp, ebp
jle 0x44c9a1
mov edi, ecx
xor ebx, ebx
xor edi, dword [esp + 0x14]
dec edi
and edi, dword [esp + 4]
sar edi, 0x1f
mov eax, dword [edx + ebx*4]
mov esi, dword [esp + 0x20]
and eax, edi
or dword [esi + ebx*4], eax
inc ebx
cmp ebp, ebx
jne 0x44c990
mov esi, dword [esp + 0x34]
inc ecx
add edx, esi
cmp ecx, dword [esp + 0x3c]
jl 0x44c97c
mov eax, dword [esp]
mov esi, dword [esp + 0x80]
lea ebp, [esp + 0x20]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x38], 0
js 0x44cafa
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x14], 0
push esi
push dword [esp + 0x1c]
push ebp
push ebp
push ebp
call sym.adb.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x44cb17
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
xor ecx, ecx
add eax, eax
test edx, edx
mov dword [esp + 4], eax
js 0x44ca28
mov ecx, dword [esp + 0x78]
mov eax, edx
shr eax, 5
cmp eax, dword [ecx + 4]
mov ecx, 0
jae 0x44ca28
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
mov ecx, edx
shr eax, cl
mov ecx, eax
and ecx, 1
inc edi
or ecx, dword [esp + 4]
dec edx
cmp edi, dword [esp + 0x40]
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], ecx
jb 0x44c9d7
push dword [esp]
lea eax, [esp + 0x48]
push eax
call fcn.00444800
add esp, 8
test eax, eax
je 0x44cb15
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
test eax, eax
je 0x44ca6f
push eax
push 0
push dword [esp + 0x4c]
call sub.msvcrt.dll_memset
add esp, 0xc
xor dword [esp + 4], 0x80000000
xor eax, eax
mov ecx, esi
mov ebp, dword [esp]
test ebp, ebp
jle 0x44cab1
mov edx, eax
xor edi, edi
xor edx, dword [esp + 0x14]
dec edx
and edx, dword [esp + 4]
sar edx, 0x1f
nop word cs:[eax + eax]
nop dword [eax]
mov esi, dword [ecx + edi*4]
mov ebx, dword [esp + 0x44]
and esi, edx
or dword [ebx + edi*4], esi
inc edi
cmp ebp, edi
jne 0x44caa0
inc eax
add ecx, dword [esp + 0x34]
cmp eax, dword [esp + 0x3c]
jl 0x44ca7b
mov eax, dword [esp]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x48], eax
push esi
push dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push eax
lea ebp, [esp + 0x2c]
push ebp
push ebp
call sym.adb.exe_BN_mod_mul_montgomery
add esp, 0x14
xor ebx, ebx
test eax, eax
jne 0x44c9c0
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp 0x44cb23
push esi
push dword [esp + 0x1c]
push ebp
push dword [esp + 0x7c]
call sym.adb.exe_BN_from_montgomery
add esp, 0x10
xor ebx, ebx
test eax, eax
setne bl
jmp 0x44cb17
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 8]
push eax
call sym.adb.exe_BN_MONT_CTX_free
add esp, 4
test edi, edi
jne 0x44cb44
cmp dword [esp + 0xc], 0
je 0x44cb44
push ebp
push dword [esp + 0x10]
call sym.adb.exe_OPENSSL_cleanse
add esp, 8
push edi
call sym.adb.exe_OPENSSL_free
add esp, 4
jmp 0x44c150