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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
mov ebp, dword [esp + 0x70]
mov eax, dword [edi + 4]
nop dword [eax]
mov ecx, eax
test eax, eax
jle 0x449ce9
mov edx, dword [edi]
lea eax, [ecx - 1]
cmp dword [edx + ecx*4 - 4], 0
je 0x449cd0
mov al, 1
mov dword [esp], eax
jmp 0x449cf0
mov dword [esp], 0
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 4]
mov edi, eax
nop dword [eax]
mov edx, edi
test edi, edi
jle 0x449d20
mov edi, dword [esp + 0x7c]
mov ebx, dword [edi]
lea edi, [edx - 1]
cmp dword [ebx + edx*4 - 4], 0
je 0x449d00
mov bl, 1
cmp byte [esp], 0
jne 0x449d28
jmp 0x449d39
xor ebx, ebx
cmp byte [esp], 0
je 0x449d39
mov edi, dword [esp + 0x78]
mov edi, dword [edi]
cmp dword [edi + ecx*4 - 4], 0
je 0x449e62
test bl, bl
je 0x449d4e
mov ecx, dword [esp + 0x7c]
mov ecx, dword [ecx]
cmp dword [ecx + edx*4 - 4], 0
je 0x449e62
test eax, eax
je 0x449e45
mov ecx, dword [esp + 0x7c]
xor edx, edx
cmp eax, 8
mov edi, 0
mov ecx, dword [ecx]
jb 0x449db7
mov edx, eax
lea edi, [ecx + 0x10]
pxor xmm0, xmm0
pxor xmm1, xmm1
and edx, 0xfffffff8
mov ebx, edx
nop word [eax + eax]
movdqu xmm2, xmmword [edi - 0x10]
movdqu xmm3, xmmword [edi]
add edi, 0x20
add ebx, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x449d80
por xmm1, xmm0
cmp eax, edx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edi, xmm1
je 0x449dc8
sub eax, edx
lea ecx, [ecx + edx*4]
nop dword [eax]
or edi, dword [ecx]
add ecx, 4
dec eax
jne 0x449dc0
test edi, edi
je 0x449e45
push esi
call sym.adb.exe_BN_CTX_start
add esp, 4
push esi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x30], eax
push esi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x10], eax
push esi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov edi, eax
test ebp, ebp
jne 0x449e09
push esi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov ebp, eax
test edi, edi
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edi
je 0x44a554
cmp dword [esp + 0xc], 0
je 0x44a554
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 8]
mov ecx, dword [eax + 4]
nop
test ecx, ecx
jle 0x449e7f
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4 - 4]
dec ecx
test eax, eax
je 0x449e30
jmp 0x449e91
push 0xdc
push str.external_boringssl_src_crypto_fipsmodule_bn_div.c
push 0x69
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x44a5ce
push 0xd7
push str.external_boringssl_src_crypto_fipsmodule_bn_div.c
push 0x6f
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x44a5ce
test ecx, ecx
je 0x44a065
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4 - 4]
xor ecx, ecx
test eax, eax
mov edx, eax
setne cl
shr edx, 0x10
mov edi, edx
xor edx, eax
neg edi
sar edi, 0x1f
and edx, edi
and edi, 0x10
xor edx, eax
or edi, ecx
mov eax, edx
shr eax, 8
mov ecx, eax
xor eax, edx
neg ecx
sar ecx, 0x1f
and eax, ecx
and ecx, 8
xor eax, edx
or ecx, edi
mov edx, eax
shr edx, 4
mov edi, edx
xor edx, eax
neg edi
sar edi, 0x1f
and edx, edi
and edi, 4
xor edx, eax
or edi, ecx
mov eax, edx
shr eax, 2
mov ecx, eax
xor eax, edx
neg ecx
sar ecx, 0x1f
and eax, ecx
and ecx, 2
xor eax, edx
or ecx, edi
shr eax, 1
neg eax
shr eax, 0x1f
add eax, ecx
and eax, 0x1f
mov ecx, 0x20
sub ecx, eax
mov ebp, ecx
push ecx
push dword [esp + 0x80]
push ebx
call sym.adb.exe_BN_lshift
add esp, 0xc
test eax, eax
je 0x44a554
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x78]
mov eax, dword [ebx + 4]
nop dword [eax]
test eax, eax
jle 0x449f4e
mov edx, dword [ebx]
lea ecx, [eax - 1]
cmp dword [edx + eax*4 - 4], 0
mov eax, ecx
je 0x449f30
mov eax, dword [esp + 0x10]
inc ecx
mov dword [ebx + 4], ecx
mov ecx, ebp
jmp 0x449f60
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x10]
mov ecx, ebp
jne 0x449f60
mov dword [ebx + 0xc], 0
add ecx, 0x20
mov dword [ebx + 0xc], 0
mov dword [esp + 0x4c], ecx
push ecx
push edi
push eax
call sym.adb.exe_BN_lshift
add esp, 0xc
test eax, eax
je 0x44a554
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 4]
nop dword [eax + eax]
mov eax, ecx
test ecx, ecx
jle 0x449fac
mov edx, dword [edi]
lea ecx, [eax - 1]
cmp dword [edx + eax*4 - 4], 0
je 0x449f90
inc ecx
mov dword [edi + 4], ecx
mov ecx, dword [esp + 8]
jmp 0x449fbe
mov ecx, dword [esp + 8]
mov dword [edi + 4], eax
jne 0x449fbe
xor eax, eax
mov dword [edi + 0xc], 0
mov dword [edi + 0xc], 0
mov ecx, dword [ecx + 4]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x449ffc
inc eax
push eax
push edi
call fcn.00447880
add esp, 8
test eax, eax
je 0x44a554
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 8]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [eax + ecx*4], 0
mov edi, dword [edx + 4]
inc edi
jmp 0x44a034
add ecx, 2
push ecx
push edi
call fcn.00447880
add esp, 8
test eax, eax
je 0x44a554
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 8]
mov eax, dword [edx + 4]
jmp 0x44a02a
mov ecx, dword [edx]
mov dword [ecx + eax*4], 0
inc eax
mov edi, dword [ebx + 4]
add edi, 2
cmp eax, edi
jl 0x44a020
mov dword [edx + 4], edi
mov dword [esp + 0x48], 0
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
mov ebp, dword [edx]
mov ebx, edi
mov edx, dword [eax + ecx*4 - 4]
sub ebx, ecx
cmp ecx, 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x58], edx
jne 0x44a06c
mov dword [esp + 0x34], 0
jmp 0x44a074
xor eax, eax
jmp 0x449efd
mov eax, dword [eax + ecx*4 - 8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov eax, dword [eax + 0xc]
xor eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0xc], eax
lea eax, [ebx + 1]
push eax
push ecx
call fcn.00447880
add esp, 8
test eax, eax
je 0x44a554
mov eax, dword [esp + 0xc]
lea ecx, [ebx - 1]
lea esi, [ebx*4 - 4]
mov dword [esp + 0x54], ecx
mov dword [eax + 4], ecx
add esi, dword [eax]
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x50], eax
push eax
push dword [esp + 0x34]
call fcn.00447880
add esp, 8
test eax, eax
je 0x44a554
mov eax, dword [esp + 0xc]
cmp dword [eax + 4], 0
je 0x44a0ec
mov ecx, esi
add ecx, 0xfffffffc
cmp ebx, 2
jge 0x44a0fe
jmp 0x44a44c
mov dword [eax + 0xc], 0
mov ecx, esi
cmp ebx, 2
jl 0x44a44c
lea eax, [ebp + ebx*4]
lea edx, [ebp + edi*4 - 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
lea eax, [eax - 4]
mov esi, eax
and esi, 0xfffffffc
sub eax, esi
add esi, 4
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x40], esi
jmp 0x44a143
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov esi, dword [esp]
test ebx, ebx
jne 0x44a437
jmp 0x44a439
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], edx
mov dword [esp], 0xffffffff
mov dword [esp + 0x2c], eax
mov eax, dword [edx]
cmp eax, ebp
je 0x44a1b7
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx - 8]
mov edi, dword [ecx - 4]
push 0
push ebp
push eax
push edi
call fcn.004f1bc0
add esp, 0x10
mov ecx, ebp
mov dword [esp], eax
imul ecx, eax
sub edi, ecx
mov ecx, eax
mul dword [esp + 0x34]
imul ecx, dword [esp + 0x48]
add edx, ecx
nop word [eax + eax]
cmp esi, eax
mov ecx, edi
sbb ecx, edx
jae 0x44a1b7
dec dword [esp]
sub eax, dword [esp + 0x34]
sbb edx, dword [esp + 0x48]
add edi, ebp
jae 0x44a1a0
mov edi, dword [esp + 0x20]
test edi, edi
je 0x44a298
mov eax, dword [esp + 0x30]
mov ecx, dword [ebx]
xor ebx, ebx
cmp edi, 4
mov eax, dword [eax]
mov dword [esp + 4], ecx
jb 0x44a29e
xor ebp, ebp
mov edx, edi
xor ecx, ecx
mov dword [esp + 0x1c], eax
nop word cs:[eax + eax]
nop
mov esi, dword [esp]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 4]
mov eax, esi
mov dword [esp], esi
mul dword [edx + ebp]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x1c]
mov edi, eax
lea eax, [eax + ecx]
mov dword [edx + ebp], eax
mov edx, dword [esp + 4]
mov eax, esi
mul dword [edx + ebp + 4]
add edi, ecx
mov edi, dword [esp + 0x1c]
adc eax, dword [esp + 0x38]
mov dword [esp + 0x18], edx
mov dword [edi + ebp + 4], eax
mov eax, esi
mov esi, dword [esp + 4]
setb cl
mul dword [esi + ebp + 8]
add cl, 0xff
adc eax, dword [esp + 0x18]
mov dword [esp + 0x38], edx
mov dword [edi + ebp + 8], eax
mov eax, dword [esp]
setb cl
mul dword [esi + ebp + 0xc]
add cl, 0xff
adc eax, dword [esp + 0x38]
mov ecx, edx
mov edx, dword [esp + 0x3c]
adc ecx, 0
add edx, 0xfffffffc
mov dword [edi + ebp + 0xc], eax
add ebp, 0x10
cmp edx, 3
ja 0x44a1f0
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x1c]
test eax, eax
je 0x44a2dd
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 4]
lea edx, [edx + esi*4]
lea edi, [edi + esi*4]
mov dword [esp + 4], edi
jmp 0x44a2a4
mov ebp, ebx
xor ecx, ecx
jmp 0x44a2e5
mov edx, eax
mov eax, edi
xor ecx, ecx
mov esi, dword [esp]
mov ebp, dword [esp + 4]
mov edi, edx
mov dword [esp], esi
mov esi, eax
mov eax, dword [esp]
mul dword [ebp + ebx*4]
add eax, ecx
adc edx, 0
mov dword [edi + ebx*4], eax
inc ebx
mov eax, esi
cmp esi, ebx
mov ecx, edx
jne 0x44a2b0
mov ebp, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
mov esi, dword [esp]
mov ecx, edx
jmp 0x44a2ec
mov ebp, dword [esp + 8]
mov edi, dword [esp + 0x20]
mov esi, dword [esp]
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
mov dword [eax + edi*4], ecx
lea eax, [ebx - 4]
push dword [esp + 0x50]
push dword [edx]
push eax
mov dword [esp + 0x24], eax
push eax
call fcn.00448250
add esp, 0x10
test eax, eax
je 0x44a3ef
dec esi
test edi, edi
je 0x44a3ef
mov ecx, dword [ebp]
xor ebp, ebp
cmp edi, 4
mov dword [esp], esi
mov dword [esp + 4], ecx
jb 0x44a3fd
mov eax, edi
xor esi, esi
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x1c], eax
nop
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 4]
mov edx, esi
add ebx, dword [ebp + edi - 4]
adc edx, 0
add ebx, dword [eax + edi]
mov dword [ebp + edi - 4], ebx
adc edx, 0
xor ebx, ebx
add edx, dword [ebp + edi]
mov eax, dword [eax + edi + 4]
mov dword [esp + 0x3c], eax
lea eax, [edx + eax]
setb bl
mov dword [ebp + edi], eax
mov eax, dword [esp + 4]
mov ecx, dword [eax + edi + 8]
xor eax, eax
add ecx, dword [ebp + edi + 4]
setb al
add edx, dword [esp + 0x3c]
mov edx, dword [esp + 4]
adc ebx, ecx
mov dword [ebp + edi + 4], ebx
setb cl
xor ebx, ebx
mov edx, dword [edx + edi + 0xc]
add edx, dword [ebp + edi + 8]
setb bl
add cl, 0xff
mov ecx, dword [esp + 0x1c]
adc eax, edx
adc ebx, 0
mov dword [ebp + edi + 8], eax
add edi, 0x10
add ecx, 0xfffffffc
cmp ecx, 3
mov dword [esp + 0x1c], ecx
ja 0x44a340
mov eax, dword [esp + 0x44]
test eax, eax
je 0x44a127
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 4]
xor ebp, ebp
lea edx, [edx + ecx*4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x18]
lea edi, [edx + ecx*4]
mov edx, dword [esp + 0x14]
jmp 0x44a40b
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
jmp 0x44a439
mov eax, edi
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
xor ebx, ebx
xor esi, esi
mov ecx, dword [esp + 4]
nop
add ebx, dword [edi + ebp*4]
adc esi, 0
add ebx, dword [ecx + ebp*4]
mov dword [edi + ebp*4], ebx
mov ebx, esi
adc ebx, 0
inc ebp
xor esi, esi
cmp eax, ebp
jne 0x44a410
mov eax, dword [esp + 0x24]
mov esi, dword [esp]
mov ecx, dword [esp + 0x28]
test ebx, ebx
je 0x44a439
inc dword [edx]
inc eax
mov dword [ecx], esi
add edx, 0xfffffffc
add ecx, 0xfffffffc
cmp eax, dword [esp + 0x54]
jl 0x44a143
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x74]
mov eax, dword [ebp + 4]
test eax, eax
jle 0x44a47b
mov edx, dword [ebp]
lea ecx, [eax - 1]
cmp dword [edx + eax*4 - 4], 0
mov eax, ecx
je 0x44a45b
inc ecx
mov dword [ebp + 4], ecx
test ebx, ebx
jne 0x44a48f
jmp 0x44a52b
mov dword [ebp + 4], eax
jne 0x44a487
mov dword [ebp + 0xc], 0
test ebx, ebx
je 0x44a52b
mov eax, dword [esp + 0x78]
mov esi, dword [eax + 0xc]
push dword [esp + 0x4c]
push ebp
push ebx
call sym.adb.exe_BN_rshift
add esp, 0xc
test eax, eax
je 0x44a554
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0xc]
mov eax, dword [ebp + 4]
test eax, eax
je 0x44a52b
mov ecx, dword [ebp]
xor edx, edx
cmp eax, 8
mov edi, 0
jb 0x44a513
mov edx, eax
lea edi, [ecx + 0x10]
pxor xmm0, xmm0
pxor xmm1, xmm1
and edx, 0xfffffff8
mov ebx, edx
movdqu xmm2, xmmword [edi - 0x10]
movdqu xmm3, xmmword [edi]
add edi, 0x20
add ebx, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x44a4dc
por xmm1, xmm0
cmp eax, edx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edi, xmm1
je 0x44a520
sub eax, edx
lea ecx, [ecx + edx*4]
or edi, dword [ecx]
add ecx, 4
dec eax
jne 0x44a518
test edi, edi
mov edi, dword [esp + 0xc]
je 0x44a52b
mov dword [ebp + 0xc], esi
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x80]
test eax, eax
jle 0x44a5d8
mov edx, dword [edi]
lea ecx, [eax - 1]
cmp dword [edx + eax*4 - 4], 0
mov eax, ecx
je 0x44a535
inc ecx
mov dword [edi + 4], ecx
jmp 0x44a5e4
mov ebx, dword [esp + 0x80]
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x44a568
dec eax
mov dword [ebx + 0x24], eax
jmp 0x44a5ce
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
lea edx, [ecx - 1]
mov dword [ebx + 0x18], edx
mov esi, dword [ebx + 0x20]
mov eax, dword [eax + ecx*4 - 4]
mov edx, esi
sub edx, eax
jbe 0x44a5c4
mov ecx, dword [ebx + 0xc]
mov edi, ecx
sub edi, edx
test edx, edx
mov dword [ebx + 0xc], edi
je 0x44a5c4
dec ecx
mov edx, eax
and ecx, 0xf
sub edx, esi
nop word [eax + eax]
test ecx, ecx
je 0x44a5b0
dec ecx
inc edx
jne 0x44a5a0
jmp 0x44a5c4
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + 0x140]
mov dword [ebx + 4], ecx
mov ecx, 0xf
inc edx
jne 0x44a5a0
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x28], 0
xor eax, eax
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [edi + 4], eax
jne 0x44a5e4
mov dword [edi + 0xc], 0
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x44a5f6
dec eax
mov dword [ebx + 0x24], eax
mov eax, 1
jmp 0x44a5d0
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
lea edx, [ecx - 1]
mov dword [ebx + 0x18], edx
mov esi, dword [ebx + 0x20]
mov eax, dword [eax + ecx*4 - 4]
mov edx, esi
sub edx, eax
jbe 0x44a643
mov ecx, dword [ebx + 0xc]
mov edi, ecx
sub edi, edx
test edx, edx
mov dword [ebx + 0xc], edi
je 0x44a643
dec ecx
mov edx, eax
and ecx, 0xf
sub edx, esi
test ecx, ecx
je 0x44a62f
dec ecx
inc edx
jne 0x44a625
jmp 0x44a643
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + 0x140]
mov dword [ebx + 4], ecx
mov ecx, 0xf
inc edx
jne 0x44a625
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x28], 0
mov eax, 1
jmp 0x44a5d0