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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0x6c]
mov eax, dword [edi + 4]
nop word cs:[eax + eax]
mov ecx, eax
test eax, eax
jle 0x49fbaa
mov edx, dword [edi]
lea eax, [ecx - 1]
cmp dword [edx + ecx*4 - 4], 0
je 0x49fb90
mov al, 1
mov dword [esp + 4], eax
jmp 0x49fbb2
mov dword [esp + 4], 0
mov eax, dword [esi + 4]
mov edi, eax
nop word [eax + eax]
mov edx, edi
test edi, edi
jle 0x49fbdd
mov ebx, dword [esi]
lea edi, [edx - 1]
cmp dword [ebx + edx*4 - 4], 0
je 0x49fbc0
mov bl, 1
cmp byte [esp + 4], 0
jne 0x49fbe6
jmp 0x49fbf7
xor ebx, ebx
cmp byte [esp + 4], 0
je 0x49fbf7
mov edi, dword [esp + 0x74]
mov edi, dword [edi]
cmp dword [edi + ecx*4 - 4], 0
je 0x49fced
test bl, bl
je 0x49fc08
mov ecx, dword [esi]
cmp dword [ecx + edx*4 - 4], 0
je 0x49fced
test eax, eax
je 0x49fcdf
mov ecx, dword [esi]
xor edx, edx
cmp eax, 8
mov edi, 0
jb 0x49fc67
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 0x49fc30
por xmm1, xmm0
cmp eax, edx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edi, xmm1
je 0x49fc78
sub eax, edx
lea ecx, [ecx + edx*4]
nop dword [eax]
or edi, dword [ecx]
add ecx, 4
dec eax
jne 0x49fc70
test edi, edi
je 0x49fcdf
mov edi, dword [esp + 0x7c]
cmp byte [edi + 0x14], 0
jne 0x49fd26
mov ecx, dword [edi + 8]
mov edx, edi
mov edi, dword [edi + 0x10]
cmp ecx, dword [edx + 0xc]
jne 0x49fd0f
lea eax, [ecx + ecx*2]
mov ebx, 0x20
shr eax, 1
test ecx, ecx
cmovne ebx, eax
cmp ebx, ecx
jbe 0x49fd1c
cmp ebx, 0x3fffffff
ja 0x49fd1c
lea eax, [ebx*4]
push eax
mov eax, dword [esp + 0x80]
push dword [eax + 4]
call sym.fastboot.exe_OPENSSL_realloc
add esp, 8
test eax, eax
je 0x49fd1c
mov edx, dword [esp + 0x7c]
mov dword [edx + 4], eax
mov dword [edx + 0xc], ebx
mov ecx, dword [edx + 8]
jmp 0x49fd12
push 0xda
push str.external_boringssl_src_crypto_fipsmodule_bn_div.c
push 0x69
jmp 0x49fcf9
push 0xd5
push str.external_boringssl_src_crypto_fipsmodule_bn_div.c
push 0x6f
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor eax, eax
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edx + 4]
mov dword [eax + ecx*4], edi
inc dword [edx + 8]
mov edi, edx
jmp 0x49fd26
mov edi, dword [esp + 0x7c]
mov word [edi + 0x14], 0x101
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x30], eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x24], eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov ebx, eax
test ebp, ebp
jne 0x49fd5a
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov ebp, eax
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x24]
test ebx, ebx
mov dword [esp], ebx
je 0x4a0343
cmp dword [esp + 0x10], 0
je 0x4a0343
push esi
call sym.fastboot.exe_BN_num_bits
add esp, 4
mov ebx, eax
mov eax, 0x20
and ebx, 0x1f
sub eax, ebx
push eax
push esi
push dword [esp + 8]
call sym.fastboot.exe_BN_lshift
add esp, 0xc
test eax, eax
je 0x4a0343
mov eax, dword [esp]
mov edi, dword [esp + 0x74]
mov eax, dword [eax + 4]
nop dword [eax]
test eax, eax
jle 0x49fdce
mov ecx, dword [esp]
mov edx, dword [ecx]
lea ecx, [eax - 1]
cmp dword [edx + eax*4 - 4], 0
mov eax, ecx
je 0x49fdb0
mov edx, dword [esp]
inc ecx
mov dword [edx + 4], ecx
jmp 0x49fddd
mov edx, dword [esp]
mov dword [edx + 4], eax
jne 0x49fddd
mov dword [edx + 0xc], 0
mov eax, 0x40
mov dword [edx + 0xc], 0
sub eax, ebx
mov dword [esp + 0x44], eax
push eax
push edi
push ebp
call sym.fastboot.exe_BN_lshift
add esp, 0xc
test eax, eax
je 0x4a0343
mov ecx, dword [ebp + 4]
mov edi, dword [esp]
nop dword [eax + eax]
mov eax, ecx
test ecx, ecx
jle 0x49fe29
mov edx, dword [ebp]
lea ecx, [eax - 1]
cmp dword [edx + eax*4 - 4], 0
je 0x49fe10
inc ecx
mov dword [ebp + 4], ecx
jmp 0x49fe35
mov dword [ebp + 4], eax
jne 0x49fe35
mov dword [ebp + 0xc], 0
mov dword [ebp + 0xc], 0
mov ecx, dword [edi + 4]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x49fe6f
inc eax
push eax
push ebp
call fcn.0049d890
add esp, 8
test eax, eax
je 0x4a0343
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov edx, dword [esp]
mov dword [eax + ecx*4], 0
mov edi, dword [ebp + 4]
inc edi
jmp 0x49fea7
add ecx, 2
push ecx
push ebp
call fcn.0049d890
add esp, 8
test eax, eax
je 0x4a0343
mov eax, dword [ebp + 4]
mov edx, dword [esp]
nop word [eax + eax]
mov edi, dword [edx + 4]
add edi, 2
cmp eax, edi
jge 0x49fea7
mov ecx, dword [ebp]
mov dword [ecx + eax*4], 0
inc eax
jmp 0x49fe90
mov dword [ebp + 4], edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], 0
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov ebx, dword [ebp]
mov edx, dword [eax + ecx*4 - 4]
sub edi, ecx
cmp ecx, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x4c], edx
jne 0x49fedb
mov dword [esp + 0x34], 0
jmp 0x49fee3
mov eax, dword [eax + ecx*4 - 8]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x74]
xor eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xc], eax
lea eax, [edi + 1]
push eax
push ecx
call fcn.0049d890
add esp, 8
test eax, eax
je 0x4a0343
mov eax, dword [esp + 0x10]
lea esi, [edi - 1]
lea ecx, [edi*4 - 4]
mov dword [eax + 4], esi
add ecx, dword [eax]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], eax
push eax
push dword [esp + 0x34]
call fcn.0049d890
add esp, 8
test eax, eax
je 0x4a0343
mov eax, dword [esp + 0x10]
cmp dword [eax + 4], 0
je 0x49ff4f
add dword [esp + 0x14], 0xfffffffc
jmp 0x49ff56
mov dword [eax + 0xc], 0
mov ecx, dword [esp + 0x1c]
test esi, esi
jle 0x4a0244
lea eax, [ebx + edi*4]
mov esi, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
and esi, 3
mov dword [esp + 0x3c], esi
lea edx, [ebx + eax*4 - 4]
dec eax
sub eax, ecx
xor ecx, ecx
mov dword [esp + 0xc], eax
jmp 0x49ffaa
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 8]
inc ecx
mov dword [eax], esi
add eax, 0xfffffffc
add edx, 0xfffffffc
cmp ecx, edi
mov dword [esp + 0x14], eax
je 0x4a0244
mov eax, dword [edx]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 8], 0xffffffff
cmp eax, ebx
je 0x4a0020
mov ecx, dword [esp + 0x20]
mov esi, dword [ecx - 8]
mov edi, dword [ecx - 4]
push 0
push ebx
push eax
push edi
call fcn.0049a220
add esp, 0x10
mov ecx, ebx
mov dword [esp + 8], eax
imul ecx, eax
sub edi, ecx
mov ecx, eax
mul dword [esp + 0x34]
imul ecx, dword [esp + 0x40]
add edx, ecx
nop word cs:[eax + eax]
nop dword [eax]
cmp esi, eax
mov ecx, edi
sbb ecx, edx
jae 0x4a0020
dec dword [esp + 8]
sub eax, dword [esp + 0x34]
sbb edx, dword [esp + 0x40]
add edi, ebx
jae 0x4a0000
nop dword [eax + eax]
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x4a00dc
mov eax, dword [esp + 0x30]
mov ecx, dword [esp]
xor esi, esi
cmp edi, 4
mov eax, dword [eax]
mov ebx, dword [ecx]
mov dword [esp + 0x18], eax
jb 0x4a00e0
xor ecx, ecx
nop dword [eax + eax]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x38], edi
mov edx, dword [esp + 4]
mov eax, ebx
mul dword [edx]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 4]
mov edi, eax
add eax, ecx
mov dword [ebp], eax
mov eax, ebx
mul dword [edx + 4]
add edi, ecx
adc eax, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 4]
mov dword [ebp + 4], eax
mov eax, ebx
setb cl
mul dword [edx + 8]
add cl, 0xff
adc eax, dword [esp + 0x54]
mov edi, edx
mov dword [ebp + 8], eax
mov eax, ebx
mov ebx, dword [esp + 4]
setb cl
mul dword [ebx + 0xc]
add cl, 0xff
adc eax, edi
mov edi, dword [esp + 0x38]
mov ecx, edx
adc ecx, 0
mov dword [ebp + 0xc], eax
add ebp, 0x10
add ebx, 0x10
mov dword [esp + 0x18], ebp
add edi, 0xfffffffc
cmp edi, 3
ja 0x4a0050
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x4a010a
mov ebp, edi
jmp 0x4a00e4
xor ecx, ecx
jmp 0x4a010e
mov ebp, edi
xor ecx, ecx
mov edi, dword [esp + 8]
nop dword [eax + eax]
mov eax, edi
mul dword [ebx + esi*4]
add eax, ecx
mov ecx, dword [esp + 0x18]
adc edx, 0
mov dword [ecx + esi*4], eax
inc esi
mov ecx, edx
cmp ebp, esi
jne 0x4a00f0
mov ecx, edx
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp]
mov edi, dword [esp + 0xc]
mov eax, dword [edx]
mov dword [eax + ebx*4], ecx
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffc
push dword [esp + 0x48]
push dword [edx]
push eax
mov dword [esp + 0x38], eax
push eax
call fcn.0049e1d0
add esp, 0x10
test eax, eax
je 0x49ff85
dec dword [esp + 8]
test ebx, ebx
je 0x49ff85
mov ecx, dword [esi]
xor edi, edi
mov eax, ebx
cmp ebx, 4
jb 0x4a01f0
mov esi, dword [esp + 0x2c]
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 0x18], eax
nop dword [eax]
add ebx, dword [esi]
mov edx, ebp
mov dword [esp + 4], ecx
adc edx, 0
add ebx, dword [ecx]
mov dword [esi], ebx
adc edx, 0
xor ebx, ebx
add edx, dword [esi + 4]
mov eax, dword [ecx + 4]
mov dword [esp + 0x38], eax
lea eax, [edx + eax]
setb bl
mov dword [esi + 4], eax
mov eax, dword [esp + 4]
mov ecx, dword [eax + 8]
xor eax, eax
add ecx, dword [esi + 8]
setb al
add edx, dword [esp + 0x38]
mov edx, dword [esp + 4]
adc ebx, ecx
mov dword [esi + 8], ebx
setb cl
xor ebx, ebx
mov edx, dword [edx + 0xc]
add edx, dword [esi + 0xc]
setb bl
add cl, 0xff
mov ecx, dword [esp + 4]
adc eax, edx
mov edx, dword [esp + 0x18]
adc ebx, 0
mov dword [esi + 0xc], eax
add esi, 0x10
add ecx, 0x10
add edx, 0xfffffffc
cmp edx, 3
mov dword [esp + 0x18], edx
ja 0x4a0170
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x4a0200
jmp 0x4a0218
mov esi, dword [esp + 0x2c]
xor ebx, ebx
xor ebp, ebp
nop dword [eax + eax]
add ebx, dword [esi + edi*4]
adc ebp, 0
add ebx, dword [ecx + edi*4]
mov dword [esi + edi*4], ebx
mov ebx, ebp
adc ebx, 0
inc edi
xor ebp, ebp
cmp eax, edi
jne 0x4a0200
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 8]
test ebx, ebx
je 0x4a023b
mov edx, dword [esp + 0x20]
inc dword [edx]
jmp 0x49ff95
mov edx, dword [esp + 0x20]
jmp 0x49ff95
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x70]
nop
test eax, eax
jle 0x4a0270
mov edx, dword [ebp]
lea ecx, [eax - 1]
cmp dword [edx + eax*4 - 4], 0
mov eax, ecx
je 0x4a0250
inc ecx
mov dword [ebp + 4], ecx
test ebx, ebx
jne 0x4a0284
jmp 0x4a0323
mov dword [ebp + 4], eax
jne 0x4a027c
mov dword [ebp + 0xc], 0
test ebx, ebx
je 0x4a0323
mov eax, dword [esp + 0x74]
mov esi, dword [eax + 0xc]
push dword [esp + 0x44]
push ebp
push ebx
call sym.fastboot.exe_BN_rshift
add esp, 0xc
test eax, eax
je 0x4a0343
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x10]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4a0323
mov ecx, dword [ebx]
xor edx, edx
cmp eax, 8
mov edi, 0
jb 0x4a030b
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 0x4a02d0
por xmm1, xmm0
mov ebx, dword [esp + 0x70]
cmp eax, edx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edi, xmm1
je 0x4a0318
sub eax, edx
lea ecx, [ecx + edx*4]
or edi, dword [ecx]
add ecx, 4
dec eax
jne 0x4a0310
test edi, edi
mov edi, dword [esp + 0x10]
je 0x4a0323
mov dword [ebx + 0xc], esi
mov eax, dword [edi + 4]
test eax, eax
jle 0x4a036b
mov edx, dword [edi]
lea ecx, [eax - 1]
cmp dword [edx + eax*4 - 4], 0
mov eax, ecx
je 0x4a0326
inc ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x4a0345
xor eax, eax
mov edi, dword [esp + 0x7c]
cmp byte [edi + 0x14], 0
jne 0x49fd07
mov edx, dword [edi + 8]
mov ecx, dword [edi + 4]
lea esi, [edx - 1]
mov dword [edi + 8], esi
mov ecx, dword [ecx + edx*4 - 4]
mov dword [edi + 0x10], ecx
jmp 0x49fd07
mov dword [edi + 4], eax
jne 0x4a0377
mov dword [edi + 0xc], 0
mov eax, 1
jmp 0x4a0345