Function at 0x43c980
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 0x43c99c
mov esi, dword [ebp]
mov ebx, dword [esi]
test bl, 1
jne 0x43c9aa
push 0x3a3
push str.external_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
push 0x68
jmp 0x43c9e2
cmp dword [ebp + 0xc], 0
je 0x43c9be
push 0x3a7
push str.external_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
push 0x6d
jmp 0x43c9e2
mov eax, dword [esp + 0x74]
cmp dword [eax + 0xc], 0
jne 0x43c9d6
push ebp
push eax
call sym.fastboot.exe_BN_ucmp
add esp, 8
test eax, eax
js 0x43c9fa
push 0x3ab
push str.external_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
push 0x6b
push 0
push 3
call sym.fastboot.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 0x43cb56
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
xor eax, eax
test edx, edx
jne 0x43ca39
push esi
push ebp
mov edi, esi
mov esi, ecx
call sym.fastboot.exe_BN_MONT_CTX_new_consttime
mov ecx, esi
mov esi, edi
add esp, 8
test eax, eax
mov edx, eax
je 0x43cc2c
mov dword [esp + 0x18], edx
mov edx, dword [edx + 0x18]
mov ebx, 6
cmp ecx, 0x1d
mov dword [esp + 8], eax
jg 0x43ca6d
mov ebx, 5
cmp ecx, 9
jg 0x43ca6d
mov ebx, 4
cmp ecx, 2
jg 0x43ca6d
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.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x43cbff
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 0x43cad1
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 0x43cb37
mov ecx, dword [edx + 0x14]
cmp dword [ecx + eax*4 - 4], 0
js 0x43cc41
lea eax, [esp + 0x20]
push esi
push edx
push edx
push eax
mov edi, edx
call sym.fastboot.exe_BN_from_montgomery
add esp, 0x10
test eax, eax
jne 0x43cc9e
jmp 0x43cd90
xor ebx, 1
cmp edi, 2
jl 0x43cbc4
lea ecx, [edi - 1]
mov eax, 1
cmp ecx, 8
jb 0x43cbb7
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 0x43cb80
por xmm0, xmm1
cmp ecx, edx
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ebx, xmm0
je 0x43cbc4
sub edi, eax
lea eax, [esi + eax*4]
or ebx, dword [eax]
add eax, 4
dec edi
jne 0x43cbbc
test ebx, ebx
je 0x43cc10
push 1
mov esi, dword [esp + 0x74]
push esi
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43c9ee
mov dword [esi + 0xc], 0
mov ebx, 1
mov eax, dword [esi]
mov dword [eax], 1
mov dword [esi + 4], 1
jmp 0x43c9f0
xor ebx, ebx
xor edi, edi
mov dword [esp + 0xc], 0
jmp 0x43d3bf
mov eax, dword [esp + 0x70]
mov ebx, 1
mov dword [eax + 0xc], 0
mov dword [eax + 4], 0
jmp 0x43c9f0
xor ebx, ebx
xor eax, eax
xor edi, edi
xor ebp, ebp
mov dword [esp + 0xc], 0
jmp 0x43d3c3
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43cd90
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 0x43cc90
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 0x43cc75
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.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
xor ebx, ebx
test eax, eax
je 0x43d3bb
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x1c], ebp
je 0x43cd97
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
mov ebp, dword [esp]
cmp dword [esp + 0x50], 0
jne 0x43cec7
mov edi, dword [esp + 0x48]
mov edx, edi
sub edx, ebp
jbe 0x43ce49
mov esi, dword [esp + 0x44]
xor eax, eax
cmp edx, 8
mov ecx, ebp
jb 0x43cd68
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 0x43cd2a
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 0x43cd75
sub edi, ecx
lea ecx, [esi + ecx*4]
or eax, dword [ecx]
add ecx, 4
dec edi
jne 0x43cd6d
test eax, eax
mov edi, ebp
je 0x43ce49
push 0x143
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
jmp 0x43ced3
xor ebx, ebx
jmp 0x43d3bb
mov edi, dword [esp + 0x24]
mov ebp, dword [esp]
mov edx, edi
sub edx, ebp
jbe 0x43ce8a
mov esi, dword [esp + 0x20]
xor eax, eax
cmp edx, 8
mov ecx, ebp
jb 0x43ce0e
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 0x43cdd0
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 0x43ce1b
sub edi, ecx
lea ecx, [esi + ecx*4]
or eax, dword [ecx]
add ecx, 4
dec edi
jne 0x43ce13
test eax, eax
mov edi, ebp
je 0x43ce8a
push 0x143
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
cmp dword [esp + 0x50], 0
jne 0x43cec7
jmp 0x43ccf4
mov eax, dword [esp + 0xc]
mov ecx, ebp
lea ebp, [eax + ebp*4]
lea eax, [ecx*4]
test eax, eax
je 0x43ce69
push eax
push 0
push ebp
call sub.msvcrt.dll_memset
add esp, 0xc
shl edi, 2
test edi, edi
je 0x43cedf
push edi
push dword [esp + 0x48]
push ebp
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x40], 2
jae 0x43ceea
jmp 0x43d178
lea eax, [ebp*4]
test eax, eax
je 0x43cea4
push eax
push 0
push dword [esp + 0x14]
call sub.msvcrt.dll_memset
add esp, 0xc
shl edi, 2
test edi, edi
je 0x43cebc
push edi
push dword [esp + 0x24]
push dword [esp + 0x14]
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x50], 0
je 0x43ccf4
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
cmp dword [esp + 0x40], 2
jb 0x43d178
lea ecx, [esp + 0x20]
push dword [esp + 0x80]
push dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push eax
push eax
push ecx
call sym.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
mov ebp, dword [esp + 0x1c]
test eax, eax
je 0x43d3bb
cmp dword [esp + 0x2c], 0
je 0x43d094
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
cmp dword [esp + 0x3c], 4
jl 0x43d178
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.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x43d3b7
cmp dword [esp + 0x2c], 0
je 0x43cfaf
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
inc ebp
cmp ebp, dword [esp + 0x3c]
jl 0x43cf5c
jmp 0x43d178
mov edi, dword [esp + 0x24]
mov eax, dword [esp]
mov edx, edi
sub edx, eax
jbe 0x43d055
mov esi, dword [esp + 0x20]
xor ecx, ecx
cmp edx, 8
jb 0x43d030
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 0x43cff1
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 0x43d03d
sub edi, eax
lea eax, [esi + eax*4]
or ecx, dword [eax]
add eax, 4
dec edi
jne 0x43d035
mov edi, dword [esp]
test ecx, ecx
je 0x43d055
push 0x143
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
jmp 0x43cf97
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 0x43d076
push eax
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
shl edi, 2
test edi, edi
je 0x43cfa3
push edi
push dword [esp + 0x24]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x43cfa3
mov edi, dword [esp + 0x24]
mov ebp, dword [esp]
mov edx, edi
sub edx, ebp
jbe 0x43d12f
mov esi, dword [esp + 0x20]
xor eax, eax
cmp edx, 8
mov ecx, ebp
jb 0x43d10b
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 0x43d0cd
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 0x43d118
sub edi, ecx
lea ecx, [esi + ecx*4]
or eax, dword [ecx]
add ecx, 4
dec edi
jne 0x43d110
test eax, eax
mov edi, ebp
je 0x43d12f
push 0x143
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
jmp 0x43cf2b
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 0x43d154
push eax
push 0
push ebp
call sub.msvcrt.dll_memset
add esp, 0xc
shl edi, 2
test edi, edi
je 0x43cf37
push edi
push dword [esp + 0x24]
push ebp
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x3c], 4
jge 0x43cf42
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 0x43d1c8
inc edx
xor edi, edi
mov eax, edi
add eax, edi
test ecx, ecx
mov edi, 0
js 0x43d1be
mov edi, dword [esp + 0x78]
mov esi, ecx
shr esi, 5
cmp esi, dword [edi + 4]
mov edi, 0
jae 0x43d1be
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 0x43d190
jmp 0x43d1ca
xor edi, edi
mov esi, dword [esp]
mov dword [esp + 0x38], ecx
lea eax, [esp + 0x20]
push esi
push eax
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43d3b7
lea esi, [esi*4]
test esi, esi
je 0x43d201
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 0x43d241
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 0x43d230
mov esi, dword [esp + 0x34]
inc ecx
add edx, esi
cmp ecx, dword [esp + 0x3c]
jl 0x43d21c
mov eax, dword [esp]
mov esi, dword [esp + 0x80]
lea ebp, [esp + 0x20]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x38], 0
js 0x43d39a
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.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x43d3b7
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 0x43d2c8
mov ecx, dword [esp + 0x78]
mov eax, edx
shr eax, 5
cmp eax, dword [ecx + 4]
mov ecx, 0
jae 0x43d2c8
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 0x43d277
push dword [esp]
lea eax, [esp + 0x48]
push eax
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43d3b5
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
test eax, eax
je 0x43d30f
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 0x43d351
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 0x43d340
inc eax
add ecx, dword [esp + 0x34]
cmp eax, dword [esp + 0x3c]
jl 0x43d31b
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.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
xor ebx, ebx
test eax, eax
jne 0x43d260
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp 0x43d3c3
push esi
push dword [esp + 0x1c]
push ebp
push dword [esp + 0x7c]
call sym.fastboot.exe_BN_from_montgomery
add esp, 0x10
xor ebx, ebx
test eax, eax
setne bl
jmp 0x43d3b7
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 8]
push eax
call sym.fastboot.exe_BN_MONT_CTX_free
add esp, 4
test edi, edi
jne 0x43d3e4
cmp dword [esp + 0xc], 0
je 0x43d3e4
push ebp
push dword [esp + 0x10]
call sym.fastboot.exe_OPENSSL_cleanse
add esp, 8
push edi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
jmp 0x43c9f0